4. 故障模型与测试原理:从缺陷到可测性的桥梁

在DFT(可测试性设计)工程中,我们面对的核心问题并非“芯片是否功能正确”,而是“如何用有限的测试向量,高效地判断一颗芯片是否存在制造缺陷”。制造过程中的工艺偏差、微粒污染、光刻对准误差等,都会在硅片上引入物理缺陷,而这些物理缺陷最终会表现为逻辑层面的故障。故障模型(Fault Model)正是连接物理缺陷与逻辑测试行为之间的抽象桥梁。本章将深入剖析最经典的三大故障模型——固定故障、跳变故障与桥接故障,并系统阐述测试生成的基本原理与故障覆盖率这一核心度量指标。理解这些内容,是成为一名合格DFT工程师的基石,也是后续学习扫描链设计、ATPG(自动测试向量生成)与BIST(内建自测试)的必备前提。

DFT 故障模型与测试原理总览 物理缺陷 工艺偏差/微粒/ 光刻误差/氧化层击穿 逻辑故障模型 固定故障(SAF) 跳变故障(TF)/桥接故障(BF) 测试生成(ATPG) D算法/PODEM 路径敏化/布尔差分 故障覆盖率 FC = 检测数/ 故障总数 固定故障 (Stuck-At) • 节点固定为逻辑0或1 • 模型简单,使用最广泛 • 单固定故障(SSF)假设 • 测试需敏化路径并观测 跳变故障 (Transition) • 慢上升/慢下降延迟故障 • 需要两个向量:初始化+启动 • 用于时序电路测试 • 检测setup/hold违例 桥接故障 (Bridging) • 两条信号线短路 • 逻辑桥接(与/或)或 • 反馈桥接(振荡/记忆) • 需版图信息辅助定位 测试生成基本流程 ① 故障建模 ② 故障列表生成 ③ ATPG向量生成 ④ 故障模拟 ⑤ 覆盖率分析

上图清晰地展示了从物理缺陷到故障覆盖率评估的完整链路。DFT工程师的核心工作,就是围绕这一链路,建立准确的故障模型,并利用EDA工具生成高效的测试向量,最终以故障覆盖率作为验收标准。下面我们将逐一拆解每个环节的细节。

4.1 固定故障模型:数字测试的基石

核心原理:固定故障(Stuck-At Fault, SAF)是最经典、最基础的逻辑故障模型。它假设电路中的某个信号节点(如逻辑门的输入或输出引脚)永久性地固定为逻辑高电平(Stuck-At-1, SA1)或逻辑低电平(Stuck-At-0, SA0)。这种模型抽象掉了具体的物理缺陷形态(如金属线断裂、晶体管短路),直接关注逻辑行为。在实际工程中,我们通常采用单固定故障(SSF)假设,即一次只考虑一个节点存在故障,这大大简化了测试生成的复杂度。尽管真实缺陷可能同时影响多个节点,但SSF模型已被证明能覆盖绝大多数实际缺陷。

判断方法与测试条件:要检测一个SAF故障,必须满足两个条件:故障敏化与故障传播。故障敏化是指将故障节点的逻辑值设置为与故障值相反的值(例如,检测SA0需要将该节点驱动为1),使得故障能够“激活”。故障传播是指将故障节点的错误逻辑值,通过一条或多条路径传递到芯片的某个主输出(Primary Output, PO)或扫描触发器(Scan Flip-Flop),从而被外部测试设备观测到。例如,对于一个2输入与门(AND),要检测其输出端SA0故障,需要将两个输入均置为1(敏化),此时正常输出为1,故障输出为0,该差异即可被传播至输出端。

工程实战要点:在扫描链设计中,所有内部触发器均被替换为扫描触发器,并串联成移位寄存器。这使得ATPG工具可以直接控制(通过shift-in)和直接观测(通过shift-out)内部节点,从而极大地简化了故障敏化与传播的难度。对于组合逻辑块,ATPG工具只需考虑输入向量与输出响应;对于时序逻辑,则通过扫描链将时序问题转化为组合问题处理。
故障类型敏化条件传播要求典型缺陷
SA0 (固定为0)节点需被驱动为逻辑1错误值0需传播至可观测点金属线断路、晶体管漏极开路
SA1 (固定为1)节点需被驱动为逻辑0错误值1需传播至可观测点电源与信号线短路、栅氧化层击穿

常见误区:初学者常误以为固定故障只影响逻辑门,实际上它同样适用于寄存器、存储器地址译码器等所有数字逻辑。另一个误区是忽略“等效故障”的概念。例如,一个2输入与非门(NAND)的输入A的SA0故障,与输出端的SA1故障在逻辑行为上完全等价。ATPG工具会自动进行故障合并,减少需要处理的故障数量,从而提升效率。

4.2 跳变故障与桥接故障:覆盖动态与物理缺陷

跳变故障(Transition Fault, TF)核心原理:随着工艺节点缩小,时序相关的缺陷(如信号传播延迟过大)日益突出。跳变故障模型用于模拟这类延迟故障。它假设电路中的某个节点在时钟沿到来时,从0到1(慢上升)或从1到0(慢下降)的跳变无法在规定的时钟周期内完成。检测跳变故障需要两个连续的测试向量:第一个向量(初始化向量)将节点设置为初始状态,第二个向量(启动向量)在节点上产生一个跳变,并同时保证该跳变能传播到可观测点。如果故障存在,则观测到的值将不是期望的最终值。

桥接故障(Bridging Fault, BF)核心原理:桥接故障源于工艺缺陷导致的两条或多条信号线之间的意外短路。这种故障的行为比SAF复杂得多。根据短路点的逻辑关系,可分为逻辑桥接(如线与、线或)和反馈桥接(导致电路振荡或变成记忆元件)。桥接故障的检测高度依赖于版图信息,因为只有物理上相邻的线才可能发生桥接。在DFT流程中,通常使用版图寄生提取工具生成候选故障列表,再交由ATPG处理。

风险提示:跳变故障测试对测试时钟的频率非常敏感。在ATE(自动测试设备)上进行高速测试时,必须精确计算时序余量。而桥接故障若未被充分建模,可能导致“测试通过但现场失效”的严重问题,尤其是在汽车电子等安全关键领域。因此,现代DFT流程中,常引入Small Delay Defect (SDD)模型和Cell-Aware测试来弥补传统TF和BF模型的不足。

案例拆解:假设一个简单的组合电路,包含两个串联的反相器(INV1和INV2)。我们想检测INV2输出端的慢上升跳变故障。测试向量对为 (V1, V2)。V1需将INV2输出初始化为0(即INV2输入为1,INV1输入为0),V2需将INV2输入变为0(即INV1输入为1),从而在INV2输出端产生一个0→1的跳变。如果该跳变在时钟周期内未完成,则捕获到的值仍为0,故障被检测。此案例表明,跳变测试向量对必须连续施加,中间不能有间隔。

4.3 测试生成原理与故障覆盖率

测试生成(ATPG)基本原理:自动测试向量生成(ATPG)的核心算法包括D算法、PODEM和FAN等。这些算法的本质是路径敏化。以D算法为例,它引入D(正常为1,故障为0)和D'(正常为0,故障为1)符号,通过D-驱赶(将D值向输出端传播)、一致性操作(确保所有赋值不冲突)和蕴含(推导必要赋值)来系统地寻找测试向量。现代ATPG工具已高度优化,能在几秒内处理数百万门的电路,并支持压缩、合并等高级功能。

故障覆盖率(Fault Coverage, FC)定义与计算:故障覆盖率是衡量测试向量有效性的核心指标,定义为被检测到的故障数与故障总数之比。公式为:FC = (Detected Faults / Total Faults) × 100%。其中,Total Faults通常指故障列表中的全部故障,但会排除掉不可测试故障(如冗余逻辑导致的不可敏化故障)。因此,实际工程中更关注测试效率(Test Efficiency),即检测故障数除以(总故障数 - 不可测故障数)。

// 故障覆盖率计算示例(伪代码)
total_faults = 1000;          // 故障列表总数
detected_faults = 950;        // 测试向量检测到的故障数
untestable_faults = 30;       // 冗余逻辑导致的不可测故障

fault_coverage = (detected_faults / total_faults) * 100;  // 95%
test_efficiency = (detected_faults / (total_faults - untestable_faults)) * 100; // 97.9%

操作流程:在真实项目中,DFT工程师通常遵循以下流程:1) 使用EDA工具(如Synopsys TetraMAX、Mentor Tessent)读入门级网表;2) 定义故障模型(通常为SAF+TF);3) 工具自动生成故障列表;4) 运行ATPG生成测试向量;5) 进行故障模拟,计算覆盖率;6) 若覆盖率不达标(例如低于98%),则需分析未检测故障原因,可能通过增加测试点(Test Point)、修改设计逻辑或增加向量数量来改善。

经验总结:追求100%的故障覆盖率往往代价高昂。对于绝大多数消费级芯片,SAF覆盖率目标通常设定在98%以上,而TF覆盖率在95%左右。对于车规级芯片(AEC-Q100),要求则更为严苛,通常需要SAF覆盖率接近100%,并额外要求SDD覆盖率。DFT工程师必须在测试时间、测试向量体积(影响测试成本)和覆盖率之间做出权衡。
指标计算公式目标值参考影响因素
故障覆盖率 (FC)检测故障数 / 故障总数≥98% (SAF)向量数量、可控制性/可观测性
测试效率 (TE)检测故障数 / (总故障数 - 不可测故障)≥99%冗余逻辑、设计约束
向量体积测试向量文件大小越小越好ATPG压缩算法、扫描链结构

常见误区与复盘:一个常见的误区是认为故障覆盖率越高,芯片质量就一定越好。实际上,覆盖率只是衡量测试向量对模型化故障的检测能力,并不能覆盖所有物理缺陷。例如,一个针对SAF的测试集可能对桥接故障的覆盖率很低。因此,现代DFT策略强调多模型混合测试。另一个误区是忽视X态(未知态)的影响。在故障模拟中,未初始化触发器的输出为X态,这会掩盖故障的传播,导致覆盖率虚高或偏低。解决方法是使用X态压缩(X-Compaction)技术或在设计中加入复位逻辑。

总结而言,故障模型是DFT的理论基石,测试生成是将模型转化为实际测试向量的工程手段,而故障覆盖率则是衡量这一切成效的标尺。深入理解这三者之间的内在联系,能够帮助DFT工程师在设计阶段就做出正确的可测性决策,从而在芯片流片前,就为其质量与可靠性打下坚实基础。