3. 故障模型与测试原理

数字集成电路的测试本质上是“激励-响应”的比对过程:向芯片内部节点施加预先设计的逻辑值,观察输出是否与预期一致。然而,芯片内部可能存在成千上万个物理缺陷,若逐一针对物理缺陷建模,测试成本将不可控。因此,业界采用故障模型(Fault Model)将物理缺陷抽象为逻辑级行为,再基于故障模型生成测试向量。本章将系统讲解四大经典故障模型(固定故障、跳变故障、延迟故障、桥接故障)的物理对应关系、逻辑行为特征、测试生成方法,以及ATPG(自动测试向量生成)的核心原理与流程。

故障模型与ATPG原理总览 物理缺陷层 • 金属开路/短路 • 栅氧击穿 • 离子污染/电迁移 抽象 逻辑故障模型层 • 固定故障 (SA0/SA1) • 跳变故障 (Slow-to-Rise/Fall) • 延迟故障 (Path Delay) • 桥接故障 (Wired-AND/OR) 映射 ATPG引擎 • D算法 / PODEM • FAN / 面向扫描链 • 压缩与合并 • 故障覆盖率达标 测试应用与故障诊断 ATE测试机 → 扫描链移位 → 捕获响应 → 比对签名 故障字典 → 良率分析 → 物理失效定位 核心测试原理: 1. 可控性(Controllability):通过扫描链或主输入,将任意节点设置为所需逻辑值。 2. 可观测性(Observability):将内部节点响应传播至主输出或扫描链末端。 3. 故障激活(Fault Activation):在故障点产生与故障值相反的逻辑值。 4. 故障传播(Fault Propagation):将故障效应沿敏化路径传至可观测点。 ATPG目标: 在满足故障覆盖率(≥98%典型)前提下,最小化测试向量数量,降低测试时间与存储成本。

上图展示了从物理缺陷到逻辑故障模型,再到ATPG生成测试向量的完整链路。物理缺陷种类繁多,但通过故障模型抽象后,测试生成算法只需处理有限的逻辑行为,从而大幅降低计算复杂度。下面逐一剖析各故障模型。

3.1 固定故障模型(Stuck-At Fault)

3.1.1 核心原理

固定故障是最经典、最基础的逻辑故障模型,它假设电路中某个信号线永久性地固定在逻辑0(SA0)或逻辑1(SA1)。该模型对应物理缺陷如金属线开路(表现为浮空或上拉/下拉电阻导致固定电平)、电源与地短路、晶体管栅极击穿等。固定故障属于静态故障,即与时钟频率无关,只要施加合适的激励即可暴露。

固定故障的测试条件有两个:故障激活(在故障点设置相反逻辑值)和故障传播(将故障效应传递到输出)。例如,对于信号线N的SA1故障,需要将N驱动为0,同时确保从N到主输出存在一条敏化路径。

3.1.2 判断方法与测试生成

在扫描链设计中,固定故障的测试生成相对简单:

  1. 将电路置于扫描测试模式,通过扫描链将测试向量移位到触发器。
  2. 在组合逻辑部分,使用ATPG算法(如D算法、PODEM)自动生成满足激活与传播条件的向量。
  3. 捕获响应,与无故障仿真结果比对。

固定故障的故障数量为2×N(N为信号线数量),但通过故障等价与故障支配合并后,实际需要处理的故障数可减少50%-70%。

3.1.3 案例拆解:反相器链的SA0故障检测

考虑一个三级反相器链(INV1→INV2→INV3),假设INV2的输出节点X存在SA0故障。测试过程如下:

  • 故障激活:需要将X设置为1,因此INV1的输入应为0(因为INV1反相)。
  • 故障传播:X的故障值0经过INV3反相后,输出Y应为1(无故障时Y=0)。
  • 测试向量:主输入PI=0,预期输出PO=0(无故障),实际输出PO=1(有故障),从而检测到SA0。

该案例说明固定故障测试的核心是“激活+传播”的二元组合。

经验提醒:固定故障模型虽然简单,但仍是当前工业界测试覆盖率考核的基础指标。TSMC、Samsung等代工厂的测试良率报告中,SA故障覆盖率通常要求≥98%。对于3D IC中的TSV(硅通孔),固定故障模型同样适用于TSV开路/短路检测,但需结合TSV电阻、电容参数进行扩展。

3.2 跳变故障模型(Transition Fault)

3.2.1 核心原理

跳变故障属于动态故障,用于检测时序电路中的慢爬升/慢下降缺陷。它假设某个节点在时钟沿到来时无法在限定时间内完成逻辑跳变,即Slow-to-Rise(STR)或Slow-to-Fall(STF)。物理对应包括晶体管驱动能力不足、负载电容过大、电源电压下降等。

跳变故障的测试需要两个连续的测试向量(V1, V2):V1将节点初始化为目标跳变的起始值,V2在下一个时钟沿触发跳变并传播故障效应。测试时序为:初始化(V1)→ 启动(V2)→ 捕获。

3.2.2 测试生成流程

步骤操作说明
1选择故障节点与跳变类型例如节点N的STR故障
2生成V1(初始化向量)将N设置为0(为上升跳变做准备)
3生成V2(启动向量)将N驱动为1,并敏化传播路径
4时序约束V1与V2之间间隔一个时钟周期,捕获沿在V2之后
5仿真验证无故障时捕获到1,有故障时捕获到0(或延迟)

跳变故障的测试覆盖率与时钟频率密切相关。在At-speed测试中,测试时钟频率需接近芯片正常工作频率,否则慢节点可能被掩盖。

3.2.3 实战场景:3D IC中的TSV跳变测试

在3D堆叠芯片中,TSV作为垂直互连,其电容和电阻远大于平面互连。若TSV驱动器的驱动能力不足,信号通过TSV时可能产生过大的上升/下降时间,导致跨时钟域采样错误。测试时需在TSV两端分别插入扫描触发器,使用At-speed时钟生成跳变向量,检测TSV链路上的STR/STF故障。

风险提示:跳变故障测试容易产生“过度测试”问题——由于工艺偏差,部分正常芯片在极端温度或电压下可能表现出跳变延迟,导致误判。建议结合工艺角(SS/TT/FF)仿真结果,合理设置测试时钟裕量。

3.3 延迟故障模型(Path Delay Fault)

3.3.1 核心原理

路径延迟故障关注的是完整信号路径的总延迟是否超过时钟周期,而非单个节点的跳变速度。一条路径由组合逻辑门和互连线组成,从触发器的输出端到另一个触发器的输入端。路径延迟故障模型更精确地反映了芯片的实际时序行为,但路径数量呈指数级增长,因此通常只对关键路径(时序分析中余量最小的路径)进行测试。

路径延迟测试同样需要双向量,但要求沿整条路径的每个门都发生跳变,且跳变方向一致(上升或下降沿沿路径传播)。测试生成复杂度远高于跳变故障。

3.3.2 判断方法与关键指标

  • 路径选择:优先选择静态时序分析(STA)报告中的最差余量路径(Negative Slack路径)。
  • 跳变类型:每条路径需分别测试上升沿传播和下降沿传播。
  • 测试时钟:使用系统时钟或稍慢的时钟(如系统时钟的90%)以留出裕量。
  • 故障覆盖:路径延迟故障覆盖率通常低于固定故障,业界目标为≥80%关键路径覆盖。

3.3.3 案例拆解:关键路径延迟测试

假设某芯片的关键路径为:FF1/Q → AND门 → OR门 → FF2/D,STA报告该路径延迟为1.2ns,时钟周期为1.0ns(余量为-0.2ns)。测试策略:

  1. 使用双向量(V1=0001, V2=0011)使路径上所有门发生跳变。
  2. 在V2施加后,等待一个时钟周期(1.0ns)捕获FF2的值。
  3. 若FF2捕获到错误值,说明路径延迟超过1.0ns,判定为延迟故障。

该测试能有效筛选出因工艺偏差或电压降导致的时序失效芯片。

总结:跳变故障与路径延迟故障的区别在于:跳变故障只关注单个节点的跳变速度,而路径延迟故障关注整条路径的累积延迟。前者测试生成简单、覆盖率高,后者更贴近实际时序失效但成本高。工业界通常以跳变故障测试为主,路径延迟测试仅用于关键路径。

3.4 桥接故障模型(Bridging Fault)

3.4.1 核心原理

桥接故障指两条或多条信号线之间发生意外短路,导致逻辑值相互影响。根据短路类型,可分为Wired-AND(线与,任一信号为0则结果为0)和Wired-OR(线或,任一信号为1则结果为1)。物理对应为金属桥连、介质击穿、TSV侧壁漏电等。

桥接故障的测试比固定故障复杂,因为故障行为取决于两个信号的逻辑组合。例如,节点A和B桥接(Wired-AND),当A=1、B=0时,实际A和B都被拉低为0,产生错误。

3.4.2 测试生成策略

桥接类型激活条件传播要求
Wired-AND两个节点逻辑值相反(1和0)将故障效应传播到至少一个可观测点
Wired-OR两个节点逻辑值相反(0和1)同上
反馈桥接形成反馈回路,可能产生振荡需避免振荡,使用IDDQ测试辅助

桥接故障的ATPG生成通常采用故障对枚举方法,但节点对数量为O(N²),因此需使用启发式算法(如随机采样、基于拓扑的候选筛选)降低复杂度。

3.4.3 实战场景:3D IC中的TSV桥接故障

在3D堆叠芯片中,TSV间距极小(典型5-10μm),相邻TSV之间可能因电镀缺陷或介质层空洞发生桥接。测试时需将相邻TSV分别驱动为相反逻辑值,通过捕获端的逻辑错误检测桥接。此外,IDDQ测试(静态电源电流测试)对桥接故障非常敏感——桥接会导致两个驱动器的PMOS/NMOS同时导通,产生异常大的漏电流。

注意事项:桥接故障的测试向量可能与其他故障的测试向量冲突,且桥接故障的覆盖率难以精确计算。建议在DFT阶段插入额外的测试点(Test Point),提高桥接故障的可控性和可观测性。

3.5 ATPG基本原理与流程

3.5.1 ATPG核心算法

ATPG(Automatic Test Pattern Generation)的目标是自动生成满足故障覆盖要求的测试向量。主流算法包括:

  • D算法:基于D立方(D=1/0,D̄=0/1)的敏化路径搜索,适用于中小规模电路。
  • PODEM:面向目标故障的隐式枚举算法,通过反向回溯和正向蕴含减少搜索空间。
  • FAN:在PODEM基础上引入多路径敏化和头线(Head Line)概念,效率更高。
  • 面向扫描链的ATPG:利用扫描链将时序电路转化为组合电路,大幅简化测试生成。

3.5.2 ATPG流程

  1. 网表解析:读入门级网表(Verilog/VHDL),建立电路拓扑。
  2. 故障列表生成:根据故障模型(SA、Transition等)生成故障列表,并进行故障等价合并。
  3. 故障仿真:对每个故障运行ATPG算法,生成测试向量。
  4. 向量压缩:合并兼容向量,减少测试向量数量。
  5. 覆盖率计算:通过故障仿真验证实际检测到的故障数。
  6. 输出:生成WGL/STIL格式测试向量文件,供ATE测试机使用。

3.5.3 案例拆解:扫描链ATPG流程

以一款8位ALU芯片为例,包含2000个逻辑门和100个扫描触发器。ATPG流程如下:

  • 输入:综合后的门级网表、扫描链定义文件(SPF)、时钟约束。
  • 故障列表:SA故障约4000个,合并后约2500个。
  • ATPG运行:使用TetraMAX或Modus工具,运行时间约5分钟。
  • 结果:生成120个测试向量,SA覆盖率99.2%,Transition覆盖率95.8%。
  • 验证:在ATE上运行测试,实际良率与仿真预测偏差小于0.5%。
关键经验:ATPG的覆盖率与测试向量数量存在权衡。覆盖率从95%提升到99%,向量数量可能增加3-5倍。在量产测试中,需根据成本与质量目标选择合适的覆盖率阈值。对于3D IC,由于TSV和堆叠层的额外故障,建议在平面测试覆盖率基础上增加2%-3%的余量。

3.6 常见误区与总结复盘

误区正确理解
固定故障覆盖率100%即代表芯片可靠固定故障模型无法覆盖延迟、桥接等动态/物理故障,需结合多种模型
跳变故障测试时钟越快越好过快时钟会导致正常芯片误判,需根据STA余量设置
桥接故障只需测试相邻节点远距离节点间也可能通过电源/地网络或衬底耦合发生桥接
ATPG向量越多越好向量增加导致测试时间与存储成本上升,需权衡覆盖率
3D IC只需沿用2D测试流程TSV、微凸点、堆叠层间互连引入新故障类型,需扩展故障模型

本章系统梳理了四大故障模型与ATPG原理。在实际工程中,DFT工程师需根据芯片类型(逻辑、存储器、混合信号)、工艺节点(成熟制程 vs 先进制程)、封装形式(2D vs 3D)选择合适的故障模型组合。对于3D IC,建议在传统SA+Transition基础上,增加TSV桥接故障和TSV延迟故障的测试,并利用扫描链可测性设计(DFT)提高内部节点的可控性与可观测性。ATPG工具的选择与参数调优同样关键——TetraMAX、Modus、TestMax等工具在算法效率、向量压缩率上各有优劣,需结合设计规模与测试成本进行综合评估。