第二章:测试基础理论——故障模型、测试覆盖率与ATPG原理
各位同学,欢迎来到测试理论的核心章节。说实话,很多工程师觉得测试理论枯燥,不就是几个故障模型嘛。但我在项目中吃过亏,才明白这些基础有多重要。今天咱们就聊聊故障模型、测试覆盖率,以及ATPG是怎么工作的。
2.1 故障模型:芯片为什么会坏?
芯片制造出来,不可能100%完美。为什么?因为工艺偏差、杂质、光刻误差等等。但我们要测试,就得先定义“什么是坏”。这就引出了故障模型。
2.1.1 Stuck-at 故障模型
这是最经典的模型,也是DFT入门的第一个概念。说白了,就是假设某个节点永远卡在逻辑0或逻辑1,不会变了。
- Stuck-at-0 (SA0):节点永远为0
- Stuck-at-1 (SA1):节点永远为1
举个例子,一个两输入与非门,如果输出端SA0了,那不管输入是什么,输出永远是0。测试时,我们需要施加特定的向量,让这个故障“暴露”出来。
重要概念:Stuck-at模型假设故障是永久性的,不会时好时坏。虽然简单,但覆盖了大部分制造缺陷。
我个人习惯,在做扫描链插入时,会先跑一遍Stuck-at覆盖率。如果低于95%,我基本不会往下走。为什么?因为后面的Transition测试会更难搞。
2.1.2 Transition 故障模型
Stuck-at模型只能测静态故障。但芯片是动态工作的,信号需要跳变。Transition模型就是用来测“信号跳变太慢”的问题。
它分两种:
- Slow-to-Rise:从0变1太慢
- Slow-to-Fall:从1变0太慢
测试时,需要两个连续的时钟周期。第一个周期把节点设成初始值,第二个周期让它跳变,然后捕获结果。如果跳变太慢,捕获到的值就是错的。
避坑指南:我曾经在一个28nm项目中,Stuck-at覆盖率做到99%,但芯片回来还是有问题。后来发现是Transition故障没测到。从那以后,我要求Transition覆盖率至少85%以上。
2.1.3 Bridging 故障模型
Bridging模型模拟的是两条相邻的金属线短路了。这在先进工艺中越来越常见,因为线间距越来越小。
Bridging故障有两种行为:
- Wired-AND:短路后,两个节点都变成两者相与的结果
- Wired-OR:短路后,两个节点都变成两者相或的结果
你想想看,如果一条数据线和一条时钟线短路了,那后果有多严重?所以Bridging测试不能省。
2.2 测试覆盖率:你到底测了多少?
测试覆盖率,就是衡量你的测试向量能检测到多少故障。公式很简单:
测试覆盖率 = (检测到的故障数 / 总故障数) × 100%
但这里有个坑:总故障数怎么算?
对于Stuck-at模型,每个节点有SA0和SA1两个故障。一个100万门的芯片,故障数大约是200万。但实际ATPG工具会做故障压缩,把等价的故障合并。
| 覆盖率类型 | 典型目标值 | 说明 |
|---|---|---|
| Stuck-at覆盖率 | ≥95% | 基础要求,大部分项目都能做到 |
| Transition覆盖率 | ≥85% | 先进工艺必须关注 |
| Bridging覆盖率 | ≥80% | 取决于工艺节点 |
注意:覆盖率不是越高越好。从98%到99%,可能需要增加50%的测试向量。这会增加测试时间和成本。我一般会跟客户商量,定一个合理的阈值。
2.3 ATPG原理:测试向量是怎么生成的?
ATPG,全称Automatic Test Pattern Generation。说白了,就是工具自动帮你生成测试向量。
ATPG的核心思想是:
- 故障激活:让故障点的值跟正常值相反
- 故障传播:把故障点的差异传到某个输出端
- 敏化路径:确保传播路径上的其他信号不会干扰
举个例子,一个与非门输出端SA0。要激活它,需要让正常输出为1。那输入就是(0,0)或(0,1)或(1,0)。然后把这个0值传到输出端,中间不能有其他门把它改掉。
ATPG算法主要有几种:
- D算法:最经典的,用D和D'表示故障值
- PODEM:面向目标的,效率更高
- FAN:进一步优化,减少回溯
我记得刚入行时,总觉得ATPG很神秘。后来自己写过一个简单的ATPG程序,才发现核心就是“激活+传播”。工具只是把这个过程自动化了。
实战建议:在TetraMAX中,ATPG流程一般是:读入网表 → 构建故障列表 → 运行ATPG → 输出测试向量。我习惯先跑一个快速模式看看覆盖率,再跑全模式优化。
2.4 三种故障模型的对比
| 模型 | 模拟的缺陷 | 测试复杂度 | 覆盖率目标 |
|---|---|---|---|
| Stuck-at | 永久性短路/断路 | 低 | ≥95% |
| Transition | 信号跳变慢 | 中 | ≥85% |
| Bridging | 相邻线短路 | 高 | ≥80% |
嗯,这里要注意:三种模型不是互斥的。一个芯片可能同时有Stuck-at和Transition故障。所以测试时,要综合使用。
好了,这一章的内容就到这里。测试理论是DFT的基石,理解透了,后面的扫描链、BIST、Boundary Scan才能学得扎实。下一章我们讲扫描链设计,那是DFT的实战核心。
本章小结:
- Stuck-at模型:最基础,覆盖静态故障
- Transition模型:测动态跳变,先进工艺必备
- Bridging模型:测短路,越来越重要
- 测试覆盖率:不是越高越好,要平衡成本
- ATPG原理:激活+传播,工具自动生成向量
公众号:蓝海资料掘金营,微信deep3321