二、可测试性设计基础:可测试性概念、故障模型与测试覆盖率
可测试性设计(Design for Testability, DFT)是芯片从设计到量产之间不可或缺的桥梁。在深亚微米乃至FinFET工艺节点下,一颗SoC可能包含数亿个逻辑门、数千个存储器宏单元以及多个高速接口。若不在设计阶段就植入可测试性结构,流片后的功能验证、良率分析和故障诊断将面临巨大挑战。本章作为DFT知识体系的地基,将系统阐述可测试性的核心概念、三大经典故障模型(固定故障、跳变故障、路径延迟故障)的数学定义与物理意义,以及测试覆盖率与缺陷等级(DPPM)之间的量化关系。理解这些基础,是后续学习扫描链插入、BIST(内建自测试)、ATPG向量生成与压缩的前提。
上图展示了本章的核心知识框架:可测试性概念为设计提供指导原则,故障模型将物理缺陷抽象为逻辑级可处理的对象,而测试覆盖率与缺陷等级则从统计学角度衡量测试方案的完备性。三者共同构成了DFT工程实践的闭环——从缺陷到故障抽象,再到ATPG向量生成,最终通过覆盖率指标反馈设计质量。
2.1 可测试性概念:可控性、可观测性与可预测性
2.1.1 核心原理
可测试性是指芯片内部节点状态能够被外部测试设备(ATE)设定(控制)和读取(观察)的难易程度。在数字IC设计中,可测试性通常分解为四个维度:可控性(Controllability)指将内部节点置为特定逻辑值(0或1)的能力;可观测性(Observability)指将内部节点逻辑值传播到主输出或扫描输出端的能力;可预测性(Predictability)指在给定输入向量下,电路响应可被精确预知;可区分性(Distinguishability)指不同故障产生的错误响应能够被区分的能力。这四个维度中,可控性和可观测性是最核心的工程指标,通常用SCOAP(Sandia Controllability/Observability Analysis Program)度量,其值范围从1(完全可控/可观测)到无穷大(不可控/不可观测)。
2.1.2 判断方法与设计准则
在实际设计审查中,工程师可通过以下清单快速评估模块的可测试性:
- 时钟与复位:所有触发器是否由可控时钟驱动?异步复位是否可被测试模式屏蔽?
- 反馈回路:是否存在组合逻辑环路(Combinational Loop)?若有,必须插入测试断开点。
- 三态总线:总线驱动使能信号是否可被独立控制?避免总线冲突导致未知态(X态)。
- 内部存储器:SRAM/ROM是否可通过BIST或直接访问机制(如JTAG)进行读写?
- 模拟/混合信号:模拟模块与数字逻辑的接口是否有测试隔离单元(如模拟环回)?
设计准则的核心思想是“测试友好”:避免冗余逻辑、避免不可复位触发器、避免异步时钟域交叉(CDC)未同步、避免高扇出重汇聚结构。这些准则在RTL编码阶段就应强制执行,而非等到网表阶段再补救。
2.1.3 案例拆解:一个异步FIFO的可测试性改造
假设某SoC中有一个异步FIFO,用于跨时钟域数据传输。初始设计中,FIFO的读写指针分别由两个异步时钟域控制,且没有扫描链插入。在DFT审查中发现:
- 读指针和写指针的格雷码比较逻辑存在组合环路,导致ATPG无法生成测试向量。
- FIFO的存储阵列(深度512×32bit)没有BIST,只能通过功能测试间接验证,覆盖率极低。
改造方案如下:
- 在FIFO的读写指针比较逻辑中插入测试多路选择器(Test MUX),当test_mode=1时,将读写指针强制为可控值,断开组合环路。
- 为存储阵列添加独立的BIST控制器,支持March C-算法,测试时间约2ms。
- 在FIFO输出端增加观测寄存器,使数据可通过扫描链直接读出。
改造后,该FIFO的故障覆盖率从62%提升至98.5%,测试向量数仅增加120条,面积开销约3.2%。此案例说明,可测试性设计不是事后补救,而是需要在架构阶段就规划测试结构。
2.2 故障模型:从物理缺陷到逻辑抽象
2.2.1 固定故障模型(Stuck-At Fault, SAF)
固定故障是最经典、最基础的故障模型,假设电路中某个信号线永久固定为逻辑0(SA0)或逻辑1(SA1)。该模型对应物理缺陷如金属线断裂、晶体管短路到电源/地等。对于包含n个节点的组合电路,故障总数约为2n(每个节点两种故障)。固定故障模型是单固定故障(Single Stuck-At Fault, SSAF)假设下的标准模型,即每次只考虑一个故障存在。ATPG工具(如TetraMAX、Modus)默认以SSAF为目标生成向量。
2.2.2 跳变故障模型(Transition Fault, TF)
跳变故障用于检测时序电路中的延迟缺陷,假设某个节点在时钟沿到来时无法在限定时间内完成逻辑跳变。跳变故障分为慢上升(Slow-to-Rise)和慢下降(Slow-to-Fall)两种。测试跳变故障需要两个连续的测试向量:第一个向量(初始化向量)将节点置为初始值,第二个向量(启动向量)使节点发生跳变,并在下一个时钟沿捕获结果。跳变故障模型比固定故障更贴近实际的高速时序失效,但测试向量数通常是固定故障的2-3倍。
2.2.3 路径延迟故障模型(Path Delay Fault, PDF)
路径延迟故障关注的是信号从起点到终点经过的完整组合路径的总延迟是否超过时钟周期。一条路径包含多个逻辑门和互连线,任何一段延迟超标都可能导致路径失效。PDF模型能捕捉到分布式延迟缺陷(如工艺偏差导致的全局速度下降),但路径数量随电路规模指数增长,因此实际工程中通常只对关键路径(时序分析报告中的临界路径)进行PDF测试。跳变故障与路径延迟故障的对比如下表:
| 对比维度 | 跳变故障(TF) | 路径延迟故障(PDF) |
|---|---|---|
| 故障粒度 | 单个节点 | 整条路径 |
| 物理对应 | 局部工艺偏差(如栅氧化层缺陷) | 全局工艺偏差(如阈值电压漂移) |
| 测试向量数 | 约2×SAF向量数 | 与关键路径数成正比 |
| ATPG复杂度 | 中等 | 高(需时序约束) |
| 覆盖率目标 | 通常要求≥95% | 仅覆盖关键路径,目标≥90% |
2.2.4 其他故障模型
除上述三种主流模型外,还有桥接故障(Bridging Fault)(相邻信号线短路)、开路故障(Open Fault)(互连线断裂)、IDDQ故障(静态电流异常)等。在实际工程中,固定故障和跳变故障是量产测试的必测项,而桥接和开路故障通常通过版图级DFM规则(如金属密度检查)来预防,不直接生成ATPG向量。
2.3 测试覆盖率与缺陷等级:量化测试质量
2.3.1 核心指标定义
故障覆盖率(Fault Coverage, FC)是ATPG工具报告的最直接指标,定义为:FC = 检测到的故障数 / 故障总数 × 100%。但需注意,故障总数中通常包含不可测故障(Untestable Faults),如冗余逻辑导致的等价故障。因此,工程上更关注有效覆盖率(Effective Coverage),即排除不可测故障后的覆盖率。
缺陷等级(Defects Per Million, DPPM)是衡量出厂芯片质量的核心指标,表示每百万颗芯片中可能存在缺陷的数量。DPPM与故障覆盖率的关系可通过Williams-Brown模型近似:
DPPM ≈ (1 - FC)^(K) × 10⁶
其中 K = 缺陷密度 × 芯片面积 / 逻辑门数
该模型表明,DPPM随覆盖率提升呈指数下降。例如,当K=1时,FC从95%提升到99%,DPPM从50,000降至10,000;当FC达到99.9%时,DPPM降至约1,000。但实际中K值受工艺成熟度影响,成熟工艺K≈0.5-1,先进工艺(如5nm)K可能达到2-3。
2.3.2 覆盖率与测试成本的权衡
测试成本主要由测试时间决定,而测试时间与向量数成正比。下表展示了不同覆盖率目标下的典型向量数与测试时间关系(以100万门级SoC为例):
| 覆盖率目标 | SAF向量数 | TF向量数 | 测试时间(@100MHz) | DPPM估算 |
|---|---|---|---|---|
| 95% | 2,000 | 4,500 | 65ms | 50,000 |
| 98% | 3,500 | 8,000 | 115ms | 20,000 |
| 99% | 5,000 | 12,000 | 170ms | 10,000 |
| 99.5% | 7,500 | 18,000 | 255ms | 5,000 |
从表中可见,覆盖率从99%提升到99.5%,向量数增加50%,但DPPM仅从10,000降至5,000。因此,DFT工程师需要与产品经理、测试工程师共同确定合理的覆盖率目标,而非一味追求高覆盖。
2.3.3 案例拆解:一款车规MCU的测试覆盖率规划
某车规级MCU芯片(基于28nm工艺,逻辑门数约2000万)要求DPPM≤100(即每百万颗芯片中缺陷不超过100颗)。初始DFT方案仅包含扫描链和BIST,ATPG报告SAF覆盖率为97.2%,TF覆盖率为89.5%。经计算,该覆盖率对应的DPPM约为8,000,远不达标。
分析发现,覆盖率不足的主要原因是:
- 模拟模块(ADC、LDO)与数字逻辑的接口没有测试隔离,导致约3%的逻辑不可测。
- 部分存储器宏单元未接入BIST,而是通过功能路径测试,覆盖率仅85%。
改进措施:
- 在模拟/数字接口处插入测试多路选择器,使模拟模块在测试模式下被旁路,增加可控性。
- 为所有SRAM添加BIST控制器,并支持March C+算法。
- 对关键时序路径(时钟频率≥200MHz)增加路径延迟测试向量。
改进后,SAF覆盖率提升至99.1%,TF覆盖率提升至96.8%,DPPM估算降至约800。虽然仍未达到100的严苛目标,但结合系统级测试(如LBIST)和封装级测试,最终出厂DPPM可控制在50以内。此案例表明,覆盖率规划需要多级测试策略协同,而非仅依赖ATPG。