4. 目标阻抗计算公式:从时域到频域推导
4.1 时域视角:瞬态电流与电压波动
做PDN设计,第一步要搞清楚一个问题:我们到底在对抗什么?
说白了,芯片在工作时不是一直安安稳稳吃电流的。它在不同时钟周期、不同指令下,电流会突然变大或变小。这种瞬态变化,就会让供电电压产生波动。
时域里,电压波动 ΔV 和电流变化 ΔI 之间是什么关系?
简单粗暴地写:ΔV ≈ Z × ΔI。这里的 Z 不是纯电阻,它是从芯片管脚往回看PDN的瞬态阻抗。但注意,这个 Z 不是常数,它跟时间、频率都有关系。
我在项目里试过直接用时域仿真去估电压跌落,结果发现波形又复杂又难看懂。后来我换了个思路——转到频域去看,反而清晰多了。
4.2 频域视角:为什么非要用阻抗?
你想想看,时域里 ΔV = Z × ΔI 中的 Z 如果是个常数(比如纯电阻),那很简单。但PDN里全是寄生电感、去耦电容、平面电容……这些东西的阻抗随频率剧烈变化。
所以,用频域阻抗曲线 Z(f) 来描述PDN的电气特性,才是最自然的方式。每个频率点上的阻抗,决定了那个频率分量电流所引起的电压波动幅度。
我个人的习惯是:把芯片的电流需求看作一个
- 直流分量(平均功耗)
- 交流分量(瞬态变化,包含多个频率成分)
直流分量不产生电压波动(纯电阻才产生压降,但那是另一回事)。真正影响电压波动的,是交流分量。
4.3 目标阻抗公式的推导
现在我们来做推导——从时域到频域,一步步来。
步骤1:定义电压波动约束
芯片允许的电压波动范围,通常用电源电压的百分比表示:
ΔV_max = Vdd × ripple_tolerance(比如5%)
例如 Vdd=1.0V,ripple_tolerance=5%,则 ΔV_max=50mV。
步骤2:定义最坏情况电流变化
芯片在某个时刻从低功耗切到高功耗,电流变化量 ΔI_max。这个值怎么来?
- 要么从芯片功耗模型得到(LDO/DC-DC输出电流跳变)
- 要么用最大负载电流减去最小负载电流
- 工程上常见:ΔI_max = I_max - I_min(比如0A到10A)
我记得有一次做服务器CPU的PDN,客户只给了总功耗,我说不行,必须给瞬态电流变化率,不然没法算目标阻抗。后来他们专门做了IR drop仿真,才拿到ΔI_max。所以,这个参数非常关键。
步骤3:从时域要求过渡到频域约束
最严格的约束是什么?
把 ΔI_max 看作一个理想阶跃电流,它的频谱覆盖从DC到很高频率。每个频率点上的电流幅度是 |I(f)|。但为了工程简化,我们采用最坏情况单频点近似:
|I(f)| ≈ ΔI_max × (某个因子,根据频谱形状)
更常用的做法是直接假设:在关键频率范围内,电流变化主要能量集中在某个频带,我们取等效电流为 ΔI_max。
于是,目标阻抗就是:
Z_target = ΔV_max / ΔI_max
这已经是工程界通用的目标阻抗计算公式了。
步骤4:考虑多频率成分(进阶)
你可能会问:ΔI_max 只在某个频率点出现吗?不是的。实际电流波形可能包含了多个频率的冲击。这时,我们需要保证:
Z(f) × |I(f)| ≤ ΔV_max ,对于所有关心的f
换句话说,目标阻抗曲线是一条水平线(Z_target 恒定),或者更精细地说,是一条包络线:
Z_target(f) = ΔV_max / |I(f)|
但工程上,为了简单,我们仍然用一个常数值 Z_target。
4.4 常见公式形式与对比
我在不同供应商、不同文献里看到过几种变体,本质相同但写法有差异。我列个表格给你参考:
| 来源 | 公式 | 说明 |
|---|---|---|
| 经典教科书写法 | Z_target = (Vdd × ripple%) / ΔI | ripple% 常用3~10% |
| Intel早期应用笔记 | Z_target = (Vdd × 0.05) / I_max | 假设ripple=5%,且ΔI ≈ I_max |
| IBIS/IEC标准推荐 | Z_target ≤ ΔV_noise / I_step | ΔV_noise来自噪声预算 |
| 实际项目最常见 | Z_target = (Vdd × tol) / ΔI_peak | tol通常取3%~5%,ΔI_peak由功耗场景给出 |
重点不在于背公式,而在于理解每个参数怎么定。我曾经见过一个团队直接拿芯片最大电流代入ΔI,算出来Z_target只有1mΩ,结果板子做出来成本极高。实际上,最大电流变化量往往只有最大电流的一半左右,要结合具体功耗序列去分析。
4.5 注意事项与工程经验
另外,公式中的ΔV_max不是简单的Vdd×5%。你还要考虑:
- DC IR drop占了多少裕量
- 片上电压调节器(VRM)的纹波噪声
- 温度老化带来的电压漂移
所有这些都要从总的电压预算里扣掉,剩下的才是允许PDN产生的瞬态波动。
时域约束条件 → 最坏情况电流变化 → 等效频域激励 → 阻抗约束公式
一句话:目标阻抗,就是允许的电压波动除以可能的最大电流变化。
下面这张图概括了从时域到频域推导目标阻抗的核心流程,你可以对照着看:
这张图把推导的七步走清楚了:先有时域电流变化和电压约束,通过傅里叶变换转到频域,再结合两点约束得到目标阻抗公式,最后用这个常数去约束全频段的PDN阻抗曲线。
4.6 最后再啰嗦两句
我见过不少新手拿到公式就直接套数字,但忽略了“ΔI_max”到底是多少。其实,这个 ΔI 最好通过芯片的功耗场景分析得到,而不是简单看最大电流。比如,一个核心从空闲切到满载,电流从1A跳到10A,ΔI=9A。但如果它从半载切到满载,ΔI可能只有3A。所以,要挑最恶劣的场景。
另外,公式里的ΔV也需要留点裕量。我习惯把总电压波动的50%分配给PDN瞬态,剩下的交给片上VRM纹波和温度漂移。这样做出来的设计才不容易翻车。