可测性设计 DFT 入门:流片回来,怎么知道芯片没造坏
更新时间:2026-09-05。本文是「集成电路大类 · 芯片设计」入门层(beginner)第十八篇新正文。前面验证阶段证明了「设计是对的」(见 仿真是什么),但工厂制造这颗芯片时可能引入缺陷——某根线短路/断路、某个门有杂质。量产时每一颗都要快速判断「这颗造得好不好」,这就是测试,而为了「能被测到」在设计里预埋的结构就是 DFT(Design For Test,可测性设计)。它和验证的区别见下一篇思路(验证与测试的区别)。
本文要回答的问题
- 设计验证都过了,为什么造出来还可能是坏的?
- 芯片内部几十亿个门,从外面几个引脚怎么测得到?
- 扫描链 scan、ATPG、BIST、JTAG 各是什么?
- 「验证」和「测试」到底是不是一回事?
一、制造缺陷与故障模型
即使设计正确,晶圆制造也会产生随机缺陷:金属线短路或开路、通孔没打好、粒子污染导致某个门失效。工程上用故障模型抽象这些物理缺陷,最经典的是 stuck-at(固定型故障):假设某根线被「固定在 0(stuck-at-0)」或「固定在 1(stuck-at-1)」,不管输入怎么变它都不变。测试的目标就是生成一组输入,让这个故障在输出端「露馅」。
二、核心难题:内部信号「够不到」
芯片内部有成千上万触发器,但外部只有有限引脚。正常工作时你无法直接给某个内部触发器置值、也读不出它——这就像要检查一栋大楼每个房间,却只有大门一个入口。DFT 的思路是在设计阶段就加好「测试专用通道」,让内部状态能被可控地移入、观测地移出。
三、扫描链 scan:把触发器串成移位寄存器
最主要的 DFT 结构是扫描链(scan chain):把芯片里的普通触发器替换成可扫描触发器(scan flop),它们多一个「扫描模式」开关——在测试模式下,所有触发器首尾相连,串成一条长长的移位寄存器:
配合 ATPG(自动测试向量生成) 工具:它针对每个 stuck-at 故障,自动算出「该往扫描链里移什么输入、期望移出什么输出」,形成测试向量。故障覆盖率(fault coverage) 衡量测试向量能检出多大比例的潜在故障,是 DFT 的关键指标(要做到 99% 量级)。
四、BIST 与 JTAG
- BIST(内建自测试,Built-In Self-Test):在芯片里放一小块测试电路,让它自己产生激励、自己比对结果,不用依赖外部测试机。存储器 BIST(MBIST) 最常见——SRAM 量大、规则,加个小控制器就能自动跑 March 算法读写校验整片 SRAM;逻辑 BIST 用伪随机向量自测。
- JTAG / IEEE 1149.1(边界扫描):标准的测试访问口(TAP),用 TCK/TMS/TDI/TDO 几根线,既能做板级互联测试(引脚间有没有焊连),也是访问片内扫描链、做调试和烧录的通用入口。
五、量产测试:在 ATE 上抢时间
流片回来后,每颗芯片都要上 ATE(自动测试设备,Automatic Test Equipment)——一台能给芯片加激励、采输出的昂贵机器。ATE 按机时收费,所以测试向量要短而全:DFT 的扫描链、BIST 让海量内部逻辑能在很短时间内被覆盖,直接降低测试成本。流程大致是:晶圆阶段先做 CP(Circuit Probing,晶圆测试,探针扎在 die 上) 筛掉坏 die,封装后再做 FT(Final Test,成品测试)。测出的坏片比例直接关联 良率 和 成本。
六、验证 vs 测试:根本不是一回事
这是最该分清的概念(下一篇展开):
| 验证 verification | 测试 test | |
|---|---|---|
| 回答的问题 | 设计对不对(功能符合 spec 吗) | 制造好不好(这颗芯片有没有造坏) |
| 发生阶段 | 流片前,在仿真/形式验证里 | 流片后,在 ATE 上对每颗实片 |
| 对象 | RTL 设计(一次做对即可) | 每一颗物理芯片(颗颗都要测) |
| 手段 | testbench、断言、覆盖率、UVM | scan/ATPG、BIST、JTAG、ATE |
| 缺陷类型 | 设计逻辑 bug | 制造缺陷(短路/断路/杂质) |
DFT 属于「为了让测试可行」而在设计阶段加的结构,由专门的 DFT 工程师插入(见 芯片岗位地图),详细方法见中间层 可测性设计。
七、这一篇在知识体系里的位置
- 想彻底分清「设计阶段验证」和「量产测试」 → 验证与测试的区别;
- 想知道测试和良率、成本怎么挂钩 → 良率、一颗芯片的成本账;
- 想系统看 scan/ATPG/MBIST/JTAG 流程 → 可测性设计;
- 想知道流片交接和回来后怎么量 → tape-out 是什么、芯片回来怎么量。
总结
一句话总结:可测性设计 DFT 解决的是「设计虽对、但制造可能引入短路/断路/杂质等缺陷,且内部海量触发器从外部引脚够不到」的问题——它在设计阶段就预埋测试结构:扫描链 scan 把触发器串成移位寄存器,靠「移入测试向量、跑一拍、移出结果」间接控制和观测每个内部触发器,ATPG 针对 stuck-at 固定故障自动生成高覆盖率向量,BIST(尤其 MBIST)让存储器/逻辑在片内自测,JTAG/TAP 提供标准测试访问口;流片后每颗芯片在昂贵的 ATE 上用这些结构做 CP 晶圆测试和 FT 成品测试、抢机时筛坏片;务必分清验证(流片前证明设计功能对不对)与测试(流片后对每颗实片判断造得好不好),DFT 正是为「让测试可行」而生的专门设计。