1. DFT基础概念
1.1 什么是DFT?说白了就是给芯片装个“体检系统”
DFT,全称是Design for Testability,中文叫“可测试性设计”。
我经常跟刚入行的同事这么解释:DFT就是在芯片内部植入一套“自检电路”。你想想看,一颗芯片流片回来,成千上万个晶体管,你怎么知道它有没有坏?拿万用表去量?不现实。
DFT的核心思想很简单——在设计阶段就为测试做好准备。不是等芯片造出来了再想怎么测,而是在画版图、写RTL的时候,就把测试电路一并设计进去。
DFT的三大核心能力:
- 可控性(Controllability):能从外部引脚把测试信号灌进去
- 可观测性(Observability):能把内部节点的状态从引脚读出来
- 可隔离性(Isolation):能把故障模块单独拎出来测
我个人习惯把DFT比作医院的体检系统。芯片是病人,ATE测试机是医生,而DFT电路就是CT机、心电图仪这些检查设备。没有这些设备,医生只能靠“望闻问切”,效率低还容易漏诊。
1.2 为什么需要DFT?血的教训告诉我:没有DFT就是裸奔
这个问题,我用一个真实案例来回答。
我曾经参与过一个项目,芯片流片回来,功能验证全过,但量产良率只有30%。查了三个月,最后发现是某个内部节点有桥接故障。问题是——这个节点没有任何测试通路,ATE根本测不到。最后只能靠人工探针台去扎,一片一片地筛,成本高到离谱。
从那以后,我深刻理解了DFT的必要性。说白了,有以下几个硬核原因:
- 工艺越先进,缺陷越多——7nm、5nm制程下,一个晶圆上几十亿个晶体管,不可能完美无缺。没有DFT,你根本不知道坏在哪。
- 测试成本决定芯片利润——ATE测试机一小时收费几千块。DFT做得好,测试时间从10秒降到1秒,省下的钱就是纯利润。
- 功能测试覆盖不了所有场景——你写100万个测试用例,也测不到所有内部节点。但DFT的扫描链,一次就能覆盖99%以上的故障。
- 良率分析需要数据——没有DFT,你只知道芯片坏了,但不知道哪里坏了。有了DFT,你可以精准定位到某个标准单元,甚至某个晶体管。
⚠️ 避坑指南:千万不要觉得“我的设计很简单,不需要DFT”。我见过太多小芯片因为没做DFT,流片回来全是废片。哪怕只加一条扫描链,也能救你一命。
1.3 DFT在芯片设计流程中的位置
这个问题,我画了一张图来帮你理解。DFT不是某个阶段的“附加项”,而是贯穿整个设计流程的“主线任务”。
从这张图你可以看到,DFT不是某个节点的“一次性工作”。它从规格定义阶段就开始了——你要决定用哪种测试架构,是full scan还是partial scan,要不要加BIST。
我个人习惯把DFT分成三个阶段:
| 阶段 | 主要工作 | 输出产物 |
|---|---|---|
| 设计阶段 | 插入扫描链、BIST、边界扫描 | DFT网表、测试约束 |
| 验证阶段 | DFT仿真、时序分析、功耗分析 | 验证报告、覆盖率数据 |
| 测试阶段 | 生成测试向量、ATE测试 | 测试向量、良率报告 |
💡 我的经验之谈:很多工程师觉得DFT是后端的事,或者觉得是测试工程师的事。其实不然。DFT最关键的决策——比如扫描链怎么接、BIST用哪种算法——都是在RTL设计阶段就要定下来的。等综合完了再想加DFT,那就晚了。
1.4 常见的DFT技术有哪些?
嗯,这里我简单列一下,后面章节会详细展开:
- 扫描链(Scan Chain):最基础的DFT技术,把普通寄存器串成链,实现内部状态的可控可观测
- 内建自测试(BIST):芯片自己测自己,常用于存储器测试
- 边界扫描(Boundary Scan):JTAG标准,用于板级测试
- 测试压缩(Test Compression):减少测试数据量,降低测试时间
你想想看,这些技术组合起来,基本能覆盖芯片上99%以上的物理缺陷。剩下的1%,要么是设计bug,要么是工艺极限问题——那又是另一个话题了。
核心要点回顾:
- DFT是给芯片装“体检系统”,不是事后补救
- 没有DFT,量产良率就是碰运气
- DFT贯穿整个芯片设计流程,从规格定义到良率分析
- 扫描链、BIST、边界扫描是三大基础技术
好了,这一章就到这里。记住一句话:DFT不是成本,是投资。你花在DFT上的每一分钱,都会在量产测试时加倍赚回来。
可可精品资料库