电源完整性基础:PDN阻抗、去耦电容、电压波动分析
电源完整性,说白了就是保证芯片在任何时刻都能拿到它想要的电流。电压不能掉太多,也不能过冲。我早年做第一块高速板时,以为电源铺层够厚就行,结果一上电,FPGA内部逻辑到处报错。后来拆开一看,PDN阻抗在某个频率上飙到了10Ω——目标阻抗才0.1Ω。那一次我就记住了:PDN不是铜皮,是电阻、电感、电容串并联出来的网络。
PDN阻抗——你躲不开的频域曲线
PDN阻抗是从电源模块输出到芯片管脚看进去的等效阻抗。为什么关心它?因为芯片电流是变化的,每变化一次,PDN上就会产生压降:ΔV = Z(f) × ΔI(f)。Z越大,电压波动越大。
目标阻抗通常这样定:Ztarget = (VDD × 允许纹波%) / Imax。举个例子,1.2V电源允许3%纹波,最大电流10A,那Ztarget = 1.2×0.03/10 = 3.6mΩ。这就是那条红线——整个频域内阻抗都不能超过它。
表1:PDN各频段阻抗贡献来源
| 频段 | 主要贡献元件 | 典型频率范围 |
|---|---|---|
| 低频 (<200kHz) | VRM反馈环路、输出电容 | DC ~ 200kHz |
| 中频 (200kHz ~ 100MHz) | 体电容、陶瓷电容、PCB平面 | 200kHz ~ 100MHz |
| 高频 (>100MHz) | 封装电容、片上电容、裸片PDN | 100MHz ~ 几GHz |
去耦电容——PDN里的主力选手
去耦电容的本质就是个能量仓库。芯片突然要电流时,电容先顶上,等着电源环路慢慢补。但电容不是理想的,它有ESR和ESL。ESR给阻抗曲线加了个底,ESL把电容在高频变成电感。
我习惯把去耦电容分成三个梯队:
- 第一梯队:大电解 / 钽电容,10~100μF,负责低频段(<1MHz)。ESR较高,但ESL大,谐振频率低。
- 第二梯队:X7R/X5R陶瓷电容,0.1~10μF,覆盖1~50MHz。性价比最高,用得最多。
- 第三梯队:NP0/C0G陶瓷电容,100pF~0.1μF,怼到百MHz以上。ESR极低。
我曾经在一个DDR4项目中,体电容用了100μF×4,中频电容用了1μF×20,高频电容用了0.1μF×10。结果仿真发现2MHz附近有个大谐振峰,差点没压住。后来调整了电容值比例,把1μF换成4.7μF和0.47μF混搭,峰就削下去了。你想想看,不同电容的自谐振频率如果能错开,并联后的阻抗会更平坦。
表2:常见去耦电容参数(典型值)
| 类型 | 容值范围 | ESR | ESL | 自谐振频率 |
|---|---|---|---|---|
| 电解电容 | 10~1000μF | 几十mΩ~几百mΩ | ~10nH | 几十~几百kHz |
| 钽电容 | 1~100μF | 几十mΩ~百mΩ | ~5nH | 几百kHz~几MHz |
| X7R陶瓷(0805) | 1~10μF | 几mΩ~十几mΩ | ~1nH | 几~十几MHz |
| NP0/C0G(0402) | 1~100nF | 几mΩ | ~0.5nH | 几十~几百MHz |
电压波动分析——从频域到时域
PDN阻抗曲线做完了,就知道时域里电压会怎么跳。理论上,时域电压波动 = IFFT(PDN阻抗 × 电流频谱)。实际项目中,我更习惯用SIwave跑个瞬态仿真,直接看波形。
一个常见场景:芯片工作频率从低频切换到高频,或者突然使能大电流模块。这相当于给PDN一个阶跃电流。如果PDN阻抗在某个频率上有谐振峰,时域上就会表现为振铃,幅度可能超过允许纹波。
我调过一块GPU供电板,2.2MHz处阻抗超标1.8倍。仿真时域波形:电压跌了120mV,而设计要求只允许50mV。后来在谐振频率附近增加了两个不同位置的4.7μF电容,阻抗压下来了,波形也就稳了。嗯,验证没问题才发的板。
上图中,蓝色曲线是典型的PDN阻抗走势——低频低、中频抬升形成几个谐振峰、高频又靠封装电容压住。目标阻抗线(虚线)划定了底线。三个彩色区间分别代表三类去耦电容的“主场”:电解/钽管低频段,X7R/X5R管中频段,NP0/片上电容管高频段。
你做仿真时,重点关注峰值有没有超过目标阻抗。如果超过了,就在那个频率附近加合适的电容去压低。单个电容加完还可能产生新的反谐振,所以通常要一组一组迭代。我在CST里习惯先跑个“PDN阻抗扫描”,找到超标的频点,再到SIwave里加电容试,反复几次就稳了。