一、DFT基础概念:什么是DFT、为什么需要DFT、DFT在芯片设计中的位置
大家好,我是你们的DFT讲师。今天咱们聊聊DFT最基础的东西。嗯,说白了,就是三个问题:它是什么?为什么要有它?它在整个芯片设计里到底站哪个位置?
我刚开始接触DFT的时候,也觉得这东西挺玄乎的。后来做了几个项目,踩了不少坑,才真正明白——DFT不是锦上添花,而是雪中送炭。
1.1 什么是DFT?
DFT,全称Design for Test,中文叫“可测试性设计”。你想想看,芯片做出来,你怎么知道它好不好用?总不能拿个放大镜一个个晶体管去看吧?
DFT就是在芯片设计阶段,提前植入一些“测试机关”。等芯片流片回来,通过这些机关,我们就能快速判断芯片有没有制造缺陷。
核心思想: 设计时就为测试铺好路,而不是等芯片做出来再想办法测。
我个人习惯把DFT比作给大楼装消防系统。你不能等火烧起来了再装喷淋头,对吧?得在设计图纸阶段就规划好。
1.2 为什么需要DFT?
这个问题,我当年也问过。答案其实很简单——芯片制造不是100%完美的。
我在项目中遇到过这样的事:一批芯片流片回来,功能仿真全过,但实际测试时有一半都不工作。为什么?因为制造过程中引入了缺陷,比如金属线短路、晶体管漏电等等。
没有DFT,你只能靠功能测试去碰运气。但功能测试覆盖不了所有内部节点。你想想看,一个几亿门的芯片,靠功能测试能测到多少?
DFT的核心价值就三点:
- 提高测试覆盖率——能测到芯片内部99%以上的节点
- 降低测试成本——自动化测试,不用人工一个个点去量
- 缩短产品上市时间——快速定位缺陷,加速良率提升
避坑指南: 我曾经在一个项目里忽略了DFT的覆盖率要求,结果流片回来,有20%的芯片测不出来好坏。最后只能手动加探针,那叫一个痛苦。从那以后,我再也不敢小看DFT了。
1.3 DFT在芯片设计中的位置
这个问题,我建议你用一张图来理解。嗯,我画了个框架图,你看看就明白了。
从这张图你能看到,DFT插入的位置非常关键。它在前端设计之后、后端实现之前。为什么是这个位置?
因为前端设计阶段,RTL代码还没定型,这时候插入DFT结构,改动成本最低。等到了后端,布局布线都做完了,你再想加扫描链?嗯,那基本等于重新设计。
1.4 DFT的主要技术手段
说到具体怎么做,DFT主要有这么几招:
| 技术 | 作用 | 我遇到的坑 |
|---|---|---|
| 扫描链(Scan Chain) | 把普通寄存器连成链,测试时能串行灌入/读出数据 | 有一次链长设计不合理,测试时间长了10倍 |
| 内建自测试(BIST) | 芯片自己产生测试向量,自己判断好坏 | 存储器BIST最常用,但逻辑BIST容易漏测 |
| 边界扫描(JTAG) | 测试芯片引脚之间的连接是否正常 | 板级调试时JTAG救过我很多次 |
| 测试压缩(Test Compression) | 减少测试数据量,降低测试时间 | 压缩比设太高,覆盖率反而下降了 |
注意: DFT不是万能的。它只能测制造缺陷,测不了设计功能错误。功能验证是前端工程师的事,别混为一谈。
1.5 小结
好了,咱们捋一捋今天的内容:
- DFT是什么?——设计时植入测试机关,方便流片后检测缺陷
- 为什么需要?——制造不完美,功能测试覆盖不全,DFT能高效测出坏片
- 位置在哪?——前端设计之后、后端实现之前,这个窗口期很关键
我个人觉得,DFT就像芯片的“体检系统”。没有它,你只能等芯片出问题了再去找原因。有了它,你可以在芯片出厂前就把有问题的挑出来。
嗯,这一章就到这里。记住一句话:DFT不是负担,而是保障。
核心记忆点: DFT = 设计阶段为测试铺路,让芯片自己会“说话”,告诉我们它哪里坏了。
可可精品资料库