故障模型基础:stuck-at、transition、bridging 故障模型

大家好,我是你们的讲师。今天我们来聊聊故障仿真里最核心的东西——故障模型。

说实话,我刚入行那会儿,觉得故障模型不就是把电路搞坏吗?有什么好学的。直到有一次,我负责一个芯片的ATE测试程序开发,结果流片回来,芯片在低温下死活跑不过测试。我排查了整整两周,最后发现是一个transition故障在作祟。从那以后,我再也不敢小看这些基础模型了。

今天,我带你把这三种最经典的故障模型彻底搞明白。

1. stuck-at 故障模型

stuck-at故障,说白了就是电路里某个节点卡死在逻辑0或逻辑1上。这是最古老、最经典的故障模型,也是我们做故障仿真的入门第一课。

为什么它这么重要?

因为简单。你想想看,一个门电路的输出,要么是0要么是1。如果它坏了,大概率就是卡死在某个电平上。stuck-at模型就是模拟这种失效。

我个人习惯把stuck-at故障分为两类:

  • stuck-at-0 (SA0):节点永远输出0
  • stuck-at-1 (SA1):节点永远输出1

举个例子,一个两输入与非门,正常情况应该是:

输入A=1, 输入B=1 → 输出=0
输入A=0, 输入B=1 → 输出=1

如果输出端发生了SA0故障,那不管输入是什么,输出永远是0。这就是stuck-at故障的本质。

关键点:stuck-at故障模型假设故障是永久性的,不会随时间变化。它不考虑时序,只考虑逻辑值。

我在项目中遇到过一件事:一个同事用stuck-at模型做测试覆盖率,覆盖率做到了99%,结果芯片流片回来还是有问题。为什么?因为stuck-at模型覆盖不了所有类型的故障。这就是为什么我们还需要其他模型。

2. transition 故障模型

transition故障,翻译过来就是“跳变故障”。它模拟的是信号从0变1或者从1变0时,速度太慢,导致在时钟沿到来时还没稳定。

嗯,这里要注意:transition故障是时序相关的。它不像stuck-at那样卡死不动,而是“反应迟钝”。

transition故障分两种:

  • slow-to-rise (STR):从0变1太慢
  • slow-to-fall (STF):从1变0太慢

为什么会这样?说白了就是晶体管的驱动能力变弱了。比如某个PMOS管老化,导致上拉电流不足,信号上升时间变长。

我建议你在做transition故障仿真时,一定要考虑两个向量:

  1. 初始化向量:把节点设置到初始状态
  2. 跳变向量:让节点发生跳变

举个例子:

// 检测节点X的slow-to-rise故障
// 第一步:把X设为0
// 第二步:施加一个让X从0变1的输入组合
// 第三步:在时钟沿采样,看X是否成功变到1

我的经验:transition故障的测试向量长度通常是stuck-at的2-3倍。因为你需要两个向量来检测一个故障。我曾经在一个项目中,为了覆盖所有transition故障,测试向量从原来的1000条增加到了3500条。

transition故障在深亚微米工艺下特别常见。我记得有一次,一个芯片在高温下工作正常,低温下却频繁出错。最后定位到是一条长互连线上的transition故障——低温下载流子迁移率变化,导致信号跳变速度变慢。

3. bridging 故障模型

bridging故障,就是“桥接故障”。它模拟的是两条信号线之间意外短路。

你想想看,芯片制造过程中,金属线之间可能因为颗粒、刻蚀残留等原因连在一起。bridging故障就是模拟这种情况。

bridging故障分两类:

  • AND桥接:两条线短路后,逻辑值取与
  • OR桥接:两条线短路后,逻辑值取或

为什么会有AND和OR的区别?这取决于驱动管的类型和工艺。CMOS工艺中,如果两条线都是强驱动,短路后通常表现为AND桥接;如果驱动能力不对称,则可能表现为OR桥接。

桥接类型 逻辑行为 典型场景
AND桥接 Vout = Va & Vb 两条强驱动线短路
OR桥接 Vout = Va | Vb 驱动能力不对称
反馈桥接 形成组合环路 输出反馈到输入

警告:bridging故障的仿真复杂度远高于stuck-at。因为你需要考虑所有可能的线对组合。一个1000条网线的设计,理论上就有近50万种桥接故障。实际工程中,我们通常只对物理相邻的线对进行桥接故障仿真。

我曾经遇到过一个案例:芯片在功能测试时一切正常,但在EMC测试中频繁复位。最后发现是两条相邻的地址线发生了桥接——它们物理上靠得太近,在电磁干扰下产生了耦合。这就是bridging故障的典型表现。

三种模型的对比与选择

好了,三种模型都讲完了。我们来做个对比:

模型 故障本质 是否时序相关 测试向量长度 覆盖率目标
stuck-at 节点卡死 ≥95%
transition 跳变太慢 ≥90%
bridging 线间短路 可能 ≥85%

我个人习惯的做法是:先用stuck-at模型做快速筛选,覆盖率做到95%以上;然后用transition模型覆盖时序相关的故障;最后用bridging模型做物理邻近故障的补充。这样三步走,基本能把大部分制造缺陷都覆盖到。

嗯,最后说一句:没有完美的故障模型。每种模型都有它的局限。关键是要理解它们的原理,然后根据你的设计特点和工艺节点,选择合适的模型组合。

核心总结:

  • stuck-at:最简单,最基础,适合做快速筛选
  • transition:考虑时序,适合深亚微米工艺
  • bridging:考虑物理布局,适合高密度设计
故障模型知识体系 故障模型 三大基础模型 stuck-at 节点卡死0/1 永久性故障 transition 跳变太慢(STR/STF) bridging 线间短路 AND/OR桥接 stuck-at → 快速筛选 transition → 时序覆盖 bridging → 物理邻近
专注资料整理