文章目录
- Overview
- ATPG 的基本功能
- ATPG 的工作流程
- ATPG 应用场景示例
- 示例 1:检测单个信号的 Stuck-at Fault
- 示例 2:针对 Transition Fault 的 ATPG
- ATPG 工具与常用工具链
- ATPG 优化与挑战
Overview
本文主要介绍 DFT scan 中的 ATPG 功能。在 DFT (Design for Testability) Scan 流程中,ATPG (Automatic Test Pattern Generation) 是一种关键技术,用于生成测试向量以检测半导体设计中的故障。以下是 ATPG 的详细介绍及应用场景的举例:
ATPG 的基本功能
-
生成测试向量
- ATPG 工具根据设计的网表和故障模型生成一系列输入测试向量,这些向量用于检测特定的逻辑故障。目标是覆盖最大数量的潜在故障。
-
故障建模
- ATPG 通常基于故障模型生成测试向量,常见的故障模型包括:
- Stuck-at Faults (SAF):假设某一线被固定为 0 或 1。
- Transition Faults (TF):针对信号未能及时完成从
0->1
或1->0
的转换。 - Path Delay Faults (PDF):检测关键路径上的时序问题。
- Bridging Faults:假设相邻的两条信号线被意外短路。
- ATPG 通常基于故障模型生成测试向量,常见的故障模型包括:
-
测试覆盖率分析
- ATPG 工具评估生成的测试向量集能覆盖多少百分比的故障。如果某些故障未被检测,可以调整策略生成补充向量,或标记这些故障为未检测(Untestable Faults)。
-
优化测试效率
- ATPG 尝试最小化测试向量的数量,从而减少测试时间(Tester Time)和存储需求,同时最大化故障覆盖率。
-
逻辑仿真与验证
- ATPG 工具会通过仿真验证生成的测试向量对故障的实际检测能力,确保测试覆盖率符合期望。
ATPG 的工作流程
-
输入准备
- 输入包含设计的网表(Netlist)、DFT 插入的扫描链(Scan Chain)配置,以及时钟、复位、约束等信息。
-
故障列表生成
- 工具根据设计自动创建可能的故障列表,包括上述的 Stuck-at 和 Transition 等模型。
-
生成测试向量
- 根据故障列表,工具逐个尝试生成相应的输入刺激和期望响应。
- 确保在扫描模式下,测试向量能导出到需要检测的故障节点。
-
故障仿真与优化
- 将生成的测试向量在仿真环境中运行,验证其对目标故障的检测能力,并尽量合并冗余向量。
-
输出测试集
- 生成的向量集通常以标准测试向量格式(如 WGL、STIL 等)输出,用于实际 ATE(Automatic Test Equipment)测试中加载。
ATPG 应用场景示例
示例 1:检测单个信号的 Stuck-at Fault
- 设计结构:假设一个简单的 2 输入 AND 门,其输入信号为 A 和 B,输出为 Y。
- 目标故障:信号 A 固定为 1(Stuck-at-1)。
- ATPG 步骤:
- 在测试模式中初始化扫描链,加载向量:
B=1
。 - 设置输入:
A=0
。 - 检查输出:
Y=0
,以此验证故障被检测(实际应为 0,但因为 A 固定为 1,则输出会错误)。
- 在测试模式中初始化扫描链,加载向量:
示例 2:针对 Transition Fault 的 ATPG
- 设计结构:一个复杂电路的关键路径存在 Transition 故障。
- 目标故障:信号 X 上未完成 1->0 的转换。
- ATPG 步骤:
- 在时钟边沿加载扫描模式数据,使 X 从初始状态为 1。
- 在下一个激励向量切换时,强制 X 置为 0。
- 验证输出延迟,检查路径时序是否满足。
ATPG 工具与常用工具链
- 主要工具:常见的 ATPG 工具有 Synopsys TetraMAX、Cadence Modus 和 Siemens Tessent。
- 主要输出:包括 Scan Pattern 向量(可能为多种格式,如 STIL、WGL)、故障覆盖报告、测试时间预测等。
- 整合流程:
- 与 DFT 插入紧密结合,确保 ATPG 支持插入的扫描链结构。
- 配合 ATE,在晶圆或成品测试阶段检测可能的生产缺陷。
ATPG 优化与挑战
-
优化扫描链
- 合理的扫描链长度和分布可以显著减少 ATPG 测试向量的数量。
-
故障逃逸问题
- 设计中未建模的故障(例如工艺缺陷引起的桥接问题)可能逃逸。针对这些问题,可以额外增加针对性的故障模型。
-
性能瓶颈
- ATPG 的计算复杂度随设计规模线性或超线性增加,大型 SoC 上需要分区生成以提升效率。
通过 ATPG 技术,设计者可以有效发现芯片内部逻辑或制造过程中的潜在问题,显著提高设计的可测试性和最终产品的质量。