一、DFT基础概念:什么是DFT、为什么需要DFT、DFT在芯片设计流程中的位置
大家好,我是你们的DFT讲师。今天咱们聊聊DFT最基础的东西。嗯,别小看这些概念,我见过不少工程师干了三五年,对DFT的理解还停留在「就是插几个扫描链」的层面。这不行。
1.1 什么是DFT?
DFT,全称是Design for Test,中文叫「可测试性设计」。说白了,就是在芯片设计阶段,提前把测试用的「后门」给留好。
你想想看,芯片造出来以后,成千上万个晶体管封装在一个小黑盒子里。你怎么知道它有没有坏?靠肉眼?不可能。靠万用表去量?也量不过来。所以,我们必须在设计阶段就植入一些特殊的电路结构,让测试设备能「钻进」芯片内部,去检查每个逻辑单元是否工作正常。
我个人习惯把DFT比作「给芯片装一套体检系统」。你平时体检,医生不会把你的肚子切开来看,而是用CT、B超这些设备从外部扫描。DFT也是这个道理——通过外部测试设备,利用芯片内部植入的测试结构,完成对芯片健康状况的全面检查。
核心要点:DFT不是测试本身,而是为了让测试变得可行、高效而做的设计工作。
1.2 为什么需要DFT?
这个问题我经常被问到。有些刚入行的朋友觉得:「我设计功能都验证好了,为什么还要额外加一堆测试电路?这不是浪费面积吗?」
嗯,这个问题问得好。我来给你算一笔账。
第一,制造缺陷是客观存在的。 晶圆制造过程中,哪怕工艺再先进,也免不了会有杂质、光刻偏差、金属桥接等问题。我在项目中遇到过一颗芯片,功能仿真全过了,流片回来却发现某个寄存器的输出始终为0。查了半天,原来是制造过程中一根金属线断了。没有DFT,这种问题根本定位不到。
第二,测试成本决定了芯片的利润。 一颗芯片的测试时间每增加1秒,在大规模量产时可能就是几十万甚至上百万的成本。DFT做得好,测试时间可以大幅缩短。
第三,良率分析需要数据支撑。 没有DFT,你只能知道芯片「好」还是「坏」。有了DFT,你能知道芯片「哪里坏了」,这对工艺改进至关重要。
| 对比项 | 有DFT | 无DFT |
|---|---|---|
| 缺陷检测能力 | 可覆盖95%以上内部节点 | 只能测IO引脚 |
| 故障定位 | 精确到单个逻辑门 | 基本无法定位 |
| 测试时间 | 秒级(自动化测试) | 分钟级(人工逐项测) |
| 量产可行性 | 高 | 极低 |
避坑指南:我曾经见过一个团队,为了节省面积把DFT电路全部砍掉,结果流片回来良率只有30%,而且完全不知道问题出在哪。最后只能一片一片手动测试,成本直接爆炸。记住:省DFT的面积,就是省测试的命。
1.3 DFT在芯片设计流程中的位置
DFT不是设计完成后再「加上去」的东西。它必须贯穿整个设计流程。我习惯把DFT的介入点分成三个阶段:
- 架构阶段:确定测试策略,比如用哪种扫描方式、需要多少测试引脚、是否要加BIST(内建自测试)等。
- 实现阶段:在RTL代码中插入测试逻辑,进行综合时保留测试结构,完成ATPG(自动测试向量生成)。
- 验证阶段:对测试向量进行仿真验证,确保测试覆盖率达标,同时不影响功能时序。
下面这张图可以帮你更直观地理解DFT在整个芯片设计流程中的位置:
从这张图你可以看到,DFT不是某个时间点「做一下」就完事的。它从架构阶段就开始介入,一直持续到芯片测试完成。我个人的经验是,DFT工程师越早介入项目,后期出问题的概率就越低。
小技巧:如果你在项目初期就被拉去开DFT策略会议,恭喜你,这个团队是靠谱的。如果项目都快综合了你才被通知「需要加DFT」,那你就要小心了——大概率是来填坑的。
1.4 DFT的核心技术概览
聊完了基础概念,我简单给你梳理一下DFT涉及的核心技术。这些后面都会详细讲,今天先混个脸熟:
- 扫描链(Scan Chain): 最基础的DFT技术,把普通寄存器串成链,实现测试数据的串行输入/输出。
- 边界扫描(Boundary Scan): 主要用于芯片级互联测试,JTAG接口就是基于这个技术。
- 内建自测试(BIST): 让芯片自己测试自己,常用于存储器测试。
- 压缩技术(Test Compression): 减少测试数据量,缩短测试时间。
嗯,今天就先到这里。这些概念你消化一下,下一章我们开始动手——我会带你写第一个扫描链的测试用例。到时候你就知道,理论归理论,真正写起代码来,坑还多着呢。
可可精品资料库