可测试性设计基础:DFT的基本概念、测试成本、故障模型与可观测性
在芯片设计流程中,可测试性设计(Design for Test, DFT)并非一个可选的附加步骤,而是决定芯片能否以合理成本实现量产交付的关键工程环节。随着工艺节点推进至7nm及以下,单颗SoC集成的晶体管数量已超过百亿,测试向量的生成、测试时间的控制以及故障覆盖率的保证,都面临着前所未有的挑战。本章将系统阐述DFT的基本概念、测试成本的构成、核心故障模型(固定故障、跳变故障等)、可观测性与可控制性的本质,以及DFT在芯片设计流程中的关键作用,帮助学员建立完整的可测试性设计思维框架。
上图展示了DFT核心概念之间的逻辑关系。故障模型是测试的基础,可控制性和可观测性决定了测试的可行性,而测试成本则是衡量DFT方案优劣的最终标尺。这四个要素相互制约,共同构成了DFT设计的核心矛盾。下面我们将逐一深入剖析。
核心原理:DFT的本质与测试成本模型
DFT的本质是在芯片设计阶段就考虑如何让内部逻辑节点变得可控和可观测。一个没有经过DFT设计的芯片,其内部成千上万个触发器和组合逻辑节点对于外部测试设备而言如同一个“黑盒”,无法直接置位或读取。DFT通过插入额外的测试逻辑(如扫描链、BIST电路、边界扫描单元),将内部状态暴露给测试设备,从而实现对制造缺陷的检测。
测试成本是DFT决策的核心驱动力。测试成本通常由以下公式衡量:
测试总成本 = 向量生成成本 + 测试应用成本 + 引脚/通道成本 + 良率损失成本
其中,向量生成成本与ATPG(自动测试向量生成)工具的运算时间成正比,复杂的时序电路需要更长的向量生成时间;测试应用成本取决于测试向量的长度和ATE(自动测试设备)的测试速率;引脚/通道成本涉及测试机台的通道数量占用;良率损失成本则源于过测试(将好芯片误判为坏)或欠测试(将坏芯片误判为好)带来的经济损失。下表对比了不同DFT策略对测试成本的影响:
| DFT策略 | 向量生成成本 | 测试应用时间 | 引脚开销 | 故障覆盖率 |
|---|---|---|---|---|
| 全扫描设计 | 中 | 高(串行移位) | 低(2-4个测试引脚) | 高(>98%) |
| 内建自测试(BIST) | 低(自动生成) | 低(片上生成) | 极低(仅启动信号) | 中(80-95%) |
| 边界扫描(JTAG) | 低 | 中 | 低(4-5个引脚) | 中(板级互连) |
| 无DFT | 极高(不可控) | 极高 | 高(需大量探针) | 低(<50%) |
从表中可以看出,全扫描设计虽然增加了测试应用时间,但换来了最高的故障覆盖率,是当前SoC设计的主流选择。而BIST则适用于存储器、模拟IP等规则结构。
故障模型:固定故障与跳变故障的深入解析
故障模型是对物理缺陷的抽象描述。实际制造过程中,芯片可能因金属线断裂、氧化层击穿、离子污染等原因产生各种物理缺陷。为了量化测试质量,我们需要将这些物理缺陷映射为逻辑级的故障模型。
固定故障(Stuck-At Fault, SAF)是最经典的故障模型,它假设某个信号线永久性地固定在逻辑0(SA0)或逻辑1(SA1)。例如,一条本应传输数据的信号线因短路到地而固定在0,即表现为SA0故障。固定故障模型适用于直流参数类缺陷,测试时只需将故障点置为相反逻辑值并观察输出即可。
跳变故障(Transition Fault, TF)则关注时序行为,它假设某个节点在时钟沿到来时无法完成从0到1或从1到0的跳变。跳变故障模型需要两个连续的测试向量:第一个向量将节点初始化到初始状态,第二个向量触发跳变并捕获结果。这种模型对于检测电阻性开路、电容耦合等导致的延迟缺陷至关重要。
除了上述两种,还有路径延迟故障(Path Delay Fault)、桥接故障(Bridging Fault)等。在实际工程中,固定故障覆盖率通常作为DFT质量的首要指标,而跳变故障覆盖率则作为深亚微米工艺下的补充指标。一个成熟的DFT流程要求固定故障覆盖率≥98%,跳变故障覆盖率≥90%。
可观测性与可控制性:DFT的量化评估
可控制性(Controllability)和可观测性(Observability)是衡量内部节点测试难度的两个基本指标。可控制性指将某个内部节点置为特定逻辑值(0或1)的难易程度;可观测性指将某个内部节点的逻辑值传输到外部可观察输出(如芯片引脚)的难易程度。
在扫描设计中,每个触发器都被替换为扫描触发器(Scan Flip-Flop),多个扫描触发器串联形成扫描链。通过扫描链,测试设备可以将任意测试向量移位输入到内部触发器(提高可控制性),也可以将内部状态移位输出(提高可观测性)。这种设计将原本不可控的组合逻辑回路转化为可控的移位寄存器,极大地简化了测试向量生成。
评估可控制性和可观测性的常用算法是SCOAP(Sandia Controllability/Observability Analysis Program),它通过计算每个节点的0可控性(CC0)、1可控性(CC1)和可观测性(CO)值来量化测试难度。CC0/CC1值越小,表示该节点越容易被置为0/1;CO值越小,表示该节点越容易被观测。DFT工程师利用这些指标识别测试瓶颈节点,并针对性地插入测试点(Test Point)来改善。
例如,一个深嵌套的计数器内部节点,其可控制性可能很差,因为需要大量时钟周期才能将其置为特定值。此时,可以在该节点插入一个测试点,通过一个额外的测试引脚直接控制该节点,从而将CC0/CC1值从数百降低到个位数。
案例拆解:一个SoC芯片的DFT规划实战
假设我们设计了一款用于智能摄像头的AI SoC,包含CPU子系统、GPU、ISP(图像信号处理器)、DDR控制器和多个外设接口。芯片规模约5000万门,工作频率1GHz,封装为BGA-484,可用测试引脚有限。
初始目标:实现固定故障覆盖率≥98%,跳变故障覆盖率≥90%,测试时间≤3秒,测试引脚≤8个。
关键输入数据:设计网表约5000万门,其中触发器约200万个,组合逻辑约3000万门。初步评估显示,如果不做DFT,固定故障覆盖率仅为35%,测试向量生成时间预计超过200小时。
分析判断过程:首先,我们决定对CPU和GPU等逻辑密集型模块采用全扫描设计。将200万个触发器全部纳入扫描链,按功能模块划分为8条扫描链,每条链约25万个触发器。其次,对于DDR控制器中的存储器BIST(MBIST),采用片上向量生成与比较,避免外部测试向量。对于ISP模块,由于其包含大量模拟电路,采用边界扫描(JTAG)进行互连测试。
实际操作步骤:
- 在RTL阶段插入扫描链,使用DFT Compiler工具进行扫描链综合,确保每条扫描链的平衡性(长度差异<5%)。
- 插入MBIST控制器,为DDR控制器中的4个存储器宏生成BIST逻辑,并添加测试启动信号。
- 在芯片顶层添加JTAG TAP控制器,连接所有数字IP的边界扫描单元。
- 运行ATPG工具,生成SAF和TF测试向量。SAF向量约12000个,TF向量约8000个。
- 在ATE上模拟测试时间:12000个SAF向量 + 8000个TF向量,每个向量应用时间约100ns,总测试时间约2秒,满足≤3秒的要求。
结果对比:最终固定故障覆盖率达到98.7%,跳变故障覆盖率达到91.2%,测试引脚仅使用5个(TCK、TMS、TDI、TDO、TRST),满足所有约束。测试向量生成时间缩短至8小时。
风险与代价:全扫描设计使芯片面积增加了约8%,功耗增加了约5%。此外,扫描链的布局布线增加了后端实现的复杂度,需要额外的时钟树平衡处理。
复盘经验:DFT规划必须与RTL设计同步进行,而不是在综合后补插。早期规划可以避免后期因扫描链插入导致的时序违例。同时,对于混合信号模块,应尽早确定测试策略,避免模拟与数字测试逻辑的冲突。
DFT在芯片设计流程中的关键作用与总结
DFT在芯片设计流程中扮演着“质量守门员”的角色。从RTL设计到晶圆制造,再到封装测试,DFT贯穿始终。在RTL阶段,DFT工程师需要审查代码的可测试性,避免不可控的异步逻辑和冗余状态。在综合阶段,DFT逻辑与功能逻辑同步综合,确保时序收敛。在物理实现阶段,扫描链的布局布线需要满足时钟偏移(Clock Skew)要求,避免移位错误。在量产阶段,DFT决定了测试程序的效率和覆盖率。
DFT的关键作用可以总结为以下四点:
- 提升故障覆盖率:通过扫描链和BIST,将内部节点的可控制性和可观测性提升至可接受水平,确保制造缺陷被有效检测。
- 缩短测试时间:合理的扫描链划分和BIST策略可以显著减少测试向量数量和应用时间,降低测试成本。
- 支持良率分析:通过诊断测试(Diagnosis),DFT逻辑可以帮助定位失效芯片的物理位置,为工艺改进提供数据支持。
- 实现板级与系统级测试:JTAG边界扫描不仅用于芯片测试,还支持PCB板级互连测试和系统级调试,是产品全生命周期可维护性的基础。
总而言之,DFT不是简单的“插入扫描链”,而是一种系统性的设计方法论。它要求工程师在架构层面权衡测试成本、覆盖率、面积和功耗,在实现层面确保测试逻辑的时序和物理可行性。掌握DFT的核心概念,是成为一名合格的芯片设计工程师的必修课。