2. 测试基础
在DFT(可测试性设计)的工程实践中,无论是遵循IEEE 1500标准进行芯核(Core)封装,还是依据IEEE 1687标准(IJTAG)管理仪器嵌入网络,其底层逻辑都离不开对“测试”本质的深刻理解。测试的本质是一个“刺激-响应-判定”的过程:向电路施加特定的输入向量,捕获输出响应,并与期望值比对。然而,芯片内部数以千万计的晶体管与互连线,使得穷举测试在物理上和时间上均不可行。因此,我们必须依赖一套严谨的数学模型来抽象物理缺陷,这套模型就是故障模型。本章将深入剖析固定故障、跳变故障与桥接故障的物理本质与逻辑抽象,阐述ATPG(自动测试向量生成)的核心算法思想,厘清故障模拟在测试开发中的关键作用,并最终通过测试覆盖率这一量化指标来评估测试方案的完备性。这些概念是后续理解扫描链设计、压缩技术以及IEEE 1500/1687标准中Wrapper单元与TAP控制器行为的基础。
2.1 故障模型:从物理缺陷到逻辑抽象的桥梁
核心原理:为什么需要故障模型?
在纳米级工艺下,芯片制造过程中的缺陷(如栅氧化层针孔、金属互连的颗粒污染、光刻对准偏差)形态千变万化。若直接针对物理缺陷进行测试生成,计算复杂度将呈指数级爆炸,且无法穷举。故障模型的核心思想是将物理缺陷在逻辑层等效为一种行为改变。例如,一根金属线因断裂而悬空,在CMOS逻辑中可能表现为固定为逻辑0或逻辑1,这就抽象为固定故障。通过这种抽象,我们无需关心缺陷的具体物理位置,只需关注电路节点的逻辑值变化,从而使得测试生成算法能够基于网表进行数学运算。
三大经典故障模型详解
| 故障模型 | 逻辑行为定义 | 典型物理缺陷 | 测试难度 |
|---|---|---|---|
| 固定故障 (Stuck-At) | 信号线固定为逻辑0 (SA0) 或逻辑1 (SA1) | 金属线断路、晶体管源漏短路、接触孔失效 | 单固定故障模型 (SSF) 是基础,测试向量生成相对成熟 |
| 跳变故障 (Transition) | 信号在时钟沿到来时无法完成预期的0→1或1→0跳变 | 晶体管驱动能力不足、电容负载过大、时序参数漂移 | 需要两个向量(初始化向量+启动向量),测试时序复杂 |
| 桥接故障 (Bridging) | 两条或以上信号线意外短接,形成线或(Wired-OR)或线与(Wired-AND)逻辑 | 相邻金属线间颗粒物、光刻桥连、封装引线短路 | 故障对数量呈平方级增长,需特殊处理 |
工程视角:在IEEE 1500标准中,当封装一个芯核(Core)时,我们通常假设芯核内部逻辑采用固定故障模型作为签核(Sign-off)标准,因为该模型对测试覆盖率的评估具有高度可预测性。而针对时序相关的延迟缺陷,则必须引入跳变故障模型,尤其是在高速接口或关键路径上。桥接故障在版图相关的DFT规则检查(如DFM)中尤为重要,但在逻辑ATPG中常通过“邻近线对”的抽取来近似。
案例拆解:一个2输入与非门(NAND)的故障分析
假设一个标准NAND门,输入为A和B,输出为Z。在单固定故障模型下,该门共有6个故障点(A/SA0、A/SA1、B/SA0、B/SA1、Z/SA0、Z/SA1)。为了检测Z/SA0(输出固定为0),我们需要让正常电路输出为1,即施加A=0或B=0。此时若Z实际为0,则故障被激活并传播。对于A/SA1,我们需要设置B=0(使门开启),并施加A=0(正常时Z=1,故障时Z=0)。关键点在于:测试向量必须同时满足故障激活(在故障点建立相反逻辑值)和故障传播(将故障效应传递到可观测输出)。
常见误区:初学者常误以为固定故障只影响逻辑功能。实际上,在深亚微米工艺下,一个节点的SA0故障可能由多种物理原因引起,且可能表现为间歇性错误。因此,DFT设计中不能仅依赖单一故障模型,需结合多种模型进行综合评估。
2.2 测试生成(ATPG):自动化的智能搜索算法
核心原理:ATPG的本质是约束满足问题
ATPG(Automatic Test Pattern Generation)的目标是:给定一个电路网表和目标故障列表,自动生成一组最小化的测试向量,使得每个可检测故障至少被一个向量检测到。其核心算法基于D算法(D-Algorithm)、PODEM(Path-Oriented Decision Making)或FAN(Fanout-Oriented)等。这些算法的本质是在电路结构上进行回溯搜索:首先将故障点的错误值标记为D(1/0)或D'(0/1),然后通过逻辑蕴涵和回溯,确定主输入端(PI)应施加的逻辑值。
操作流程:从网表到测试向量的标准步骤
- 故障列表生成:基于网表,提取所有节点的SA0/SA1故障,并进行等价故障合并(如NAND门输出SA0与输入SA1等价),减少故障数量。
- 故障塌缩(Fault Collapsing):通过结构分析,将等价故障合并为故障类,通常可减少50%-70%的故障数。
- 向量生成:对每个目标故障,运行ATPG算法。若算法成功,则输出一个测试向量;若判定为不可测故障(如冗余故障),则标记为未检测。
- 向量压缩:使用静态压缩(删除被其他向量覆盖的向量)和动态压缩(在生成时合并多个故障的约束)技术,减少向量集大小,降低测试时间。
实战场景:在IEEE 1687 (IJTAG) 网络中,ATPG不仅针对核心逻辑,还需针对Segment Insertion Bit (SIB)和TAP控制器的状态机逻辑生成测试向量。由于IJTAG网络具有层次化和动态配置特性,ATPG工具必须能识别扫描复用和条件时钟,否则生成的向量可能无法在测试模式下正确加载。
ATPG算法对比与选择
| 算法 | 基本策略 | 优点 | 局限性 |
|---|---|---|---|
| D算法 | 多维敏化路径 | 理论完备,能处理所有故障 | 计算复杂度高,回溯次数多 |
| PODEM | 面向目标的隐式枚举 | 内存占用小,对非门电路效率高 | 对X态传播处理复杂 |
| FAN | 扇出点分析与唯一敏化 | 减少回溯,速度较快 | 实现复杂,对时序电路需扩展 |
2.3 故障模拟:验证测试向量质量的黄金标准
核心原理:模拟而非实测
故障模拟是在计算机上模拟“存在故障的电路”在给定测试向量下的行为。其目的是精确计算测试覆盖率,并识别哪些故障未被检测。与ATPG不同,故障模拟是给定向量,评估故障。常用的算法包括串行故障模拟、并行故障模拟、演绎故障模拟和并发故障模拟。现代工具多采用并发故障模拟,它同时模拟好电路和所有故障电路,通过比较输出差异来判定检测情况。
判断方法:如何解读故障模拟报告?
- 检测故障数(Detected):至少有一个向量能将该故障的效应传播到输出。
- 可能检测故障(Possibly Detected):故障效应传播到了未知态(X态),需进一步分析。
- 未检测故障(Undetected):当前向量集无法检测,可能原因:冗余故障、测试约束限制、ATPG放弃。
- 故障覆盖率(FC):计算公式为:
FC = (检测故障数 + 可能检测故障数 * 0.5) / 总故障数。行业标准通常要求FC > 98% (对于固定故障)。
经验提醒:在IEEE 1500标准中,当芯核测试封装完成后,需要运行最终的故障模拟,以确认Wrapper的旁路模式(Bypass)和直通模式(Transparent)不会影响内部测试覆盖率。若覆盖率不达标,需检查扫描链插入是否完整,或考虑增加测试点(Test Point)以提高可控制性和可观测性。
案例闭环:某AI芯片的测试覆盖率优化过程
背景与约束:一款用于边缘计算的AI加速芯片,包含4个相同的神经网络处理单元(NPU)芯核,遵循IEEE 1500标准进行封装。流片后测试发现,固定故障覆盖率仅为95.2%,低于量产要求的98.5%。初始现象:故障模拟报告显示,大量未检测故障集中在NPU内部的乘法器阵列的进位链上。
分析判断过程:工程师通过故障报告定位到,这些进位链的故障属于顺序冗余故障——即故障效应需要多个时钟周期才能传播到输出,而当前的扫描测试仅支持单周期捕获。进一步分析发现,Wrapper的Wrapper Serial Control (WSC)端口在测试时未正确配置为内部扫描链的扩展模式,导致部分内部节点无法被外部向量控制。
实际操作步骤:
- 修改IEEE 1500 Wrapper的指令寄存器(IR)配置,将INTEST指令扩展为支持多周期捕获(即添加额外的Capture时钟脉冲)。
- 重新运行ATPG,针对进位链故障生成时序扩展向量。
- 在故障模拟中,将Wrapper的旁路寄存器(Bypass Register)设置为非活动状态,确保测试向量能穿透到芯核内部。
结果对比:调整后,故障覆盖率从95.2%提升至98.9%,未检测故障仅剩少量真正的冗余故障(通过形式化验证确认为不影响功能)。风险与代价:多周期捕获增加了测试应用时间约15%,但换来了良率提升约2.3个百分点,综合收益显著。复盘经验:在芯核封装阶段,必须仔细审查Wrapper指令与内部扫描模式的时序兼容性,不能仅依赖工具默认设置。
2.4 测试覆盖率:不仅仅是数字游戏
核心原理:覆盖率与缺陷水平的关联
测试覆盖率(Test Coverage)是衡量测试质量的量化指标,但它并非物理缺陷覆盖率的直接映射。业界常用缺陷水平(Defect Level, DL)来关联:DL ≈ 1 - Y^(1 - FC),其中Y是制造良率。这意味着,当良率较低时,即使测试覆盖率很高,仍有大量缺陷可能逃逸。因此,覆盖率目标需根据产品应用场景(消费级 vs 车规级)和制造良率动态调整。
常见误区与总结复盘
- 误区一:追求100%覆盖率。 由于冗余故障的存在,100%的固定故障覆盖率在物理上不可达。通常98.5%以上即为优秀。
- 误区二:忽略X态传播。 在IEEE 1687网络中,未初始化的寄存器可能产生X态,导致故障模拟误判为“可能检测”,从而虚增覆盖率。需使用X态抑制技术。
- 误区三:只关注固定故障。 对于先进工艺(如7nm及以下),跳变故障和桥接故障导致的早期失效占比显著上升。必须结合at-speed测试(基于PLL或外部时钟)来覆盖跳变故障。
风险提示:在定义IEEE 1500 Wrapper的测试访问机制(TAM)时,若测试总线宽度设计过窄,会导致ATPG向量加载时间过长,从而限制可应用的向量数量,最终拉低实际覆盖率。务必在DFT规划阶段进行测试时间-覆盖率的权衡分析。