2. 可测试性基础

可测试性设计(DFT)并非一个孤立的测试技巧,而是一套贯穿芯片设计、制造、封装到系统集成的工程方法论。在深入讨论具体的扫描链、BIST或JTAG之前,必须首先建立对测试本质的认知框架。本章将围绕三个核心属性——可观测性、可控性、可预测性——展开,并系统梳理测试成本、测试覆盖率与故障模型等关键术语。理解这些基础概念,是后续诊断与定位工作的逻辑起点,也是评估任何DFT方案优劣的标尺。

DFT 三大核心属性与测试经济性关系图 被测对象 (DUT) 内部节点/状态 可控性 (Controllability) 如何将信号置为特定值? 扫描链/直接输入 可观测性 (Observability) 如何捕获内部响应? 扫描输出/断言监控 可预测性 (Predictability) 确定性响应/时序稳定 置位/加载 捕获/输出 状态确定 测试成本与覆盖率 测试时间 × 测试设备费用 覆盖率 = 检测故障/总故障 故障模型决定覆盖率基准 注:三大属性相互制约,DFT 的核心任务是在成本约束下最大化综合可测试性

上图揭示了DFT设计的核心矛盾:我们既希望芯片内部的所有节点都能被任意控制(可控性),又希望所有内部响应都能被直接或间接观察到(可观测性),同时还要求测试结果具有确定性(可预测性)。然而,这三者往往与芯片面积、引脚数量、设计周期和测试时间产生直接冲突。例如,增加扫描链可以提升可控性和可观测性,但会占用额外的寄存器面积和布线资源。因此,DFT工程师的日常工作,本质上是在这些相互制约的维度中寻找最优平衡点。

2.1 核心原理:三大属性的工程定义与量化

在数字电路测试领域,可控性、可观测性和可预测性有严格的数学定义和工程量化方法。理解这些定义,有助于我们客观评估一个设计的可测试性水平,而不是仅凭经验判断。

  • 可控性(Controllability):指将电路中某个节点或寄存器设置为特定逻辑值(0或1)的难易程度。在扫描设计中,可控性通常通过扫描链的移位操作实现。量化指标常用SCOAP(Sandia Controllability/Observability Analysis Program)度量,分为组合可控性CC0/CC1和时序可控性SC0/SC1。CC0表示将节点置为0所需的“成本”,数值越大,控制难度越高。
  • 可观测性(Observability):指将电路内部节点的逻辑值传输到某个可观测输出(如芯片引脚或扫描输出端)的难易程度。同样采用SCOAP度量,组合可观测性CO和时序可观测性SO。一个节点的可观测性取决于从该节点到输出端的路径长度以及路径上的逻辑门类型。
  • 可预测性(Predictability):指在给定测试向量和初始状态下,电路响应是否唯一且确定。对于同步时序电路,可预测性要求电路不存在亚稳态传播、异步反馈环路或未初始化存储器。在ATPG(自动测试向量生成)中,可预测性差的电路会导致测试向量生成失败或产生不可重复的测试结果。

工程量化示例:假设一个8位计数器,其内部Q[3]节点的可控性CC0=12,CC1=15。这意味着通过扫描链将Q[3]置为1比置为0更困难。如果该节点直接连接到芯片输出引脚,其可观测性CO=1(最易观测);但如果经过一个20级的多输入异或门链,CO可能上升到50以上。DFT工具会根据这些数值自动插入测试点(Test Point),以改善高成本节点的可控性或可观测性。

2.2 关键术语:测试成本、覆盖率与故障模型

测试成本与测试覆盖率是衡量DFT方案经济性的两个核心指标,而故障模型则是连接物理缺陷与逻辑测试的桥梁。三者共同决定了测试方案的有效性和经济性。

术语 定义 工程影响 典型优化手段
测试成本 包括测试时间、测试设备折旧、测试程序开发、良率损失分析等综合费用 直接决定单颗芯片的制造成本,高端SoC测试成本可占总成本的30% 并行测试、压缩测试向量、减少测试引脚
测试覆盖率 检测到的故障数 / 故障模型下的总故障数 × 100% 覆盖率低于95%可能导致大量缺陷芯片流入市场 增加测试向量、插入可测性逻辑、提高故障分辨力
故障模型 将物理缺陷抽象为逻辑级故障的描述方式 模型选择不当会导致“测试盲区”,例如固定故障模型无法覆盖延迟故障 多模型混合(固定+跳变+路径延迟)

常见的故障模型包括:固定故障(Stuck-At),假设信号线永久固定为0或1,是最基础的模型;跳变故障(Transition),检测信号从0到1或1到0的慢转换;路径延迟故障(Path Delay),关注整个组合路径的时序裕量;桥接故障(Bridging),模拟相邻信号线短路。在实际工程中,固定故障模型通常作为最低标准,而跳变和路径延迟模型用于高速接口和关键时序路径。

风险提示:不要盲目追求100%测试覆盖率。当覆盖率从98%提升到99%时,测试向量数量可能增加3-5倍,测试时间急剧上升。对于消费级芯片,98%的固定故障覆盖率通常已满足要求;对于汽车电子(AEC-Q100 Grade 0),则要求达到99.9%以上,且必须包含延迟故障模型。

2.3 判断方法:如何评估一个设计的可测试性

在芯片设计流程中,DFT工程师需要在RTL阶段就介入,通过静态检查和动态仿真评估设计的可测试性。以下是标准评估流程:

  1. 静态代码检查:使用SPYGLASS或类似工具扫描RTL代码,查找异步复位、锁存器、内部三态总线、组合反馈环等可测试性障碍。
  2. DFT规则检查(DRC):在综合后网表上运行DFT Compiler或Tessent的DRC,检查是否存在不可控时钟、未连接扫描使能、时钟门控单元不可控制等问题。
  3. 覆盖率预估:运行快速ATPG(仅使用少量向量),估算当前设计的固定故障覆盖率。如果低于90%,需要插入测试点或增加扫描链。
  4. 时序分析:确认扫描链的移位时钟频率是否满足设计要求,通常扫描时钟频率为系统时钟的1/2至1/4。

经验法则:在项目早期,如果RTL代码中出现了超过10个未受控的异步复位信号,或者存在超过5个组合反馈环,那么最终测试覆盖率很难超过92%。此时应优先进行RTL重构,而不是依赖后端插入测试点。

2.4 案例拆解:一款MCU芯片的可测试性评估与优化

某物联网MCU芯片,采用40nm工艺,包含ARM Cortex-M0内核、64KB Flash、12-bit ADC和多个UART/SPI接口。初始DFT方案仅采用一条扫描链,未插入任何测试点。

初始现象:ATPG生成的固定故障测试向量为12,000个,测试覆盖率仅为89.7%。其中,Flash接口逻辑和ADC模拟前端数字控制逻辑的覆盖率分别只有72%和65%。测试时间在ATE(自动测试设备)上为3.2秒/颗,超出项目预算(2.5秒/颗)。

分析判断过程:

  • 通过DFT DRC报告发现,Flash接口存在一个内部生成的时钟信号(Flash_CLK),该时钟由地址译码逻辑产生,导致扫描链无法稳定捕获数据。
  • ADC的数字控制模块包含一个异步握手信号(ADC_BUSY),该信号未同步到测试时钟域,导致可观测性极差。
  • 整条扫描链长度达到180,000个触发器,导致移位时间过长。

实际操作步骤:

  1. 将Flash_CLK改为由系统时钟直接门控,并插入一个测试专用旁路MUX,确保在测试模式下Flash_CLK由外部引脚直接控制。
  2. 在ADC_BUSY信号上插入一个同步器(两级D触发器),并增加一个测试点,将该信号直接连接到扫描链的观测寄存器。
  3. 将单条扫描链拆分为4条并行扫描链,每条长度45,000个触发器,并增加一个压缩器(Compactor),将4条链的输出压缩为2个观察引脚。

结果对比:

指标优化前优化后改善幅度
固定故障覆盖率89.7%97.2%+7.5%
测试向量数12,0008,400-30%
测试时间3.2s1.9s-40.6%
面积开销基线+2.1%可接受

风险与代价:增加同步器和测试点导致面积增加约2.1%,但换来了覆盖率提升和测试时间大幅缩短。在量产百万颗芯片时,测试时间节省带来的成本降低远大于面积开销。

复盘经验:可测试性问题往往源于RTL设计中的异步逻辑和内部时钟。DFT工程师必须在RTL冻结前完成可测试性审查,否则后期修改代价极高。此外,扫描链压缩技术(如XOR压缩)在覆盖率几乎不变的情况下,能显著减少测试引脚和测试数据量。

2.5 常见误区与总结复盘

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

  • 误区一:将测试覆盖率等同于芯片质量。覆盖率只是基于特定故障模型的度量,无法覆盖所有物理缺陷(如电磁干扰引起的软错误)。
  • 误区二:忽视可预测性。有些设计虽然可控性和可观测性都很好,但由于存在未初始化的存储器或异步反馈,导致ATPG生成的向量在硅片上无法重复执行。
  • 误区三:过度追求低测试成本。为了缩短测试时间而过度压缩测试向量,可能导致某些难以检测的缺陷被遗漏,最终增加返修率和客户投诉成本。

总结:可测试性设计的本质是“信息获取”与“资源消耗”的博弈。可控性决定了我们能多容易地设置测试条件,可观测性决定了我们能多清楚地读取测试结果,可预测性保证了测试过程的确定性。测试成本是约束条件,覆盖率是验收标准,故障模型是分析工具。DFT工程师需要在这五个维度之间建立量化模型,用数据驱动决策,而不是凭感觉设计。在后续章节中,我们将深入探讨如何通过扫描链设计、BIST(内建自测试)和JTAG边界扫描等具体技术,将本章的基础概念落地为实际的电路实现。