地弹噪声对高速电路的影响 - 第2节
地弹噪声的物理根源:寄生电感与电流变化率
做高速电路这么多年,我越来越觉得,地弹噪声这东西,说白了就是一个「电感惹的祸」。你想想看,我们平时画PCB,铺铜、打过孔、走线,总觉得地就是地,电位应该是零。但现实很骨感——地线上有电流,电流一变,地电位就跟着跳。这就是地弹的物理本质。
我记得刚入行那会儿,调试一块DDR3板子,信号眼图怎么都打不开。折腾了两周,最后发现是地弹把参考电平给抬高了。从那以后,我养成了一个习惯:先看PDN,再看信号。
寄生电感:看不见的隐形杀手
任何导体都有寄生电感,包括你铺的那一大片铜皮。为什么?因为电流流过导体时,周围会产生磁场。磁场储存能量,这个能量对应的就是电感。
寄生电感的大小,主要取决于三个因素:
- 回路面积——电流路径围成的面积越大,电感越大
- 导体长度——线越长,电感越大
- 导体形状——细长比宽扁更容易产生电感
我给大家一个经验数据:一个标准的0402封装过孔,寄生电感大约在0.5~1nH。别小看这1nH,在高速电路里,它足以让你的地电位跳个几百毫伏。
关键公式:地弹电压 V弹 = L × dI/dt
其中 L 是寄生电感,dI/dt 是电流变化率。两者相乘,就是地弹的幅度。
电流变化率:高速电路的命门
为什么低速电路很少提地弹?因为dI/dt太小了。你想想看,一个1MHz的时钟,上升沿如果是10ns,电流变化率也就几十mA/ns。但到了DDR4、PCIe 4.0,上升沿可能只有100ps,电流变化率轻松突破1A/ns。
我做过一个测试:某款FPGA在同时翻转32个IO时,地弹峰值达到了800mV。什么概念?接收端的逻辑阈值可能只有几百毫伏,这一弹,信号直接判错。
影响dI/dt的因素有:
- 上升/下降时间——越快,dI/dt越大
- 同时翻转的IO数量——越多,总电流变化越大
- 负载电容——容性负载越大,充放电电流越大
避坑指南:我曾经在一个项目中,为了追求信号质量,把驱动器的驱动强度调到了最大。结果地弹反而更严重了。后来才明白,驱动强度越大,dI/dt越大,地弹越厉害。所以,驱动强度不是越大越好,够用就行。
电源分配网络(PDN)阻抗
PDN是什么?说白了,就是从电源芯片到芯片管脚之间,所有供电路径的总和。包括PCB走线、过孔、平面层、去耦电容、封装引线、键合线等等。
PDN的核心指标是阻抗。为什么阻抗重要?因为电流流过阻抗就会产生压降。如果PDN阻抗太高,芯片在抽取大电流时,供电电压就会掉下去。这个电压跌落,会直接反映在地平面上。
PDN阻抗的频域特性
PDN阻抗不是一条平直线,它随频率变化。我画了一张图,大家可以直观感受一下:
从图上可以看到,PDN阻抗在低频段主要由VRM(电压调节模块)决定,中频段由去耦电容决定,高频段则被寄生电感支配。而地弹噪声,恰恰发生在高频段——也就是寄生电感起主导作用的区域。
目标阻抗设计法
业界有个经典的设计方法叫「目标阻抗法」。什么意思?就是先定一个阻抗上限,然后确保PDN在全频段都不超过这个值。
目标阻抗的计算公式:
Z_target = (Vdd × Ripple%) / I_transient
举例:
Vdd = 1.8V,允许纹波 5%,瞬态电流 2A
Z_target = (1.8 × 0.05) / 2 = 45mΩ
也就是说,你的PDN阻抗在任何频率下都不能超过45mΩ。超过这个值,地弹就会超标。
注意:目标阻抗法有个前提——你知道瞬态电流有多大。很多工程师在这里翻车,因为实际瞬态电流往往比估算值大得多。我建议留出50%的余量。
同步开关噪声(SSN)与地弹的关系
同步开关噪声,英文叫Simultaneous Switching Noise,简称SSN。它和地弹是什么关系?
说白了,地弹是SSN的一种表现形式。当多个IO同时翻转时,每个IO的电流变化都会在寄生电感上产生压降。这些压降叠加在一起,就形成了SSN。
SSN的叠加效应
我给大家一个公式:
V_SSN = N × L × dI/dt
其中:
N = 同时翻转的IO数量
L = 单个IO路径的寄生电感
dI/dt = 单个IO的电流变化率
注意,这个公式是理想情况。实际上,不同IO的翻转时间有微小差异,电流波形也不完全一致。但趋势很明显——翻转的IO越多,SSN越大。
我做过一个实验,数据如下:
| 同时翻转IO数 | 实测地弹峰值(mV) | 信号抖动(ps) |
|---|---|---|
| 4 | 120 | 15 |
| 8 | 230 | 28 |
| 16 | 450 | 55 |
| 32 | 810 | 102 |
看到没有?从4个IO到32个IO,地弹涨了将近7倍。信号抖动也跟着涨。这就是为什么DDR总线要分组、要控制同时翻转的数量。
SSN的三种耦合路径
SSN不是只在一个地方出现,它可以通过三种路径传播:
- 共电源路径——多个IO共享同一个电源平面,电流变化互相影响
- 共地路径——多个IO共享同一个地平面,地弹通过地平面传播
- 电磁耦合——高频电流产生的电磁场,耦合到相邻信号线上
我记得有个项目,DDR4的地址线总是出错。查了半天,发现是数据线的SSN通过共地路径耦合到了地址线上。解决办法很简单——把地址线和数据线的参考地分开,中间加一条隔离地线。问题就解决了。
经验之谈:处理SSN,我一般从三个方向入手:
- 降低寄生电感——用更多过孔、更短路径、更宽走线
- 控制dI/dt——优化驱动强度、增加预加重、使用展频技术
- 隔离敏感信号——分组布线、加地隔离、使用差分信号
地弹与SSN的闭环关系
最后,我用一张图总结一下地弹和SSN的关系:
这是一个恶性循环。地弹导致信号质量变差,信号质量变差又导致更大的电流变化,电流变化又加剧地弹。所以,处理地弹问题,必须从源头切断这个循环。
我个人习惯,在设计初期就把PDN阻抗算清楚,把寄生电感压到最低。别等到板子打回来再改,那时候成本就高了。