1、DFT概述:什么是可测试性设计?为什么需要DFT?DFT在芯片设计流程中的位置。
大家好,我是你们的DFT讲师。今天咱们聊聊DFT最基础、也最核心的问题——可测试性设计到底是什么鬼?为什么我们非得在芯片里塞这些“额外”的电路?
说实话,我刚入行那会儿也觉得DFT挺烦人的。本来设计就够复杂了,还要加一堆扫描链、BIST控制器,这不是给自己找事吗?直到我第一次参与流片回来,芯片功能全对,但良率死活上不去……嗯,从那以后我再也不敢小看DFT了。
什么是可测试性设计?
可测试性设计,英文叫Design for Testability,简称DFT。说白了,就是在设计阶段就考虑好芯片流片回来之后怎么测试。
你想想看,一颗芯片里可能有几千万甚至上亿个晶体管。流片回来后,你怎么知道每个晶体管都正常工作?靠肉眼?不可能。靠功能测试?也测不全。
DFT就是在芯片内部“埋”一些测试电路。这些电路平时不干活,但测试模式下能帮我们快速定位故障。我习惯把DFT比作给芯片装了个“体检系统”——平时不用,体检时能告诉你哪里出了问题。
核心要点:DFT不是功能设计的一部分,而是为了测试而添加的辅助电路。它不会改善芯片的功能,但能大幅提升芯片的可测试性和良率。
为什么需要DFT?
这个问题我问过很多新人,答案五花八门。其实原因很直接——没有DFT,你根本测不了芯片。
具体来说,有这几个关键原因:
- 物理访问受限:芯片封装后,你能接触到的只有那几个引脚。内部几千万个节点,你怎么测?DFT通过扫描链把这些内部节点“串”到引脚上,让外部测试设备能访问到。
- 故障覆盖率低:纯功能测试只能覆盖一小部分电路。我在项目中遇到过,功能测试跑得挺好,但一上ATE(自动测试设备)就发现大量故障。加了DFT后,故障覆盖率从30%直接飙到95%以上。
- 测试成本高:没有DFT,测试时间会非常长。你想想,一颗芯片在ATE上多待一秒,成本就多一分。DFT能并行测试,大幅缩短测试时间。
- 良率分析需要:流片回来良率低,你得知道是哪个工艺步骤出了问题。DFT提供的诊断数据能帮你定位到具体是哪一层金属短路了,哪个晶体管漏电了。
个人经验:我曾经接手过一个项目,前期没做DFT,流片回来发现良率只有20%。我们花了三个月才定位到问题——一个很隐蔽的桥接故障。如果当时有扫描链,一周就能搞定。所以我现在做项目,DFT是优先级最高的任务之一。
DFT在芯片设计流程中的位置
很多新人以为DFT是后端的事,或者测试工程师的事。其实不对。DFT贯穿整个芯片设计流程,从架构定义到量产测试,每个阶段都有DFT的影子。
我习惯把DFT的介入点分成这几个阶段:
| 设计阶段 | DFT活动 | 关键输出 |
|---|---|---|
| 架构定义 | 确定DFT策略、选择测试方法 | DFT架构文档 |
| RTL设计 | 插入扫描链、BIST控制器、边界扫描 | DFT RTL代码 |
| 综合 | 扫描链重排、测试点插入 | 综合后网表 |
| 物理设计 | 时钟树综合、布局布线考虑DFT | GDSII版图 |
| ATE测试 | 生成测试向量、执行测试 | 测试报告、良率数据 |
你看,DFT不是某个阶段的事。我建议你在项目一开始就拉上DFT工程师一起讨论。别等到综合完了才发现扫描链插不进去,那时候改起来就痛苦了。
常见的DFT技术
聊到这儿,你可能想知道DFT具体有哪些技术。我简单列几个最常用的:
- 扫描链(Scan Chain):把普通寄存器替换成扫描寄存器,串成一条链。测试时可以把数据“扫”进去,再“扫”出来对比。这是最基础、最常用的DFT技术。
- 内建自测试(BIST):在芯片内部集成测试向量生成器和响应分析器。常用于存储器测试,比如SRAM、DRAM。我做过一个项目,芯片里有上百个SRAM,用BIST测一遍只要几毫秒。
- 边界扫描(Boundary Scan):在芯片I/O引脚和内部逻辑之间插入扫描单元,遵循JTAG标准。主要用于板级测试和芯片互连测试。
- 测试点插入(Test Point Insertion):在电路中添加额外的观测点或控制点,提高故障覆盖率。这个技术我经常用来解决那些“顽固”的低覆盖率区域。
注意:DFT技术不是越多越好。加太多测试电路会占用芯片面积、增加功耗、影响时序。你需要根据项目需求做权衡。我一般建议故障覆盖率做到95%以上就够了,追求100%往往得不偿失。
DFT的挑战与趋势
最后聊聊DFT面临的挑战。随着工艺节点不断缩小,芯片越来越复杂,DFT也越来越难做。
比如,7nm以下的工艺,晶体管漏电严重,测试时功耗控制成了大问题。还有,AI芯片、SoC芯片动辄几十亿晶体管,传统的扫描链方法已经不够用了。
我个人比较看好这几个方向:
- 层次化DFT:把大芯片分成多个小模块,每个模块独立做DFT,最后再整合。这样能降低复杂度,也方便复用。
- 自适应测试:根据芯片的实际表现动态调整测试策略。比如,良率高的批次可以少测一些,良率低的批次多测一些。
- 机器学习辅助DFT:用AI来优化测试向量生成、故障诊断等环节。我最近在尝试用ML做测试点插入,效果还不错。
好了,这一章的内容就到这里。DFT是个实践性很强的领域,光看书没用,得动手做。下一章我会带大家用TetraMAX跑一个实际的扫描链测试案例,到时候你们就能感受到DFT的威力了。
记住一句话:没有DFT的芯片,就像没有体检报告的人——你永远不知道它到底健不健康。