第二讲:测试基础理论——故障模型、覆盖率、ATPG与故障仿真
大家好,欢迎来到DFT实战课程的第二讲。
今天我们要聊的,是DFT最核心的理论基础。说实话,这部分内容看起来有点枯燥,但它是整个可测试性设计的根基。我见过不少工程师,上来就学各种DFT结构,结果遇到实际故障定位时一头雾水——说白了,就是基础没打牢。
2.1 故障模型:芯片为什么会坏?
芯片制造出来,不是每一颗都能正常工作。我们得先搞清楚,它到底可能怎么坏。
2.1.1 Stuck-at 故障模型
这是最经典的故障模型,也是我入行时学的第一个模型。
简单说,就是某个节点被“卡死”在逻辑0或逻辑1上。比如一根信号线本该在0和1之间跳变,结果它永远停在0了——这就是Stuck-at-0故障。
关键点:
- Stuck-at-0 (SA0):节点永远为0
- Stuck-at-1 (SA1):节点永远为1
- 通常假设单故障模型——一次只考虑一个故障
我在项目中遇到过一件事:某次流片回来,芯片的SPI接口死活读不到数据。后来定位发现,是MISO引脚内部的一个缓冲器发生了SA0故障。嗯,这种问题用ATPG生成的测试向量,一抓一个准。
2.1.2 Transition 故障模型
Stuck-at模型只能检测静态故障。但芯片跑在高速时钟下,问题往往出在信号跳变上。
Transition故障,说白了就是信号从0变1(或从1变0)时,速度太慢,没能在时钟沿之前稳定下来。
我的经验:
Transition故障在先进工艺节点(比如7nm、5nm)中越来越常见。我建议在做ATPG时,一定要同时生成Stuck-at和Transition两种向量。别偷懒,否则流片回来有你哭的。
2.1.3 Bridging 故障模型
两根相邻的金属线,因为工艺缺陷短路了——这就是Bridging故障。
它比Stuck-at复杂得多。因为短路后,逻辑值取决于驱动强度、线长、甚至温度。你想想看,两根线打架,谁赢?
| 故障类型 | 物理本质 | 检测难度 |
|---|---|---|
| Stuck-at | 节点固定为0或1 | 低 |
| Transition | 信号跳变速度不足 | 中 |
| Bridging | 相邻线短路 | 高 |
2.2 测试覆盖率:你的测试够不够?
测试覆盖率,就是衡量你的测试向量能检测到多少故障的指标。
公式很简单:
测试覆盖率 = (检测到的故障数 / 总故障数) × 100%
但这里有个坑。我曾经遇到一个项目,报告显示Stuck-at覆盖率达到98%,结果流片回来还是出了问题。为什么?因为Transition覆盖率只有60%。
避坑指南:
我曾经以为只要Stuck-at覆盖率够高就万事大吉。后来发现,Transition故障才是高速芯片的隐形杀手。现在我的习惯是:Stuck-at覆盖率目标99%以上,Transition覆盖率目标95%以上。
2.3 ATPG:自动测试向量生成
ATPG,全称Automatic Test Pattern Generation。它的任务就是:给定一个故障,自动生成一组输入向量,让这个故障能被观察到。
ATPG的基本原理,我总结为三步:
- 故障激活:让故障点的逻辑值与正常值相反
- 故障传播:把故障点的差异传到某个输出引脚
- 敏化路径:确保传播路径上的其他信号不会干扰
举个例子,假设我们要检测一个与门输出端的SA0故障:
// 正常情况:与门输出 = A & B
// 故障情况:输出固定为0
// ATPG生成的向量:
// 设置 A=1, B=1
// 正常输出应为1,故障输出为0
// 差异被传播到输出端,故障被检测到
你可能会问:ATPG工具是怎么做到的?
其实核心算法就是D算法、PODEM、FAN这些。不过现在商业工具都封装好了,我们直接用就行。但理解原理很重要——至少你知道工具在干什么,出了问题能排查。
2.4 故障仿真:验证你的向量
ATPG生成了向量,但你怎么知道它真的能检测到故障?
答案就是故障仿真。
故障仿真的流程大致如下:
- 在网表中注入一个故障
- 用ATPG生成的向量进行仿真
- 观察输出是否与无故障时的输出不同
- 如果不同,说明这个故障被检测到了
我记得刚入行时,有一次跑故障仿真,跑了整整两天。后来发现是故障列表太大了——几百万个故障,一个个仿真当然慢。
优化技巧:
现在主流工具都支持故障压缩和并行仿真。比如,一次仿真可以同时处理多个故障,只要它们的传播路径不冲突。另外,我建议先做故障分级——把等效故障合并,能大幅减少仿真时间。
2.5 本章知识体系
下面这张图,是我自己总结的测试理论基础框架。你把它记牢了,后面学DFT结构会轻松很多。
2.6 小结
这一讲的内容,说白了就是四个字:故障、覆盖、生成、仿真。
- 故障模型:告诉你芯片可能怎么坏
- 测试覆盖率:告诉你测试够不够
- ATPG:自动帮你生成测试向量
- 故障仿真:验证向量到底管不管用
这些理论,是后面所有DFT结构的基础。你把它吃透了,后面学扫描链、BIST、边界扫描,都会觉得顺理成章。
一句话总结:
没有扎实的测试理论基础,DFT就是空中楼阁。我见过太多人上来就学工具操作,结果连故障覆盖率报告都看不懂——千万别走这条路。
公众号:蓝海资料掘金营,微信deep3321