4. 电迁移(EM)原理:EM失效机制、Black方程、电流密度与温度的影响

电迁移,英文叫 Electromigration,简称 EM。很多刚入行的工程师觉得它就是个物理效应,离实际设计很远。我当年也这么想,直到有一次项目在可靠性测试阶段出了问题——芯片在高温老化箱里跑了不到 200 小时,电源网络就出现了短路。拆片分析后发现,是某条窄金属线上的铝原子被电子风“吹”走了,形成了一个小空洞。嗯,从那以后,我再也不敢小看 EM 了。

说白了,EM 就是金属原子在电流作用下发生的定向迁移。电流密度越大,温度越高,原子跑得就越快。最终结果要么是金属线断开(开路),要么是相邻线之间长出小丘造成短路。这两种失效,都会让芯片直接报废。

4.1 EM 失效机制:原子是怎么“跑”起来的?

先看一张图,帮你快速建立整体认知。

电迁移失效机制与关键影响因素 电迁移(EM)失效机制与关键影响因素 电子风(Electron Wind) 金属原子受电子碰撞获得动量 沿电子流方向定向迁移 空洞(Void)形成 金属线电阻增大 → 开路 小丘(Hillock)形成 相邻线间短路 电流密度 J(A/cm²)↑ 温度 T(K)↑ 金属材料(Al vs Cu) 晶粒结构、覆盖层应力 核心逻辑:电子风驱动原子迁移 → 空洞或小丘 → 最终导致芯片失效

这张图把 EM 的完整链条画出来了。从电子风开始,到原子迁移,再到两种失效模式,最后落到影响因素。你想想看,电流密度和温度就是加速器,它们越大,原子跑得越快,芯片寿命就越短。

具体到物理机制,是这样的:金属导线里的自由电子在电场作用下定向移动,形成电流。这些电子在移动过程中会与金属原子发生碰撞,把一部分动量传递给原子。当电流密度足够大时,原子受到的净力就会超过晶格束缚力,开始沿着电子流方向迁移。

原子走了,原来的位置就空了,形成空洞。空洞会减小导线的有效截面积,导致局部电流密度进一步增大,形成正反馈。最终,空洞连成一片,导线就断了。另一方面,迁移出去的原子在某个地方堆积起来,形成小丘。小丘可能刺穿层间介质,与相邻导线短路。

关键认知:EM 不是瞬间发生的,它是一个累积过程。芯片在正常工作条件下,EM 效应非常缓慢,可能几年都不会出问题。但温度和电流密度一上去,失效时间会指数级缩短。这就是为什么可靠性验证必须同时考虑功耗、温度和电流密度。

4.2 Black 方程:EM 寿命的定量模型

1969 年,IBM 的 James R. Black 提出了一个经验方程,用来预测金属导线的 EM 寿命。这个方程到今天仍然是业界标准。我个人习惯在项目初期就用 Black 方程估算一下关键路径的 EM 风险,心里先有个底。

Black 方程的标准形式如下:

MTTF = A * (J^(-n)) * exp(Ea / (k * T))

各参数的含义:

参数 含义 典型值 / 说明
MTTF 平均失效时间(Mean Time To Failure) 单位:小时。越大越好
A 材料与工艺相关的常数 由晶粒尺寸、覆盖层应力等决定
J 电流密度 单位:A/cm² 或 mA/μm²
n 电流密度指数因子 Al 工艺约 2,Cu 工艺约 1.1~1.2
Ea 激活能(Activation Energy) Al 约 0.7 eV,Cu 约 0.8~1.0 eV
k 玻尔兹曼常数 8.617 × 10⁻⁵ eV/K
T 绝对温度 单位:K(开尔文)

从方程里能看出两件事:

  • 电流密度 J 的影响是幂次的:J 翻倍,MTTF 变成原来的 1/2ⁿ。对于 Al 工艺(n=2),J 翻倍寿命变成 1/4。对于 Cu 工艺(n≈1.1),J 翻倍寿命变成约 1/2.1。所以 Cu 对电流密度的敏感度比 Al 低,这也是 Cu 工艺能承受更高电流密度的原因之一。
  • 温度 T 的影响是指数级的:温度每升高 10°C,MTTF 大约减半。这个规律在可靠性工程里叫“10°C 法则”。我曾在项目中遇到过,一个模块的 IR Drop 分析显示局部温度比预期高了 15°C,EM 寿命直接降到了原来的 1/3 左右。后来我们不得不加宽电源线来降低电流密度。

实战技巧:在做 EM 检查时,不要只看平均电流密度。要关注峰值电流和 RMS 电流。峰值电流决定瞬间 EM 风险,RMS 电流决定长期累积效应。我一般会同时检查这两个值,任何一个超标都不能放过。

4.3 电流密度的影响:为什么不能只看平均值?

电流密度 J 是 EM 分析中最直接的输入。但实际芯片里的电流分布非常不均匀。你想想看,一条电源线可能同时给多个标准单元供电,每个单元的开关活动不同,电流波形也千差万别。

这里有几个关键概念:

  • DC 电流密度:恒定方向的电流,比如电源网络中的静态漏电流。EM 效应最严重,因为原子始终朝一个方向迁移。
  • AC 电流密度:方向周期性变化的电流,比如时钟信号线。由于原子来回迁移,部分效应会相互抵消,EM 寿命比 DC 情况长得多。一般 AC 的 EM 寿命是 DC 的 10~100 倍。
  • 单向脉冲电流:方向不变但大小变化的电流,比如数据总线上的电流。EM 效应介于 DC 和 AC 之间,需要计算 RMS 值来评估。

在实际的 EM 检查流程中,我们会把电流波形分解成多个频率分量,然后用累加损伤模型(如 Palmgren-Miner 法则)来评估总损伤。这个过程很复杂,但 EDA 工具会自动完成。你需要做的是提供准确的功耗数据和温度分布。

注意:不要忽略电源网络中的 EM 双向性问题。在标准单元供电的电源轨(VDD/VSS)上,电流方向通常是单向的(从电源到地)。但在一些特殊结构,比如 IO 环、ESD 保护电路中,电流可能双向流动。我曾经因为忽略了 IO 环上的双向电流,导致 EM 检查结果偏乐观,后来在实测中发现了问题。

4.4 温度的影响:EM 的“放大器”

温度对 EM 的影响,比电流密度更可怕。因为它是指数关系。Black 方程里的 exp(Ea/(kT)) 项,温度每升高一点,寿命就断崖式下降。

举个例子:假设 Cu 工艺的 Ea=0.9 eV,工作温度从 85°C(358K)升到 105°C(378K),MTTF 的变化是多少?

MTTF_85 / MTTF_105 = exp(0.9 / (8.617e-5 * 358)) / exp(0.9 / (8.617e-5 * 378))
                    ≈ exp(29.2) / exp(27.6)
                    ≈ exp(1.6)
                    ≈ 4.95

也就是说,温度升高 20°C,寿命缩短到原来的 1/5。这个比例非常惊人。所以,在做 IR Drop 分析时,温度分布图比电压分布图更能反映 EM 风险。

我建议你在项目中这样做:

  1. 先跑一次全芯片的热仿真,得到温度分布图。
  2. 找出温度最高的热点区域(通常是高功耗模块附近)。
  3. 在这些热点区域,重点检查电源线的电流密度是否超标。
  4. 如果热点区域的 EM 余量不足,优先考虑降低局部温度(比如增加散热通孔、调整 floorplan),而不是盲目加宽电源线。

核心原则:EM 分析不能脱离温度单独进行。温度和电流密度是耦合的——电流密度大的地方焦耳热大,焦耳热又导致温度升高,温度升高又加速 EM。这是一个正反馈循环。好的设计要打破这个循环,要么降低电流密度,要么改善散热。

4.5 材料与工艺的影响:Al vs Cu

不同金属材料的 EM 抗性差异很大。早期芯片用铝(Al)工艺,现在主流是铜(Cu)工艺。两者的关键区别如下:

特性 Al 工艺 Cu 工艺
激活能 Ea 约 0.7 eV 约 0.8~1.0 eV
电流密度指数 n 约 2 约 1.1~1.2
熔点 660°C 1085°C
电阻率 2.65 μΩ·cm 1.68 μΩ·cm
EM 寿命(同条件下) 基准 约 10~100 倍
主要失效模式 晶界扩散主导 表面扩散主导

Cu 工艺的 EM 抗性明显优于 Al,但也不是没有缺点。Cu 的扩散速度在表面和界面处很快,所以需要良好的覆盖层(如 CoWP 或 Ta/TaN 阻挡层)来抑制表面扩散。如果覆盖层质量不好,Cu 的 EM 寿命可能还不如 Al。

我记得有一个项目,用的是某家代工厂的早期 Cu 工艺,EM 测试结果一直不达标。后来发现是 CMP 工艺导致 Cu 表面粗糙,覆盖层附着力不够。代工厂调整了 CMP 工艺参数后,EM 寿命才恢复正常。所以,工艺质量也是 EM 可靠性的关键一环。

4.6 实战中的 EM 检查流程

说了这么多理论,最后总结一下我在项目中实际执行 EM 检查的步骤:

  1. 收集输入数据:功耗分布(动态/静态)、温度分布、金属层工艺参数(J_max、Ea、n)。
  2. 运行 IR Drop 分析:得到每条电源线的电流密度分布。
  3. 设置 EM 规则:根据代工厂提供的 EM 极限值(如 J_max_DC、J_max_RMS、J_max_peak),设置检查阈值。
  4. 执行 EM 检查:逐层、逐段检查电流密度是否超标。重点关注 VDD/VSS 主干、电源开关、IO 电源环。
  5. 分析违规点:对于超标的位置,判断是电流过大还是线宽不足。结合温度分布,评估实际风险。
  6. 修复与迭代:加宽导线、增加通孔、调整电源网络拓扑、降低局部功耗或改善散热。

避坑指南:我曾经在检查一个 7nm 芯片时,发现某条电源线的 EM 违规。按照常规做法加宽了导线,但重新检查时违规依然存在。后来发现,问题不是线宽不够,而是这条线连接了太多高开关活动单元,导致 RMS 电流过大。最终我们通过调整单元布局、分散负载解决了问题。所以,EM 修复不要只盯着线宽,要看看负载分布是否合理。