一、DFT概述:可测试性设计的入门课

大家好,我是你们的DFT讲师。今天咱们聊聊DFT——可测试性设计。说实话,我刚入行那会儿,觉得DFT就是个“配角”,设计做好了再补点测试逻辑就行。后来踩了不少坑才明白:没有DFT的芯片,就像没有质检的工厂——产品能不能用,全靠运气。

1.1 什么是可测试性设计(DFT)?

DFT,全称Design for Testability。说白了,就是在芯片设计阶段,就提前把“测试接口”和“测试逻辑”做进去。你想想看,芯片流片回来,几百万、几千万个晶体管焊在封装里,你怎么知道它有没有坏?

我见过一个团队,芯片流片回来发现功能不对,折腾了三个月才定位到是某个扫描链短路了。要是早做DFT,两天就能搞定。这就是DFT的价值——让芯片的“体检”变得简单、高效、全面

核心定义:DFT是一种设计方法论,通过在芯片内部集成测试结构,使得制造后的芯片能够被高效、低成本地测试,从而保证良率和可靠性。

1.2 为什么需要DFT?

这个问题我经常被问到。有人觉得:“我设计没问题,仿真都过了,还要DFT干嘛?”

嗯,这里要注意:仿真通过 ≠ 芯片能工作。制造过程中会有各种缺陷——金属桥接、氧化层击穿、接触孔开路……这些在仿真里是看不到的。

我举个例子:有一次我们做一款AI加速芯片,流片回来发现某个模块功耗异常。用DFT的IDDQ测试一查,发现是电源网络里有个微小的短路。如果没有DFT,这种问题排查起来就像大海捞针。

DFT的必要性可以总结为三点:

  • 保证良率:快速筛选出有缺陷的芯片,避免坏芯片流入市场
  • 降低测试成本:自动化测试比人工调试快得多,ATE机台按小时收费,省时间就是省钱
  • 提升可靠性:芯片在生命周期内可能老化,DFT可以用于在线监测和故障诊断

个人经验:我建议在项目规划阶段就把DFT预算算进去。曾经有个项目为了省面积,砍掉了部分扫描链,结果测试覆盖率从98%掉到85%,流片后废品率飙升,得不偿失。

1.3 DFT在芯片设计流程中的位置

DFT不是设计完成后的“补丁”,而是贯穿整个设计流程的。我习惯把它放在下面这个位置:

DFT在芯片设计流程中的位置 需求定义 & 架构设计 RTL编码 & 功能仿真 逻辑综合 & DFT插入 物理设计 & 流片 DFT 活动贯穿全程 测试策略制定 扫描链规划 BIST架构设计 边界扫描集成 ATPG向量生成 测试覆盖率分析 ATE测试程序开发 & 调试 注:DFT活动与设计流程并行,而非串行

从这张图你能看到,DFT不是最后才做的。我个人习惯在架构设计阶段就开始思考测试策略——比如要插多少条扫描链、用哪种BIST方案。等到RTL编码时,就要预留测试接口和模式控制信号。综合阶段更是DFT插入的关键节点。

避坑指南:我曾经在一个项目中,等到物理设计快结束了才想起加DFT,结果发现扫描链布线绕不开关键路径,不得不重新综合。那叫一个惨痛教训。记住:DFT要尽早介入,越晚代价越大

1.4 DFT的三大核心

DFT技术体系很庞大,但核心就三块:扫描链、边界扫描、BIST。咱们一个一个说。

1.4.1 扫描链(Scan Chain)

扫描链是DFT的“基本功”。它的原理其实很简单:把普通的触发器换成带扫描功能的触发器,然后把这些触发器串成一条链。

正常模式下,这些触发器各司其职。测试模式下,你可以通过扫描链把测试数据“灌”进去,再“读”出来,从而检查每个逻辑门有没有坏。

我举个例子:假设你有一个组合逻辑模块,输入是A、B、C,输出是D。正常工作时你没法直接控制A、B、C的值。但有了扫描链,你可以把A、B、C对应的触发器设成任意值,然后观察D对不对。这就是可控性和可观测性——DFT的两个核心指标。

关键指标:扫描链的测试覆盖率通常要求达到95%以上。低于这个数,流片风险就很大。我见过一个项目覆盖率只有88%,结果流片后废品率高达15%。

1.4.2 边界扫描(Boundary Scan)

边界扫描,也叫JTAG(IEEE 1149.1标准)。它主要解决的是芯片级和板级测试的问题。

你想想看,芯片焊到PCB上之后,你怎么知道焊点有没有虚焊?边界扫描就是在每个I/O引脚旁边加一个边界扫描单元,这些单元串成一条链,通过TDI、TDO、TCK、TMS四个引脚来控制。

我记得有一次调试一块高速板,怀疑某个BGA焊点有问题。用边界扫描一测,果然发现一个信号在芯片引脚和PCB走线之间断了。要是没有边界扫描,这种问题只能拿显微镜看,费时费力。

边界扫描的典型应用场景:

  • 板级互连测试:检查芯片之间、芯片与连接器之间的连接
  • 芯片内部测试:通过JTAG接口访问内部扫描链
  • 在线编程:很多FPGA和MCU的配置都通过JTAG完成

1.4.3 内建自测试(BIST)

BIST,全称Built-In Self-Test。说白了,就是让芯片自己测自己。不需要外部ATE机台,芯片上电后自动运行测试程序,然后告诉你“我好不好”。

BIST最典型的应用是存储器测试。SRAM、DRAM这些存储阵列,用外部测试太慢了,而且ATE机台访问内部存储器的路径很长。用BIST的话,一个专用的控制器在芯片内部生成测试向量,读写存储器,然后比对结果。

我做过一个项目,芯片里有32个SRAM宏单元。如果用ATE逐个测试,每个要花2毫秒,总共64毫秒。用了BIST之后,所有SRAM并行测试,只要2毫秒就搞定。效率提升了30倍。

BIST的常见类型:

类型 测试对象 典型算法 覆盖率
MBIST 存储器(SRAM/DRAM) March C+、Checkerboard 99%+
LBIST 逻辑电路 伪随机向量 + MISR 85-95%
ABIST 模拟/混合信号 特定测试序列 视模块而定

个人建议:如果你的芯片里有大容量存储器,一定要上MBIST。面积开销不大(通常5-10%),但能省下大量测试时间。我曾经帮一个团队优化测试方案,加了MBIST后,ATE测试时间从15秒降到3秒,每年省下几十万的测试费用。

小结

好了,DFT概述就讲到这里。总结一下:

  • DFT是什么:在芯片设计阶段就植入测试结构,让制造后的芯片能被高效测试
  • 为什么需要:保证良率、降低测试成本、提升可靠性
  • 在流程中的位置:从架构设计到流片,DFT贯穿始终
  • 三大核心:扫描链(逻辑测试)、边界扫描(互连测试)、BIST(自测试)

下一章咱们深入聊聊扫描链的设计细节。到时候我会分享一些实际项目中的“坑”和“招”,敬请期待。


公众号:蓝海资料掘金营,微信deep3321