SIwave 电源完整性仿真建模:去耦电容布局优化方法论
电源完整性做到后几代 FPGA / ASIC 板,DDR4 1.2 V、SerDes 0.9 V 这种低电压大瞬态轨,靠"手册推荐 + 经验摆电容"已经压不住。SIwave 做 PI 仿真的价值不在出一张漂亮阻抗曲线,而在把电容组合 + 布局位置这两件事量化下来。下面这套流程在 8~16 层板、单轨 10–30 A 场景下验证过,一轮能把 Z 峰值压到 target 以下。
一、建模起步:VRM 和端口先锁对
SIwave 里新建工程 → Import ODB++/IPC-2581(Altium 导出的 .ipc 也行),板子进来先干三件事:
• VRM 建模:Sources → VRM,贴到 PMIC/LDO 输出端,内阻按 datasheet 的 load step 段取(常见 1–5 mΩ),别偷懒用理想电压源,否则低频段 Z 直接虚低。
• SINK 端口:在 BGA 电源球 / 负载 IC 的 decouple pin 上打 Port(Single Node),命名带轨名(如 VCCINT_SINK_01),后面看 Z(f) 就认得是哪颗。
• Layer Stack:介质 Dk/Df 按板材厂给的宽频值填,铜厚按实铜(含 plating)+ Surface Roughness(Huray 模型),10 GHz 以下偏差能压到 5% 内。
电容先别往版上放,Siwave 里用 Capacitor Browser 挂厂商 S 参数或 AVX/Kemet 的 .lib,ESR/ESL 不准的话后面 anti-resonance 峰全是假的。
二、第一轮:平面谐振扫,先找"空腔"
Analysis → Resonance Scan,频率拉到 3–5 倍目标频(DDR 轨一般扫到 2–3 GHz 够),看板子哪些区域电场强、哪些弱。典型现象:
• 电源/地平面对大开口处(BGA 下方挖空、连接器开窗)→ 谐振峰 400–800 MHz 冒头
• 电容阵列"留洞"区域 → 局部电场集中,后面 Z 曲线会在这个洞上翘
谐振扫结果用 Field Calculator 导出 E-field 云图,电容初版就往电场强区塞,比均匀排靠谱。
三、电容组合:按"容值阶梯 + 反谐振谷"配对
单轨电容别只堆 10 µF + 0.1 µF 老三样,SIwave 里看 Z-profile 会看到 10 µF 的 ESL(约 0.8–1.2 nH)和 0.1 µF 的 ESR 在 30–50 MHz 撞出 anti-resonance 尖峰。正确配比:
角色 容值 位置 作用频段
Bulk 100–470 µF 靠近 VRM 出口 < 1 kHz 负载阶跃
Mid 10–22 µF VRM → 负载中点 100 kHz–5 MHz
HF 0.1–1 µF + 10–100 nF 负载 BGA 背贴 / 扇出层 5–200 MHz
VHF 01005 10–100 pF 最贴近负载 pin > 200 MHz
SIwave 里用 Decoupling Analysis(Optimize → Capacitor Optimization),目标设 Target Impedance Ztarget = ΔV / ΔI(如 1.2 V / 15 A = 80 mΩ),工具会给你每颗电容的"贡献度"排行,垫底的可以删——删电容比加电容更能降 ESL,尤其 BGA 背面扎堆那几颗。
四、布局优化三个动作
1. Bulk 远离 BGA、HF 贴 BGA 背面:Bulk 的 ESL 大,放负载旁只会把高频段 Z 抬高;01005/0201 这种才值得钻到 BGA 扇出层、背贴 load pin。
2. 同容值别等距排队:等距排会形成"电容阵列谐振",SIwave 场图能看到周期性电场条纹——改成错位 + 大小混插,破坏阵列模式。
3. 换层过孔成对打:每个电容 GND 过孔必须和 VIA 配对 ≤ 0.5 mm,否则 ESL 直接翻倍,SIwave 看 Z 曲线 50 MHz 以上翘头就是这原因。
五、验证闭环
优化完跑 SYZ 参数提取(Analysis → SYZ Simulation),看 SINK 端口 Z(f):
• 全频段 Z < Ztarget ✅
• Anti-resonance 峰压到 Ztarget 的 70% 以下 ✅
• 瞬态:用 Nexxim 挂电流源做 time-domain,ΔV 对得上 spec ✅
# SIwave 命令行批量跑(Ansys Electronics Desktop 的 IronPython 环境)
oProject = oDesktop.GetActiveProject()
oDesign = oProject.GetActiveDesign()
oDesign.RunResonanceScan() # 平面谐振
oDesign.RunDecapOptimization() # 电容优化
oDesign.ExportResults("Z_profile.csv") # 导 Z 曲线
PI 优化的本质不是"电容越多越好",而是用 SIwave 把平面谐振、anti-resonance、位置 ESL 三件事量化出来,Bulk 守低频、HF 贴负载、中间段用优化器砍冗余。这套跑完,1.2 V / 20 A 这种轨,Z 峰值压到 50 mΩ 以内基本稳,比手册推荐值再留 30% margin 给量产。





