2. 测试基础

在芯片DFT工程中,测试基础是构建高质量测试方案的前提。本章围绕三大核心概念展开:故障模型(如何抽象物理缺陷)、ATPG(自动测试向量生成)原理以及测试覆盖率的量化定义。理解这些基础,是后续提升测试覆盖率、优化测试成本的起点。

核心观点: 故障模型是物理缺陷的数学抽象,ATPG是自动化生成测试向量的引擎,测试覆盖率是衡量测试质量的标尺。三者构成DFT测试的“铁三角”。

2.1 故障模型(Fault Models)

物理制造缺陷(如金属桥接、氧化层击穿、离子污染)种类繁多,无法直接建模。故障模型将物理缺陷映射为逻辑级或晶体管级的可计算行为,使EDA工具能够自动生成测试向量。工业界最常用的三大故障模型如下:

故障模型 抽象层次 对应物理缺陷 测试复杂度
Stuck-at(固定故障) 逻辑门级 短路到VDD/GND、断线 低(经典模型)
Transition(跳变故障) 时序逻辑级 晶体管开关速度退化、电阻性开路 中(需两拍向量)
Bridging(桥接故障) 互连级 相邻金属线短路、漏电流 高(依赖版图)

2.1.1 Stuck-at 故障模型

Stuck-at 模型假设信号线固定为逻辑0(SA0)或逻辑1(SA1)。它是历史最悠久、使用最广泛的故障模型,也是ATPG工具的基础。一个节点同时存在SA0和SA1两个故障。

  • 故障数量: 对于N个节点,共2N个Stuck-at故障。
  • 测试要求: 对每个故障,至少需要一个测试向量使故障点与正常值相反,并将差异传播到输出。
  • 局限性: 无法覆盖时序相关缺陷(如信号跳变太慢)和互连桥接缺陷。
工程经验: 现代工艺下,Stuck-at覆盖率通常要求达到98%以上,但仅靠Stuck-at测试不足以保证芯片良率,必须结合Transition和Bridging测试。
Stuck-at 故障模型示意图 NAND A B Z SA0 故障 SA1 故障 Stuck-at 故障说明 • SA0: 节点固定为逻辑0 • SA1: 节点固定为逻辑1 • 测试需激活+传播 • 经典模型,工具成熟

2.1.2 Transition 故障模型

Transition 故障模型用于检测信号跳变速度是否满足时序要求。它分为慢上升(Slow-to-Rise, STR)和慢下降(Slow-to-Fall, STF)两种。测试需要两拍向量:第一拍初始化节点到相反值,第二拍施加跳变并捕获结果。

  • 测试向量对: (V1, V2),V1设置初始值,V2产生跳变。
  • 捕获方式: 通常使用Launch-on-Capture (LOC)或Launch-on-Shift (LOS)。
  • 覆盖率目标: 先进工艺节点下,Transition覆盖率通常要求>90%。
注意: Transition测试对时序收敛要求高,ATPG生成的向量必须满足设计约束(如setup/hold时间),否则可能导致测试失败或良率损失。

2.1.3 Bridging 故障模型

Bridging 模型模拟两条或多条信号线之间意外短路。根据短路后的逻辑行为,分为Wired-AND(线与)和Wired-OR(线或)模型。Bridging故障的检测依赖于版图相邻信息,通常由版图寄生提取工具提供候选故障列表。

桥接类型 逻辑行为 检测难度 典型场景
Wired-AND 短路后输出为各驱动值的AND 中 NMOS上拉网络短路
Wired-OR 短路后输出为各驱动值的OR 中 PMOS下拉网络短路
反馈桥接 形成组合反馈回路 高 相邻寄存器数据/时钟线短路

2.2 ATPG 原理

ATPG(Automatic Test Pattern Generation)是EDA工具自动生成测试向量的过程。其核心算法基于D算法、PODEM或FAN等经典方法,现代工具则融合了结构扫描和压缩技术。

ATPG 基本流程 故障列表 (Fault List) 故障激活 (Activation) 故障传播 (Propagation) 测试向量 (Pattern) ATPG 三要素:故障激活 + 故障传播 + 敏化路径 现代ATPG工具还支持压缩、多捕获时钟、X-tolerance等高级特性

2.2.1 ATPG 核心步骤

  1. 故障选择: 从故障列表中选择一个目标故障(如某节点的SA0)。
  2. 故障激活: 在故障点施加与正常值相反的逻辑值(如对SA0,需在该点施加逻辑1)。
  3. 故障传播: 将故障效应(D或D')通过逻辑路径传播到至少一个可观测输出(如扫描链输出或Primary Output)。
  4. 向量生成: 通过回溯算法(如PODEM)确定输入端的逻辑值,形成测试向量。
  5. 故障模拟: 用生成的向量模拟所有故障,标记被检测到的故障,更新故障列表。
关键概念: D算法中,D表示正常值为1、故障值为0;D'表示正常值为0、故障值为1。ATPG工具通过D链传播实现故障检测。

2.2.2 现代ATPG技术

  • 扫描链(Scan Chain): 将寄存器连接成移位寄存器链,提供可控性和可观测性,大幅降低ATPG复杂度。
  • 测试压缩(Test Compression): 通过片上解压/压缩逻辑,减少测试数据量和测试时间。常见方法包括LFSR重播种、XOR网络等。
  • 多捕获时钟(Multiple Capture Clocks): 在扫描测试中插入多个捕获时钟,提高Transition故障覆盖率。
  • X-tolerance: 处理未知态(X态)传播问题,避免X态掩盖故障效应。

2.3 测试覆盖率定义

测试覆盖率是衡量测试向量检测故障能力的量化指标。不同故障模型对应不同的覆盖率定义,但核心公式统一为:

测试覆盖率 = (检测到的故障数 / 可检测故障总数) × 100%

其中“可检测故障总数”通常排除冗余故障(即无法通过任何测试向量检测的故障)。

2.3.1 常用覆盖率指标

覆盖率类型 计算公式 典型目标 说明
Stuck-at 覆盖率 检测SA故障数 / 总SA故障数 ≥98% 最基础指标,DFT验收必看
Transition 覆盖率 检测STR/STF故障数 / 总跳变故障数 ≥90% 先进工艺关键指标
桥接覆盖率 检测桥接故障数 / 总桥接故障数 ≥85% 依赖版图信息
动态故障覆盖率 随时间累积检测故障数 / 总故障数 — 用于评估测试向量效率

2.3.2 覆盖率与测试质量的关系

测试覆盖率并非越高越好,需要平衡测试成本(向量数量、测试时间、ATE内存)和测试质量(缺陷检出率)。工程上通常遵循以下原则:

  • 覆盖率拐点: 当Stuck-at覆盖率超过95%后,每提升1%所需的向量数量呈指数增长。
  • 缺陷覆盖率(Defect Coverage): 实际物理缺陷的检出率,与故障覆盖率之间存在映射关系,通常通过缺陷仿真评估。
  • 测试逃逸(Test Escape): 未被测试覆盖的缺陷导致的不良品流出,是覆盖率不足的直接后果。
工程陷阱: 不要盲目追求100% Stuck-at覆盖率。冗余故障(如某些SA0/SA1在功能上不可激活)应被排除,否则会浪费测试资源。建议与设计团队确认冗余故障列表。
测试覆盖率与测试成本关系 测试覆盖率 (%) 0 25 50 75 95 100 测试成本 (相对值) 拐点 (~95%) 覆盖率 >95% 后 成本急剧上升

2.4 本章小结