第三章 测试基础理论:故障模型、测试覆盖率与良率计算

各位同学,今天我们聊聊测试的“地基”——故障模型、覆盖率和良率。说实话,这些概念听起来有点理论,但你要是真进了量产导入的坑,天天都得跟它们打交道。我当年刚入行时,觉得故障模型就是书本上的几个图,直到有一次在N7项目上,一颗芯片因为一个极小的桥接故障漏掉了,结果整批货被客户退回……嗯,从那以后,我再也不敢小看这些基础理论了。

3.1 故障模型:芯片的“常见病”

芯片制造不是完美的。晶圆上的灰尘、光刻的偏差、材料的缺陷,都会让晶体管“生病”。测试的目的,就是把这些“病人”揪出来。而故障模型,就是我们给这些“病”起的名字和分类。

3.1.1 Stuck-at 故障(固定型故障)

这是最经典的模型。说白了,就是一根信号线被“焊死”在了0或者1上,怎么都拉不动。

  • Stuck-at-0 (SA0):信号永远为0。比如一个反相器的输出本该是1,结果死活出不来。
  • Stuck-at-1 (SA1):信号永远为1。比如一个与非门的输出本该是0,结果一直高电平。

我个人习惯把Stuck-at模型当作“入门级体检”。它简单、直观,覆盖率也容易算。但你要注意,它只能模拟永久性的物理短路或断路。像那种时好时坏的“软故障”,它就抓不住了。

重要概念:Stuck-at故障模型假设每个节点只有一种故障状态。一个电路有N个节点,理论上就有2N个可能的Stuck-at故障(每个节点SA0和SA1各一个)。

3.1.2 Transition 故障(转换故障)

这个模型比Stuck-at高级一点。它模拟的是信号从0变1(上升沿)或从1变0(下降沿)时,速度太慢,导致在时钟沿来临时没完成跳变。

你想想看,芯片频率越来越高,留给信号跳变的时间越来越短。我在N5项目上就遇到过,一个关键路径上的缓冲器因为工艺波动,驱动能力下降,导致信号上升时间从20ps变成了50ps。结果呢?芯片在低频下跑得好好的,一上高频就报错。这就是典型的Transition故障。

  • Slow-to-Rise (STR):上升沿太慢。
  • Slow-to-Fall (STF):下降沿太慢。

测试Transition故障,需要连续施加两个向量:第一个把节点设成初始值,第二个让它跳变,然后在下一个时钟沿捕获结果。这比Stuck-at测试复杂得多,但更贴近实际的高速问题。

3.1.3 Bridging 故障(桥接故障)

这个模型模拟的是两根本不该相连的金属线,因为制造缺陷“搭”在了一起。短路了嘛。

桥接故障分两种:

  • 电阻性桥接:两根线之间有个小电阻,信号会互相干扰。这种最难测,因为电阻值可能很大,只在特定条件下才表现出故障。
  • 硬桥接:直接短路,相当于逻辑上的“线与”或“线或”。

我曾经在N3的一个测试芯片上,发现一个SRAM的位线因为光刻残留物发生了桥接。那问题藏得特别深,常规的Stuck-at测试全过了,但芯片就是偶尔读错数据。最后我们专门加了Bridging测试向量才把它抓出来。所以,千万别以为Stuck-at覆盖率高就万事大吉。

我的小技巧:在先进制程中,Bridging故障越来越常见。我建议你在设计测试向量时,除了标准库里的故障模型,还要根据版图布局,手动添加一些高风险的桥接点(比如长距离并行走线、密集的过孔区域)。

3.2 测试覆盖率:你的测试够“狠”吗?

覆盖率,就是衡量你的测试向量到底“测到了多少”故障。它不是一个虚无缥缈的指标,而是直接关系到芯片出厂后的质量。

公式很简单:

测试覆盖率 = (检测到的故障数 / 总故障数) × 100%

但这里有个坑:总故障数怎么算?

  • 对于Stuck-at,就是2N(N为节点数)。
  • 对于Transition,是2N(每个节点两个方向)。
  • 对于Bridging,那就复杂了,因为任意两根线都可能桥接,总故障数可能是N×(N-1)/2。所以实际中我们只选“最可能”的桥接点来建模。

我记得有一次,一个同事兴冲冲地跟我说:“我的Stuck-at覆盖率做到了99%!”结果我一看报告,他用的故障列表里只包含了标准单元内部的节点,完全没考虑顶层互联线的故障。那这个99%就是“注水”的。真正的覆盖率,必须基于完整的、包含所有物理节点的故障列表。

避坑指南:我曾经在N7项目上吃过亏。当时ATE测试的Stuck-at覆盖率是98.5%,但良率却比预期低了2%。后来一查,发现是测试向量对某些“冗余逻辑”的覆盖率不够。这些逻辑在功能上看似多余,但一旦有故障,就会导致芯片功耗异常或时序违规。所以,覆盖率不仅要看数字,还要看它覆盖了哪些“角落”。

3.3 DPPM与良率计算:从测试到出货的“生死线”

测试的最终目的,是保证出货质量。而DPPM(Defective Parts Per Million,百万分之缺陷率)和良率,就是衡量这个质量的标尺。

3.3.1 良率(Yield)

良率分两种:

  • 晶圆良率(Wafer Yield):一片晶圆上,好芯片的数量占总芯片数的比例。这主要跟制造工艺有关。
  • 测试良率(Test Yield):经过测试后,通过测试的芯片数量占被测芯片总数的比例。这跟测试向量、测试条件直接相关。

举个例子:一片晶圆上有1000颗芯片,制造缺陷导致100颗坏了,晶圆良率就是90%。剩下的900颗拿去测试,测试向量又“打死”了50颗,那测试良率就是850/900 ≈ 94.4%。最终出货的良率是850/1000 = 85%。

3.3.2 DPPM:客户眼中的“质量分数”

DPPM是客户最关心的指标。它表示:你出货的每一百万颗芯片中,有多少颗是坏的(在客户那里被发现)。

DPPM = (客户退回的坏芯片数 / 总出货芯片数) × 1,000,000

比如你出货了10万颗芯片,客户退回了5颗坏的,那DPPM就是50。这个数字越小越好。一般消费类芯片要求DPPM < 500,汽车芯片要求DPPM < 10,甚至< 1。

这里有个关键关系:测试覆盖率越高,DPPM越低。但这不是线性的。我做过一个统计:

Stuck-at覆盖率 理论DPPM(假设其他条件不变)
95% ~5000
98% ~2000
99% ~1000
99.5% ~500
99.9% ~100

你看,从99%到99.9%,覆盖率只提升了0.9%,但DPPM却从1000降到了100。这就是为什么高端芯片对测试覆盖率的要求那么苛刻。但也要注意,覆盖率超过99.5%后,每提升0.1%都需要付出巨大的测试时间和成本代价。所以,实际项目中要找到一个平衡点。

核心公式
最终良率 = 晶圆良率 × 测试良率
DPPM ≈ (1 - 测试覆盖率) × 缺陷密度 × 常数

这个常数跟芯片面积、工艺节点、缺陷分布有关。在N5制程下,我一般取0.5~1.0之间的值。

3.4 总结与实战建议

好了,今天的内容就这些。我们来捋一捋:

  • 故障模型:Stuck-at是基础,Transition抓时序,Bridging抓短路。三者缺一不可。
  • 测试覆盖率:别只看数字,要看它基于什么故障列表。覆盖率越高,DPPM越低,但成本也越高。
  • DPPM与良率:良率是制造和测试的共同结果,DPPM是客户对你的最终评价。

最后,给你一个实战建议:在做量产导入时,先跑一遍Stuck-at覆盖率,确保达到99%以上。然后针对关键路径和高速接口,补充Transition测试。最后,根据版图分析,挑出10~20个最危险的桥接点,手动加Bridging测试。这样,你的测试方案才算“靠谱”。

下一章,我们会聊聊测试向量是怎么生成的,以及如何用ATPG工具自动搞定这些故障模型。到时候见。