2、可测试性设计基础:故障模型、可观测性/可控性、测试覆盖率概念

可测试性设计(Design for Testability, DFT)是ASIC设计中确保芯片良率、缩短调试周期、支撑量产测试的核心工程手段。在深入扫描插入与压缩架构之前,必须先建立三个基础概念:故障模型(Fault Model)、可观测性/可控性(Observability/Controllability)以及测试覆盖率(Test Coverage)。这三个概念构成了DFT工程师判断“测试是否充分”的语言体系。没有故障模型,测试向量就是盲目的;没有可控性与可观测性,内部节点就如同黑盒;没有覆盖率指标,就无法量化测试质量。本章将系统拆解这些基础概念,并给出工程实践中的判断方法与常见误区。

DFT基础概念关系与工程链路图 故障模型 Stuck-At / Transition Bridging / IDDQ / Delay 抽象物理缺陷 → 逻辑级描述 可控性 / 可观测性 可控性:将节点置为特定值的能力 可观测性:将内部值传播到输出 SCOAP度量:CC0/CC1/CO 测试覆盖率 故障覆盖率 = 检测故障/总故障 测试点插入 / 向量优化 量产质量与DPPM直接相关 DFT工程实现链路 RTL设计 功能逻辑 + 扫描准备 扫描插入 DFT Compiler / Genus ATPG向量生成 TetraMAX / Modus 覆盖率分析 故障报告 / 未覆盖分析 量产 ATE测试 覆盖率不达标 → 返回插入测试点或优化扫描链 目标:≥98% 故障覆盖率 DPPM < 500

上图展示了DFT三大基础概念之间的逻辑关系以及它们在工程链路中的位置。故障模型为测试提供目标,可控性与可观测性决定了测试的可行性,而覆盖率则是衡量测试有效性的最终标尺。下面逐一深入展开。

2.1 核心原理:故障模型——从物理缺陷到逻辑抽象

故障模型是连接物理缺陷与测试向量之间的桥梁。芯片制造过程中的工艺偏差、粒子污染、氧化层击穿、金属互连开路或短路等物理缺陷,其表现形式千差万别。如果直接针对物理缺陷进行测试,测试成本将不可接受。因此,业界将物理缺陷抽象为逻辑级的故障模型,使得EDA工具能够基于门级网表进行故障枚举和向量生成。

最经典的故障模型是固定故障(Stuck-At Fault, SAF),它假设某个信号线永久固定为逻辑0(SA0)或逻辑1(SA1)。该模型简单、计算高效,能覆盖大部分物理缺陷,是DFT覆盖率考核的基础。然而,随着工艺节点缩小到28nm以下,时序相关的缺陷占比显著上升,跳变故障(Transition Fault)模型变得不可或缺。跳变故障模拟的是信号在时钟沿到来时无法完成从0到1或从1到0的转换,通常用于检测慢速路径或保持时间问题。

此外,还有桥接故障(Bridging Fault)模型,用于模拟相邻金属线之间的短路;IDDQ故障通过测量静态电流来检测异常漏电;路径延迟故障则针对特定关键路径的时序裕量。在实际工程中,DFT工程师需要根据工艺节点、产品应用场景(消费级、车规级、工业级)以及ATE测试机的精度,选择合适的故障模型组合。

工程要点:在0.18μm及以上工艺,SAF模型覆盖率达标即可满足大部分消费类芯片需求;但在7nm/5nm工艺下,必须同时关注Transition Fault和Path Delay Fault,否则量产DPPM(Defective Parts Per Million)会显著恶化。车规级芯片(AEC-Q100)通常要求Transition Fault覆盖率≥95%,且需要额外的IDDQ抽测。

2.2 判断方法:可控性与可观测性的量化度量

可控性(Controllability)是指将电路内部某个节点设置为特定逻辑值(0或1)的难易程度;可观测性(Observability)是指将内部节点的逻辑值传播到某个可观测输出(如芯片引脚或扫描输出端)的难易程度。这两个指标是DFT插入测试点(Test Point)和评估扫描链效率的核心依据。

业界最常用的度量方法是SCOAP(Sandia Controllability/Observability Analysis Program)。SCOAP为每个节点计算三个值:CC0(组合逻辑0可控性)、CC1(组合逻辑1可控性)和CO(组合逻辑可观测性)。数值越小,表示可控性或可观测性越好。例如,一个直接连接到输入引脚的节点,其CC0和CC1均为1;而一个深埋在32位加法器进位链中间的节点,其CC0可能高达数百。

在DFT流程中,当ATPG工具报告某些故障未被覆盖时,工程师需要分析这些故障所在节点的SCOAP值。如果CC0/CC1值过高,说明该节点难以被置为特定值,此时可以考虑插入测试点——例如增加一个控制信号将该节点强制拉高或拉低;如果CO值过高,说明该节点的值难以传播到输出,此时可以插入观测点——将该节点直接连接到扫描链上。

指标 定义 工程意义 优化手段
CC0 组合逻辑0可控性 节点置0的难度,值越小越容易 插入控制点,增加测试模式信号
CC1 组合逻辑1可控性 节点置1的难度,值越小越容易 插入控制点,增加测试模式信号
CO 组合逻辑可观测性 节点值传播到输出的难度 插入观测点,连接到扫描链
SC0/SC1 时序逻辑可控性 考虑时钟沿后的可控性 优化扫描链结构,减少锁存器深度

需要注意的是,SCOAP值只是静态估计,实际ATPG工具会通过动态算法(如D算法、PODEM)进行精确计算。但SCOAP作为早期评估手段,可以帮助DFT工程师在设计阶段就发现潜在的可测试性瓶颈。

2.3 案例拆解:一个32位乘法器的覆盖率优化实战

假设我们设计了一个32位流水线乘法器,采用SMIC 28nm工艺,目标故障覆盖率为98%。在完成扫描插入后,运行ATPG工具(如TetraMAX),初始报告显示SAF覆盖率为96.5%,未达到目标。进一步分析未覆盖故障列表,发现约70%的未覆盖故障集中在乘法器阵列的进位保存加法器(CSA)内部节点。

初始现象与数据:总故障数约120万,未覆盖故障约4.2万。其中,CSA内部节点的CC0/CC1值普遍在200以上,CO值在150以上,远高于设计平均值(CC0/CC1约30,CO约25)。根本原因在于乘法器阵列结构规整但逻辑深度大,内部节点缺乏直接控制路径。

分析判断过程:首先排除扫描链断裂或时钟问题——扫描链测试已通过。其次,检查是否因为部分输入模式组合导致某些节点无法置位——通过ATPG工具的报告确认,这些节点在功能模式下确实存在不可控的组合。最后,决定采用插入测试点的方案。

实际操作步骤:

  1. 在CSA阵列的每一行进位输出节点插入一个测试点(Test Point),该测试点由一个测试模式信号(test_mode)控制,当test_mode=1时,将节点强制置为0或1。
  2. 在乘法器部分积压缩树的中间节点插入观测点,将节点信号直接连接到扫描链的备用输入端。
  3. 重新运行ATPG,覆盖率提升至97.8%。
  4. 针对剩余的0.2%未覆盖故障,分析发现是某些路径延迟故障,需要增加Transition Fault向量。

结果对比与代价:插入测试点后,芯片面积增加了约1.2%,时序影响小于0.5%(关键路径未受影响)。覆盖率从96.5%提升至98.2%,最终量产DPPM从约800降至350。代价是测试点引入了额外的逻辑,增加了静态功耗约0.3%。

风险提示:测试点插入并非越多越好。每个测试点都会增加面积和功耗,且可能影响功能路径的时序。建议优先在SCOAP值最高的前5%节点中插入测试点,并利用形式化验证确保测试点逻辑不会在功能模式下改变电路行为。

2.4 常见误区与总结复盘

在DFT基础概念的理解和应用中,工程师常犯以下错误:

  • 误区一:只关注SAF覆盖率。在先进工艺下,Transition Fault和Path Delay Fault对DPPM的影响更大。建议在28nm及以下节点,同时报告SAF和Transition Fault覆盖率。
  • 误区二:忽略可控性与可观测性的平衡。有些工程师只插入观测点,不插入控制点,导致覆盖率提升有限。实际上,对于难以置位的节点,控制点更有效。
  • 误区三:盲目追求100%覆盖率。覆盖率从98%提升到99%可能需要增加30%的向量数和测试时间,而DPPM改善有限。应根据产品等级设定合理目标——消费类98%足够,车规类需99%以上。
  • 误区四:将覆盖率与良率混淆。测试覆盖率是衡量测试向量检测故障的能力,而良率是芯片制造过程中合格芯片的比例。高覆盖率并不等于高良率,但低覆盖率必然导致不良品流出。

总结复盘:故障模型、可控性/可观测性、测试覆盖率是DFT工程的“铁三角”。故障模型决定了测试的目标,可控性与可观测性决定了测试的可行性,覆盖率则提供了量化的验收标准。在实际项目中,DFT工程师应在RTL阶段就进行可测试性评估,利用SCOAP分析提前识别高风险节点,并在扫描插入后通过ATPG迭代优化。记住,DFT不是事后补救,而是与功能设计同步进行的工程活动。

经验提醒:在项目启动时,建议建立一份“可测试性检查清单”,包括:所有触发器是否可扫描复位?是否存在组合环?时钟门控是否可控?异步信号是否同步化?这些基础问题往往比复杂的覆盖率优化更能影响测试质量。