第二章:测试基础理论——故障模型、覆盖率与ATPG
各位工程师朋友,大家好。今天我们来聊聊测试理论中最核心的几个概念。说实话,我刚入行那会儿,觉得这些理论离实际工作很远。直到有一次,一颗芯片在ATE上测了三天三夜,愣是没找出问题——后来才发现,是故障模型没选对。嗯,从那以后,我再也不敢轻视这些基础理论了。
2.1 故障模型:芯片的“病”该怎么描述?
芯片测试,说白了就是给芯片“看病”。你得先知道它会得什么病,才能对症下药。故障模型就是用来描述这些“病症”的。
2.1.1 Stuck-at 故障(固定故障)
这是最经典的模型。想象一根导线,它要么卡在逻辑1,要么卡在逻辑0。这就是Stuck-at-1和Stuck-at-0。
核心要点:
- Stuck-at-1 (SA1):节点永远输出高电平
- Stuck-at-0 (SA0):节点永远输出低电平
- 单故障模型:一次只考虑一个故障点
我个人习惯,在做DFT规划时,先跑一遍Stuck-at覆盖率。为什么?因为它简单、成熟,EDA工具支持最好。我在一个MCU项目中,Stuck-at覆盖率做到98%以上,流片回来的良率直接达标。
避坑指南:我曾经遇到一个案例,Stuck-at覆盖率99%,但芯片还是有问题。后来发现,是时序相关的故障没覆盖到。所以,Stuck-at只是基础,不是全部。
2.1.2 Transition 故障(跳变故障)
这个模型关注的是信号跳变的速度。你想想看,一个信号从0变到1,如果太慢,在下一个时钟沿来临时还没稳定,那就会出错。
Transition故障分两种:
- Slow-to-Rise:上升沿太慢
- Slow-to-Fall:下降沿太慢
我记得有个高速接口项目,频率跑到2GHz。Stuck-at测试全过,但芯片就是不稳定。后来加了Transition测试,发现好几个路径的跳变时间超标。嗯,这就是为什么高频芯片必须做Transition测试。
2.1.3 Bridging 故障(桥接故障)
两根相邻的导线,因为工艺缺陷短路了。这就是Bridging故障。它比Stuck-at复杂得多,因为短路后的行为取决于驱动能力和逻辑值。
| 故障类型 | 典型原因 | 测试难度 |
|---|---|---|
| Stuck-at | 金属断裂、晶体管损坏 | 低 |
| Transition | 工艺偏差、RC延迟 | 中 |
| Bridging | 金属桥接、颗粒污染 | 高 |
注意:Bridging故障的测试向量生成非常耗时。我建议在关键节点(如时钟树、复位网络)优先考虑,不要全芯片铺开。
2.2 测试覆盖率:你的测试够不够?
覆盖率,就是衡量测试充分性的指标。说白了,就是“你测了多少?”
常见的覆盖率指标:
- Stuck-at覆盖率:检测到的Stuck-at故障数 / 总故障数
- Transition覆盖率:检测到的跳变故障数 / 总跳变故障数
- 动态故障覆盖率:考虑时序的故障覆盖
我一般定目标:Stuck-at > 98%,Transition > 90%。为什么?因为经验告诉我,低于这个数,流片风险会急剧上升。
一个真实案例:某AI芯片,Stuck-at覆盖率95%,团队觉得够了。结果流片回来,良率只有60%。加测Transition后,发现大量时序故障。最后重新设计测试方案,覆盖率提到99%,良率才回到85%。
2.3 ATPG基本原理:自动生成测试向量
ATPG,全称Automatic Test Pattern Generation。它的任务就是:给定一个故障模型,自动生成测试向量,让芯片在ATE上跑起来。
ATPG的核心算法:
- D算法:最经典的算法,基于布尔差分
- PODEM:面向路径的决策算法,效率更高
- FAN:扇出导向算法,处理大规模电路
你可能会问:这些算法有什么区别?简单说,D算法适合小电路,PODEM和FAN适合大电路。我现在的项目,几百万门级的芯片,基本都用FAN算法。
ATPG的输出是什么?是一组测试向量,格式通常是:
// 测试向量示例(STIL格式)
Pattern 1:
V { 0 1 0 1 1 0 }
C { 1 0 1 0 0 1 }
M { P P P P P P }
Pattern 2:
V { 1 0 1 0 0 1 }
C { 0 1 0 1 1 0 }
M { P P P P P P }
个人经验:ATPG跑出来的向量,不要直接拿去用。我建议先做一次仿真验证,确保向量在功能上正确。我曾经吃过亏,ATPG向量在仿真时就把芯片“打死”了——原来是约束没设对。
2.4 ATE测试流程简介
ATE,就是自动测试设备。芯片流片回来后,就得上ATE“过堂”。
典型的ATE测试流程:
- 接触测试:检查探针是否接触良好
- 漏电流测试:测量静态功耗
- 功能测试:跑功能向量,验证逻辑正确性
- DC参数测试:测量电压、电流等参数
- AC参数测试:测量时序、频率等参数
- DFT测试:跑ATPG生成的扫描向量
- 良率分析:统计测试结果,定位失效原因
我记得第一次上ATE,看着测试机台“唰唰唰”地跑向量,心里那个激动啊。但后来发现,ATE测试最怕的是“假失效”——就是芯片本身没问题,但测试环境有问题。比如探针接触不良、电源噪声过大等。
避坑指南:ATE测试前,一定要做“Golden Device”验证。拿一颗已知完好的芯片,跑一遍所有测试项,确保测试程序本身没问题。我曾经跳过这步,结果浪费了整整一周去排查一个根本不存在的“故障”。
2.5 小结
这一章我们聊了故障模型、覆盖率、ATPG和ATE流程。这些理论看起来枯燥,但每一个都直接关系到芯片的成败。我个人觉得,做DFT最重要的不是工具用得多熟,而是对故障模型的理解有多深。你想想看,连芯片会怎么坏都不知道,怎么设计测试方案?
下一章,我们会深入扫描链设计——这是DFT的“骨架”。到时候我会分享一些实际项目中的设计技巧和踩坑经历。咱们下章见。
公众号:蓝海资料掘金营,微信deep3321