根因分析方法论:5Why分析法、鱼骨图、故障树分析、失效模式与影响分析
各位工程师朋友,大家好。我是你们的老朋友,一个在流片失败中摸爬滚打多年的芯片设计老兵。
今天咱们聊聊根因分析。说白了,就是芯片流片回来,发现有问题了,怎么找到那个「罪魁祸首」?
我见过太多团队,一上来就拍脑袋:「肯定是电源问题!」「不对,我觉得是时序!」结果折腾几个月,发现是某个库文件版本搞错了。嗯,这种冤枉路,我走过不止一次。
所以,掌握一套靠谱的分析方法,比什么都重要。下面这四种方法,是我个人习惯用的「组合拳」。你想想看,它们各有各的脾气,用好了,事半功倍。
1. 5Why分析法:追问到底
这个方法最简单,也最容易被低估。不就是问五个「为什么」吗?
但我在项目中遇到过,很多人问了两三个「为什么」就停了,觉得找到原因了。其实不然。
核心逻辑: 针对一个故障现象,连续追问「为什么」,直到找到根本原因。通常问五次,但次数不固定,关键是找到那个「可采取行动」的根因。
举个例子:
现象:芯片上电后,核心电压VDD_CORE只有0.6V,正常应该是1.0V。
为什么1?—— 因为LDO输出偏低。
为什么2?—— 因为LDO的反馈电阻分压不对。
为什么3?—— 因为反馈电阻R1的阻值比设计值大了20%。
为什么4?—— 因为BOM清单中R1的料号写错了,用的是高阻值型号。
为什么5?—— 因为BOM审核流程中,没有对关键电阻值做二次核对。
你看,到第五个「为什么」,我们找到了流程上的漏洞。这才是根因。如果停在第三个「为什么」,你只会换电阻,下次还会犯同样的错。
2. 鱼骨图(因果图):把问题「解剖」开
鱼骨图,也叫因果图。这玩意儿特别适合头脑风暴。当问题原因不明确,或者涉及多个方面时,用它来梳理思路,非常直观。
我曾经处理过一个芯片功耗异常的问题。团队里七嘴八舌,有人说工艺问题,有人说设计问题,有人说测试问题。吵得不可开交。
后来我画了一张鱼骨图,把「功耗异常」这个鱼头放在右边,然后画出几根大骨头:人、机、料、法、环、测(这是制造业常用的分类,芯片设计也适用)。
每根骨头上,再细分小骨头。比如「法」这根骨头下,有「时钟门控策略」、「电源域划分」、「工艺角选择」等。这么一画,大家就清楚了,原来问题可能出在「时钟门控策略」上。后来一查,果然是某个模块的时钟门控没做好,导致动态功耗翻倍。
3. 故障树分析(FTA):自上而下的「侦探」
FTA,听起来很学术,其实就像侦探破案。从最终的「故障事件」出发,一步步往下推,找出所有可能的原因组合。
它和5Why有点像,但更系统。5Why是线性追问,FTA是树状展开,而且能处理「与门」和「或门」的逻辑关系。
举个例子,芯片功能测试失败:
- 可能是「逻辑功能错误」(或门,只要有一个成立,故障就发生)
- 也可能是「时序不满足」(或门)
- 还可能是「测试向量错误」(或门)
然后每个分支再往下拆。比如「逻辑功能错误」下面,可能是「RTL代码bug」或「综合工具bug」或「后端物理实现错误」。这样一层层拆下去,直到拆到最基本的「底事件」。
我记得有一次,一个芯片的某个接口在高温下老是出错。我们用FTA一分析,发现「高温失效」这个顶事件,下面有两条路径:一条是「金属迁移」,另一条是「阈值电压漂移」。最后定位到是「阈值电压漂移」导致的,因为那个接口的驱动能力设计余量不足。
4. 失效模式与影响分析(FMEA):防患于未然
前面三种方法,都是「事后诸葛亮」。FMEA不一样,它是「事前诸葛亮」。在芯片设计阶段,就提前想好:哪些地方可能出问题?出了问题会有什么影响?有多严重?
FMEA的核心是三个指标:
| 指标 | 含义 | 评分(1-10) |
|---|---|---|
| 严重度(S) | 失效对系统的影响程度 | 1(无影响)~ 10(灾难性) |
| 发生度(O) | 失效发生的可能性 | 1(极低)~ 10(极高) |
| 探测度(D) | 现有手段能发现失效的概率 | 1(一定能发现)~ 10(极难发现) |
然后计算风险优先数(RPN):RPN = S × O × D。RPN越高,越需要优先处理。
我举个例子。在设计一个电源管理芯片时,我们做FMEA,发现「LDO输出过压」这个失效模式,严重度是9(可能烧毁后级电路),发生度是3(不太常见),探测度是8(很难在测试中复现)。RPN = 9×3×8 = 216,很高。
于是我们加了一个过压保护电路,把发生度降到了1,探测度也降到了2。RPN变成了18。你看,这就是FMEA的价值——在流片前就把风险扼杀在摇篮里。
一张图看懂四种方法的关系
下面这张SVG图,是我自己画的。它把这四种方法的关系和适用场景串了起来。你一看就明白。
这张图你看懂了吗?简单来说:
- 5Why 适合追查单一链条上的根因,比如某个电阻值错了。
- 鱼骨图 适合团队一起梳理,看看问题到底出在哪个大方向上。
- FTA 适合分析复杂系统,比如多个模块之间的交互失效。
- FMEA 是「预防针」,在设计阶段就把风险点找出来,提前打补丁。
我个人习惯,在流片前做一次FMEA,流片后如果出了问题,先用鱼骨图做头脑风暴,再用5Why或FTA深挖。这套组合拳打下来,基本上没有找不到的根因。
好了,这一章就到这里。记住,方法只是工具,真正重要的是你面对问题时的态度——不放过任何一个疑点,不轻易接受「可能是」这样的结论。嗯,下次咱们聊聊具体怎么用这些方法去分析一个真实的流片失败案例。