一、DFT测试基础:什么是DFT、DFT在芯片设计中的角色、常见的DFT技术
大家好,我是你们的DFT讲师。今天咱们聊聊DFT最基础的东西。说实话,我刚入行那会儿,觉得DFT就是个“加测试点”的活儿,后来被现实狠狠教育了一回——有一次芯片流片回来,功能全对,但就是测不出来,良率直接崩了。从那以后,我才真正理解了DFT的分量。
1.1 什么是DFT?
DFT,全称Design for Test,中文叫“可测试性设计”。说白了,就是在芯片设计阶段,提前把测试功能考虑进去。你想想看,一颗芯片几亿个晶体管,要是等造出来才发现有问题,那损失可就大了。
我个人习惯把DFT理解成“给芯片装体检设备”。就像人需要定期体检,芯片也需要测试。但芯片内部结构太复杂,你得提前给它设计好“抽血口”、“心电图贴片”,这就是DFT干的事。
核心观点:DFT不是事后补救,而是设计阶段就植入的测试基因。没有DFT的芯片,就像没有仪表盘的汽车——能开,但你不知道它什么时候会出问题。
1.2 DFT在芯片设计中的角色
DFT工程师在芯片团队里,位置其实挺特殊的。我经常跟新人说,我们是“质量守门员”。前端设计把功能做出来,后端把版图画出来,我们负责确保这些都能被有效测试。
具体来说,DFT承担这几个角色:
- 测试架构师:决定用什么测试策略,扫描链怎么插,BIST放哪里
- 良率分析师:通过测试数据定位失效原因,帮工艺改进
- 成本控制者:测试时间每多一秒,量产成本就多一分,我们得在覆盖率和时间之间找平衡
我记得有个项目,客户要求测试覆盖率必须达到99%以上。前端设计说“功能没问题”,后端说“面积紧张”,最后我们DFT团队硬是挤出了3%的面积放测试逻辑。嗯,这就是我们的日常——在夹缝中求生存。
小提示:DFT不是独立存在的。它跟前端设计、后端实现、ATE测试都有强关联。我建议新人先理解整个芯片设计流程,再深入DFT细节。
1.3 常见的DFT技术
DFT技术其实就三大类:扫描链、BIST、边界扫描。咱们一个一个说。
1.3.1 扫描链(Scan Chain)
扫描链是DFT的“老大哥”,也是最基础的技术。它的原理很简单:把普通的触发器(Flip-Flop)换成带扫描功能的触发器(Scan FF),然后串成一条链。
为什么要这么做?因为芯片内部的状态节点太多,你没法直接访问。但通过扫描链,你可以把测试数据“灌”进去,再把结果“扫”出来。就像给芯片装了个“数据管道”。
// 一个简单的扫描链结构示例
// 正常模式:D -> Q
// 测试模式:SI -> Q
module scan_ff (
input D, // 正常数据输入
input SI, // 扫描输入
input SE, // 扫描使能
input CLK, // 时钟
output Q // 输出
);
always @(posedge CLK) begin
if (SE) Q <= SI; // 测试模式
else Q <= D; // 正常模式
end
endmodule
我在项目中遇到过一个问题:扫描链插好了,但时序分析总报错。后来发现是扫描使能信号(SE)的扇出太大,导致时钟偏移。解决办法是给SE信号加缓冲树。嗯,这种坑踩过一次就记住了。
注意:扫描链不是越多越好。链太多,测试时间短但面积大;链太少,面积小但测试时间长。一般根据芯片规模和ATE通道数来定,我习惯控制在每链500-1000个触发器。
1.3.2 内建自测试(BIST)
BIST,全称Built-In Self Test。这玩意儿厉害的地方在于——它让芯片自己测自己。不需要外部ATE设备,芯片上电后自己跑测试,自己判断好坏。
BIST最常用在存储器测试上。为什么?因为存储器(SRAM、DRAM)结构规整,容易生成测试向量。而且存储器占芯片面积大,出问题的概率也高。
常见的BIST架构包括:
- 测试向量生成器:通常用LFSR(线性反馈移位寄存器)生成伪随机向量
- 响应分析器:用MISR(多输入特征寄存器)压缩测试结果
- 控制器:协调测试流程,判断通过/失败
我曾经在一个AI芯片项目里,用BIST测试了128个SRAM宏单元。结果发现有个宏单元在高温下老是报错。一开始以为是BIST逻辑有问题,后来定位到是电源噪声引起的。你看,BIST不仅能测存储器,还能帮你发现电源问题。
关键点:BIST的优点是测试速度快、不需要ATE。缺点是面积开销大(约5-10%),而且只能测固定类型的故障。所以它通常跟扫描链配合使用。
1.3.3 边界扫描(Boundary Scan)
边界扫描,标准叫IEEE 1149.1,俗称JTAG。这技术最早是为了解决PCB板级测试问题,后来被用到芯片级。
它的原理是在每个I/O引脚旁边加一个边界扫描单元(BSC),这些单元串成一条链。通过TAP控制器(Test Access Port)来控制。你可以通过JTAG接口,直接控制芯片的每个引脚,或者读取引脚状态。
边界扫描的典型应用场景:
- 板级互连测试:检查芯片之间的连线有没有短路、断路
- 芯片内部测试:通过边界扫描链访问内部逻辑
- 在线编程:比如FPGA的配置、Flash的烧写
我记得有一次,客户说他们的板子有20%的良率问题。我们用边界扫描一测,发现是BGA焊球虚焊。你想想看,要是没有边界扫描,这种问题得用X光机才能查出来,成本高多了。
实用技巧:边界扫描的TAP控制器有5个信号:TCK(时钟)、TMS(模式选择)、TDI(数据输入)、TDO(数据输出)、TRST(复位,可选)。我建议在设计时把TRST加上,方便调试。
知识体系总览
下面这张图,是我自己整理的DFT测试基础的知识结构。你可以把它当成一个“地图”,方便后续学习时定位。
好了,以上就是DFT测试基础的核心内容。我个人觉得,理解这三项技术的关键不在于背概念,而在于想清楚“为什么要这么做”。你想想看,扫描链为什么用触发器串链?因为触发器是芯片里最多的时序单元。BIST为什么用LFSR?因为伪随机序列够用且面积小。边界扫描为什么标准化?因为不同厂商的芯片要能互联测试。
这些技术背后都有很实际的工程考量。我在做项目时,经常跟新人说:别光看文档,多想想“如果我来设计,我会怎么做”。这样学起来,才能真正吃透。
可可精品资料库