2. 数字IC测试基础
数字IC测试的本质是回答两个问题:芯片里是否存在制造缺陷?以及这些缺陷是否会导致功能失效?要回答这两个问题,我们必须先建立一套“缺陷的语言”——即故障模型。故障模型是连接物理缺陷与逻辑行为的桥梁,它决定了测试向量生成的策略、测试覆盖率的计算方式,以及最终产品良率与DPPM(Defective Parts Per Million,百万分之缺陷率)的评估。本章将系统讲解三大核心故障模型、可测性设计(DFT)的基本概念,以及测试覆盖率与DPPM之间的量化关系,为后续学习TestMAX工具的具体实现打下坚实的理论基础。
上图展示了从物理缺陷到DPPM的完整工程链路。物理缺陷(如金属桥接、栅氧击穿)通过故障模型抽象为逻辑级故障,DFT设计(扫描链、BIST等)使这些故障可被测试向量激励和观测,最终通过覆盖率计算和DPPM量化产品质量。下面我们逐一深入每个环节。
2.1 核心故障模型:固定故障、跳变故障与桥接故障
2.1.1 固定故障(Stuck-At Fault, SAF)
核心原理:固定故障是最经典、最基础的故障模型,它假设电路中某个信号线永久性地固定在逻辑0(SA0)或逻辑1(SA1)上。这种模型对应了制造过程中诸如金属线断裂(导致浮空或固定电平)、晶体管短路或开路等物理缺陷。SAF模型的关键优势在于其简单性和可计算性——每个节点只需考虑两种故障状态,使得故障列表规模可控,ATPG(自动测试向量生成)算法可以高效处理。
判断方法:在TestMAX ATPG中,固定故障的检测需要满足两个条件:激励(Stimulus)——测试向量必须将故障节点的正常值设置为与故障值相反的逻辑;传播(Propagation)——故障效应必须能够通过组合逻辑路径传播到至少一个可观测的输出端(如扫描触发器或主输出)。例如,对于节点N的SA0故障,测试向量必须使N在正常逻辑下为1,并且该1值的变化能通过后续逻辑传递到输出。
| 故障类型 | 物理缺陷对应 | 检测条件 | 故障数量 |
|---|---|---|---|
| SA0 | 金属线对地短路、NMOS管栅极开路 | 节点正常值为1,且可传播 | 每节点1个 |
| SA1 | 金属线对电源短路、PMOS管栅极开路 | 节点正常值为0,且可传播 | 每节点1个 |
| SAF总集 | — | — | 2 × 节点数 |
2.1.2 跳变故障(Transition Fault, TF)
核心原理:跳变故障用于检测时序电路中的延迟缺陷,它模拟的是信号在时钟沿到来时无法在规定的时序窗口内完成从0→1(上升跳变)或1→0(下降跳变)的转换。这种故障通常由晶体管驱动能力不足、互连线电阻电容(RC)延迟过大或电压降(IR Drop)引起。与SAF不同,TF需要两个连续的测试向量:第一个向量(初始化向量)将节点设置为初始状态,第二个向量(启动向量)在时钟沿触发跳变,并在下一个时钟沿捕获结果。
判断方法:TF的检测需要满足三个条件:① 初始化——第一个向量将节点设置为跳变的起始值;② 启动——第二个向量在时钟沿使节点发生目标跳变;③ 捕获——跳变后的值在下一个时钟沿被扫描触发器捕获并传播到输出。TestMAX中通常使用“Launch-on-Capture”(LOC)或“Launch-on-Shift”(LOS)两种时序方案来实现TF测试。
2.1.3 桥接故障(Bridging Fault, BF)
核心原理:桥接故障模拟的是两条相邻信号线之间意外短路的情况,这在先进工艺中尤为常见(金属线间距缩小导致桥接概率上升)。桥接故障的行为比SAF复杂得多,因为两个节点的逻辑值会相互影响。根据短路电阻和驱动强度的不同,可能表现为“线与”(Wired-AND)、“线或”(Wired-OR)或“主导型”(Dominant)行为。BF的故障空间极大(O(n²)),因此工程上通常采用提取关键邻居对的方法,只对物理布局上相邻且可能桥接的线对进行建模。
判断方法:TestMAX支持基于版图提取的桥接故障列表,也可以使用“邻居模型”自动生成候选桥接对。检测BF需要使两个节点被驱动为相反的逻辑值,然后观察短路后的实际逻辑是否偏离预期。例如,对于线与桥接,两个节点一个为1、一个为0时,短路后两个节点都被拉低为0,从而可被检测。
2.2 可测性设计(DFT)基本概念
核心原理:可测性设计(Design for Testability)的核心思想是在芯片设计阶段就考虑测试需求,通过增加额外的测试逻辑和测试端口,使内部节点变得可控(Controllability)和可观测(Observability)。没有DFT的芯片,内部节点只能通过复杂的组合逻辑路径间接控制,测试向量生成难度呈指数级增长。DFT的三大支柱是:扫描链(Scan Chain)、内建自测试(BIST)和测试访问端口(TAP)。
操作流程:在TestMAX DFT Compiler中,典型的DFT插入流程包括:① 定义测试时钟和测试复位信号;② 指定扫描触发器类型(如mux-D型);③ 设置扫描链数量与长度(平衡链长以优化测试时间);④ 插入扫描链并连接扫描使能(Scan Enable)和扫描输入/输出端口;⑤ 生成SPF(STIL Protocol File)文件供ATPG使用。
| DFT结构 | 目的 | 面积开销 | 测试时间影响 |
|---|---|---|---|
| 全扫描(Full Scan) | 所有触发器可串行移位 | 约5-10% | 测试时间与触发器数量成正比 |
| 部分扫描(Partial Scan) | 仅关键路径触发器 | 约2-5% | 覆盖率可能下降 |
| BIST(Logic/Memory) | 片上自测试,无需外部向量 | 约10-15% | 测试时间短,但覆盖率受限 |
| 边界扫描(JTAG) | 板级互连测试 | 约1-3% | 用于系统级调试 |
2.3 测试覆盖率与DPPM的量化关系
核心原理:测试覆盖率(Test Coverage, TC)定义为被测试向量检测到的故障数占故障总数的比例。而DPPM(Defective Parts Per Million)是衡量出厂芯片中缺陷芯片比例的指标。两者通过Williams-Brown模型建立数学联系:DL = 1 - Y^(1-TC),其中Y为制造良率(Yield),DL为缺陷水平(Defect Level)。DPPM = DL × 10⁶。这个公式揭示了关键规律:当良率固定时,测试覆盖率越高,逃逸的缺陷芯片越少。
判断方法:在实际项目中,我们通常先设定DPPM目标(如消费级芯片要求DPPM < 500,车规级要求DPPM < 10),然后反推所需的测试覆盖率。例如,若良率Y=95%,目标DPPM=500,则DL=0.0005,解得TC = 1 - ln(1-DL)/ln(Y) ≈ 1 - ln(0.9995)/ln(0.95) ≈ 0.989,即需要98.9%的测试覆盖率。
2.4 总结与复盘
本章的核心逻辑链是:物理缺陷 → 故障模型(SAF/TF/BF)→ DFT设计(扫描链/BIST)→ ATPG向量 → 测试覆盖率 → DPPM。SAF是基础,TF覆盖时序缺陷,BF处理版图相关短路。DFT是提升可控性和可观测性的关键手段,而覆盖率与DPPM的量化关系为测试策略的制定提供了数学依据。在实际项目中,务必先明确DPPM目标,再反推覆盖率要求,最后决定DFT结构和ATPG向量数量。TestMAX工具链提供了从DFT插入、ATPG到故障仿真的完整流程,但工具只是手段,深刻理解故障模型和覆盖率原理才是做出正确工程决策的基础。