2、可测试性设计基础:DFT基本概念、故障模型与可测试性度量
在ASIC设计流程中,可测试性设计(Design for Test, DFT)并非事后补救措施,而是贯穿芯片架构定义、RTL编码、逻辑综合直至物理实现的系统性工程。随着工艺节点推进至7nm及以下,芯片内部节点数量动辄数亿,测试向量生成与故障诊断的复杂度呈指数级上升。本章作为DFT知识体系的地基,将深入剖析DFT的核心概念、三大经典故障模型(固定故障、跳变故障、桥接故障)以及衡量测试方案优劣的关键度量指标。理解这些基础原理,是后续学习扫描链插入、BIST架构设计以及ATPG(自动测试向量生成)策略的前提。
上图清晰地勾勒出本章的知识脉络:DFT基本概念为测试方案设计提供了理论支撑,三大故障模型是测试向量生成与故障模拟的物理抽象,而可测试性度量则是评估测试方案优劣的量化标尺。三者相互关联、彼此制约——例如,提高故障覆盖率往往意味着更长的测试时间和更大的面积开销,而BIST技术的引入正是为了在保证覆盖率的前提下,通过硬件自测试机制降低对昂贵ATE(自动测试设备)的依赖。下面我们将逐一展开详细论述。
2.1 DFT基本概念:从可控制性到可观测性
2.1.1 核心原理:为什么需要DFT?
DFT的本质是在芯片设计阶段就植入“测试友好”的结构,使得制造完成后能够高效、低成本地验证芯片功能是否符合规格。其核心思想可以归纳为两个关键属性:可控制性(Controllability)和可观测性(Observability)。可控制性指通过芯片的初级输入(Primary Inputs, PI)将特定逻辑节点的状态设置为期望值的能力;可观测性指通过初级输出(Primary Outputs, PO)或扫描链观察内部节点状态的能力。一个理想的DFT方案,应当使芯片内部每一个节点都具备接近100%的可控制性和可观测性。
在实际设计中,纯组合逻辑电路的可控制性相对容易实现,但时序电路(如触发器、锁存器)的内部状态难以直接通过外部引脚控制。因此,业界最主流的DFT技术——扫描链(Scan Chain)应运而生。扫描链将普通触发器替换为带扫描功能的扫描触发器(Scan Flip-Flop),在测试模式下,这些触发器串联成移位寄存器,从而实现对内部状态的直接写入(控制)和读出(观测)。
2.1.2 判断方法与操作流程:DFT设计的工程步骤
在ASIC设计流程中,DFT设计通常遵循以下标准流程:
- DFT规划阶段:在芯片架构定义时,确定扫描链数量、BIST(内建自测试)模块划分、测试时钟方案以及测试引脚复用策略。
- RTL设计阶段:在RTL代码中插入可测试性结构,如扫描触发器替换、测试模式选择信号(Test Mode)、BIST控制器例化。
- 综合与扫描链插入:逻辑综合工具(如Design Compiler)在综合网表时自动完成扫描链的插入与优化,确保扫描链长度均衡,避免时钟偏移问题。
- ATPG与故障模拟:使用ATPG工具(如TetraMAX)生成测试向量,并通过故障模拟验证故障覆盖率。
- 物理实现与验证:在布局布线阶段,确保扫描时钟树综合满足时序要求,并完成DFT相关的DRC(设计规则检查)和LVS(版图与原理图一致性检查)。
2.1.3 案例拆解:一个简单的扫描链设计场景
假设我们设计一个32位ALU(算术逻辑单元),内部包含约2000个触发器。若不采用DFT,测试这些触发器的状态需要编写大量功能测试向量,且覆盖率极低。通过插入扫描链,我们将这2000个触发器连接成4条长度为500的扫描链。在测试模式下,通过4个扫描输入引脚(Scan In)和4个扫描输出引脚(Scan Out),即可在500个时钟周期内完成所有触发器的状态写入和读出。相比功能测试,测试时间缩短了约90%,故障覆盖率从不足60%提升至95%以上。这一案例直观展示了扫描链DFT在提升可控制性和可观测性方面的巨大优势。
2.1.4 常见误区与总结复盘
总结而言,DFT基本概念的核心在于“设计即测试”的理念。只有在设计早期就考虑可测试性,才能避免后期测试成本失控。
2.2 故障模型:从物理缺陷到逻辑抽象
2.2.1 核心原理:为什么需要故障模型?
芯片制造过程中的物理缺陷(如金属线断裂、氧化层击穿、杂质污染)种类繁多,直接对物理缺陷进行建模和仿真在计算上不可行。因此,测试工程师将物理缺陷抽象为逻辑级的故障模型(Fault Model)。一个优秀的故障模型应当具备两个特征:准确性(能真实反映物理缺陷的行为)和高效性(便于算法处理和向量生成)。本章重点介绍三大经典模型:固定故障、跳变故障和桥接故障。
2.2.2 三大故障模型详解
| 故障模型 | 物理缺陷对应 | 逻辑行为描述 | 测试方法 | 典型覆盖率目标 |
|---|---|---|---|---|
| 固定故障 (SAF) | 金属线开路、短路到VDD/GND | 信号线恒为逻辑0(SA0)或逻辑1(SA1) | 单固定故障测试(需控制节点为相反值并观测) | ≥98% |
| 跳变故障 (TF) | 门延迟增加、工艺偏差导致时序违例 | 信号在时钟沿到来时无法完成0→1或1→0的跳变 | 需要两个连续向量:初始化向量+跳变启动向量 | ≥90% |
| 桥接故障 (BF) | 相邻金属线间短路(桥接) | 两个或多个信号线短接,形成线与(Wired-AND)或线或(Wired-OR)逻辑 | 需要同时控制多个节点,并观测短路效应 | ≥85%(视工艺) |
固定故障是最基础的模型,它假设一个节点永久性地固定在逻辑0或逻辑1。跳变故障则关注时序行为,用于检测芯片在高速运行下的延迟缺陷。桥接故障模拟的是工艺缺陷中常见的金属线间短路,其行为比固定故障复杂得多,因为涉及多个节点的相互作用。
2.2.3 案例拆解:跳变故障的测试向量生成
考虑一个简单的与门(AND gate),输入为A和B,输出为Y。若要检测输出Y上的慢上升跳变故障(即Y从0→1的跳变速度过慢),需要生成两个连续向量:第一个向量将Y置为0(例如A=0, B=1),第二个向量将Y置为1(例如A=1, B=1)。在第二个向量施加后,在下一个时钟沿采样Y,若Y仍为0,则判定存在跳变故障。这一过程称为“初始化-启动”测试序列。在实际ATPG中,工具会自动生成此类双向量序列,并确保时序约束满足。
2.2.4 常见误区与总结复盘
理解故障模型的层次关系至关重要:固定故障是基础,跳变故障是补充,桥接故障是进阶。在实际项目中,应根据芯片的工艺节点、工作频率和可靠性要求,选择合适的故障模型组合。
2.3 可测试性度量:量化测试方案的优劣
2.3.1 核心原理:三大度量指标
可测试性度量是评估DFT方案效果和成本的关键工具。业界最核心的三个指标是:故障覆盖率(Fault Coverage, FC)、测试时间(Test Time)和面积开销(Area Overhead)。故障覆盖率定义为被检测到的故障数占故障总数的百分比,是衡量测试质量的首要指标。测试时间直接影响芯片的制造成本——测试时间越长,ATE设备占用时间越长,单位芯片测试成本越高。面积开销则指DFT结构(扫描触发器、BIST控制器、测试逻辑)占芯片总面积的比例,过高的面积开销会降低芯片的良率和利润空间。
2.3.2 判断方法与操作流程:如何权衡三大指标?
在实际项目中,三大指标往往相互制约。例如,提高故障覆盖率通常需要增加测试向量数量,从而延长测试时间;而插入更多扫描链可以缩短测试时间,但会增加面积开销。因此,DFT工程师需要在项目初期就制定明确的度量目标:
- 故障覆盖率目标:消费类芯片通常要求≥95%,车规级芯片要求≥99%以上。
- 测试时间预算:根据ATE设备的小时费率(通常为$50-$200/小时)和年产量,反推允许的最大测试时间。
- 面积开销预算:一般控制在芯片总面积的5%-10%以内,超过15%则需重新评估DFT方案。
一个常用的优化策略是采用压缩测试(Test Compression)技术,如EDT(Embedded Deterministic Test)或XOR压缩网络。该技术通过片上解压器和压缩器,在保持高覆盖率的同时,将测试数据量减少10-50倍,从而显著缩短测试时间,而面积开销仅增加2%-3%。
2.3.3 案例拆解:一个SoC芯片的DFT度量优化
某智能穿戴设备SoC芯片,包含CPU、GPU、DSP和多个外设IP,总门数约500万。初始DFT方案采用全扫描设计,插入8条扫描链,每条链长度约5000个触发器。ATPG生成的测试向量为12000个,在ATE上测试时间为3.2秒/片。经分析,测试时间过长导致单颗芯片测试成本高达$0.15,占芯片总成本的15%。
优化方案:引入EDT压缩技术,将扫描链数量扩展至64条(每条长度约625个触发器),同时增加片上解压/压缩逻辑。优化后,测试向量数量减少至1500个,测试时间缩短至0.4秒/片,测试成本降至$0.02。面积开销从原来的6%增加至8.5%,但仍在预算范围内。故障覆盖率从96.5%提升至97.8%(因为更短的扫描链减少了移位错误概率)。
这一案例表明,通过合理的DFT架构优化,可以在面积开销小幅增加的前提下,大幅降低测试时间和成本,实现整体收益最大化。