芯片故障模型:单粒子翻转、单粒子闩锁、时序故障与永久性故障
做功能安全测试这么多年,我接触最多的就是这四类故障模型。说实话,刚开始接触时我也觉得它们就是教科书上的几个名词。直到在项目中一次次被它们"教育"过,才真正理解了每个模型背后的物理本质和测试难点。
今天咱们就一个一个来拆解。我会结合自己的项目经验,把每个故障模型讲透。
单粒子翻转(SEU)
单粒子翻转,简称SEU。说白了,就是高能粒子打到芯片的存储单元上,把原本存着的0变成了1,或者1变成了0。
为什么会这样?你想想看,芯片里的SRAM、寄存器、锁存器,它们存储数据靠的是电荷。一个高能粒子打过来,瞬间产生大量电子-空穴对,电荷平衡就被打破了。于是,存储值就翻转过来了。
关键特征:
- 属于软错误,不会永久损坏器件
- 只影响存储单元(寄存器、SRAM、锁存器)
- 翻转后可以通过重新写入恢复
- 在深亚微米工艺下越来越常见
我记得有一次做ADAS芯片的测试,发现某个安全机制偶尔会误触发。排查了整整两周,最后定位到是SEU导致状态机跳到了错误状态。嗯,从那以后我对SEU的重视程度直接拉满。
我的测试建议:
SEU测试时,重点关注关键寄存器和安全状态机。我个人习惯用激光或α粒子源进行定点照射,这样能精确控制故障注入的位置和时机。
单粒子闩锁(SEL)
单粒子闩锁比SEU要危险得多。它本质上是一种寄生效应——芯片内部的PNPN结构被高能粒子触发,形成低阻抗通路,导致大电流流过。
你可以把它想象成芯片内部突然短路了。如果不及时断电,芯片会直接烧毁。
| 对比项 | SEU | SEL |
|---|---|---|
| 是否永久损坏 | 否(软错误) | 可能(需断电恢复) |
| 电流变化 | 基本不变 | 显著增大(mA→A级) |
| 恢复方式 | 重新写入 | 断电重启 |
| 测试难度 | 中等 | 高(有烧毁风险) |
我曾经在测试一款车规级MCU时,就遇到了SEL问题。当时电流从几十毫安瞬间飙升到3安培,电源保护直接跳闸。说实话,当时吓出一身冷汗。后来我们在设计中加入了电流检测和快速断电电路,才解决了这个问题。
避坑指南:
做SEL测试时,一定要在电源路径上加限流电阻或电子保险丝。我曾经见过有人直接怼大功率电源做测试,结果芯片当场冒烟。记住,SEL测试的第一原则是:保护被测器件。
时序故障
时序故障和前面两种不太一样。它不是由粒子直接引起的,而是由电路时序不满足要求导致的。
举个例子:一个组合逻辑路径的延迟是5ns,但时钟周期只有4ns。那么数据到达寄存器时,已经错过了采样窗口。结果就是——寄存器采到了错误的值。
时序故障通常分为两类:
- 建立时间违规:数据到达太晚,赶不上时钟沿
- 保持时间违规:数据变化太快,时钟沿还没采完就变了
你想想看,芯片在正常工况下时序是满足的。但温度升高、电压降低、工艺偏差这些因素叠加起来,时序裕量就会被吃掉。这就是为什么功能安全测试中要做"最差工况"测试。
测试要点:
时序故障测试的核心是"压榨时序裕量"。我常用的方法有两种:
- 降低供电电压(让门延迟变大)
- 提高工作频率(缩短时钟周期)
直到芯片出现错误,记录下此时的电压/频率边界。
永久性故障
永久性故障,顾名思义,一旦发生就不可恢复。这类故障通常由物理损伤引起。
常见的永久性故障包括:
- 桥接故障:两条信号线短路
- 开路故障:连线断裂
- 晶体管卡滞:管子永远导通或永远关断
- 电阻/电容退化:参数漂移超出规格
我记得有个项目,芯片在老化测试后出现了间歇性失效。排查了很久,最后发现是电源网络中的一条金属线发生了电迁移,电阻增大了10倍。这种故障在常温下测不出来,只有在高温大电流下才会暴露。
我的经验:
永久性故障测试,建议结合加速老化来做。比如高温工作寿命测试(HTOL)跑1000小时,中间每隔一段时间做一次功能测试。这样能有效暴露那些"隐藏"的永久性故障。
四种故障模型的关系
这四种故障模型不是孤立的。在实际芯片中,它们可能同时存在,也可能相互转化。
比如:一个SEU如果发生在安全关键路径上,可能触发系统进入错误状态,进而导致时序违规。再比如:多次SEL事件可能造成金属线损伤,最终演变成永久性故障。
所以做功能安全测试时,不能只盯着单一故障模型。我建议按照"故障模型-影响范围-检测机制"这个思路来设计测试用例。
这张图是我自己整理的故障模型分类体系。从上到下看,每个故障模型都有对应的故障性质和测试方法。做测试方案时,我习惯先确定要覆盖哪些故障模型,再选择对应的测试手段。
好了,四种故障模型就讲到这里。记住一点:没有完美的测试方案,只有不断完善的测试策略。每个项目都有自己的特点,关键是要理解故障的本质,然后针对性地设计测试。
公众号:蓝海资料掘金营,微信deep3321