2、SSN的数学建模:时域与频域模型、等效电路模型、RLC参数提取
好,咱们接着聊SSN。上一章我讲了SSN是怎么产生的,说白了就是一堆开关同时跳变,把电源轨道搞得鸡飞狗跳。那这一章,咱们得动点真格的了——用数学把SSN描述清楚。
你可能会问:搞那么复杂干嘛?直接加电容不就行了?嗯,我以前也这么想。直到有一次,我加了一堆电容,结果SSN反而更大了。为什么?因为没搞懂背后的数学模型。所以,咱们今天就把这个账算清楚。
2.1 时域模型:看SSN怎么“蹦”出来的
时域模型,说白了就是看SSN随时间怎么变化。我最喜欢用这个模型做第一轮分析,因为它直观。
先看一个最简单的场景:N个输出缓冲器同时翻转。每个缓冲器都会从电源拉一个瞬态电流。这个电流的波形,我习惯用一个梯形波来近似——上升时间、下降时间、保持时间,三个参数搞定。
单个缓冲器的电流波形可以写成:
i(t) = I_peak * [u(t) - u(t-tr)] * (t/tr)
+ I_peak * [u(t-tr) - u(t-td)]
+ I_peak * [u(t-td) - u(t-td-tf)] * (1 - (t-td)/tf)
看着有点复杂是吧?其实意思很简单:电流先线性上升,然后保持,最后线性下降。嗯,实际波形肯定没这么理想,但做初步估算够用了。
那N个缓冲器同时翻转呢?总电流就是N倍。但注意,这里有个坑——不是所有缓冲器都完全同步。我在项目中遇到过,芯片内部时钟树有偏差,导致翻转时间差了那么零点几纳秒。结果呢?峰值电流没叠加到N倍,但噪声持续时间变长了。这个后面再细说。
总电流I_total(t) = N * i(t),然后SSN电压就是:
V_SSN(t) = L_eff * dI_total(t)/dt + R_eff * I_total(t)
你看,SSN跟电流变化率直接相关。所以为什么高速设计里SSN那么头疼?因为信号边沿越来越陡,dI/dt越来越大。
关键结论:SSN的峰值电压主要取决于电源路径的电感L_eff和电流变化率dI/dt。电阻项R_eff*I贡献的是直流压降,不是噪声的主体。
2.2 频域模型:换个角度看问题
时域模型虽然直观,但有个问题——它没法告诉你“哪个频率的噪声最严重”。这时候就得请出频域模型了。
我个人习惯把SSN看作一个电流源激励一个RLC网络。在频域里,电源分配网络(PDN)的阻抗Z(f)决定了SSN的大小:
V_SSN(f) = I_total(f) * Z(f)
就这么简单?对,就这么简单。但难点在于Z(f)怎么算。
一个典型的PDN频域阻抗曲线,我把它分成三个区域:
| 频率范围 | 主导元件 | 阻抗特性 |
|---|---|---|
| 低频(<1MHz) | VRM + 大电容 | 容性,阻抗随频率下降 |
| 中频(1MHz-100MHz) | 陶瓷电容 + PCB寄生 | 先容性后感性,有谐振峰 |
| 高频(>100MHz) | 芯片封装 + 片上电容 | 感性为主,阻抗随频率上升 |
你想想看,SSN的频谱主要集中在哪里?对,高频段。所以高频段的PDN阻抗控制是重中之重。
我的经验:做频域分析时,别只看阻抗曲线的绝对值。要看阻抗峰值对应的频率是否跟你的数据速率或谐波重合。我曾经有个项目,DDR3跑1066MHz,PDN在533MHz有个谐振峰,结果每次读写操作都触发SSN超标。后来调整了去耦电容的布局,把谐振峰移到了1GHz以上,问题就解决了。
2.3 等效电路模型:把复杂问题简单化
好了,时域和频域都聊了,但实际做仿真时,我们不可能把整个PCB和芯片的每个细节都建模。这时候就需要等效电路模型。
我最常用的模型是π型模型和T型模型。拿一个典型的电源过孔来说:
π型模型:
┌───L───┐
│ │
C1 C2
│ │
GND GND
T型模型:
┌───L1/2───┬───L1/2───┐
│ │ │
C C C
│ │ │
GND GND GND
π型模型适合描述一个局部结构,比如过孔或焊盘。T型模型更适合描述一段传输线。具体用哪个?我一般看仿真精度要求。如果只是做趋势分析,π型就够了。如果要精确到皮秒级别,那就得上T型甚至更复杂的模型。
这里要提醒一点:等效电路模型里的R、L、C都不是常数。频率变了,它们也会变。尤其是电感,高频下由于趋肤效应和邻近效应,有效电感会下降。我吃过这个亏——用直流电感值去算高频SSN,结果仿真结果跟实测差了30%。
2.4 RLC参数提取:动手算一算
模型有了,参数从哪来?要么仿真提取,要么公式估算。我两种都用,但先讲公式估算,因为快。
电感估算:
一个微带线的自感,可以用这个公式:
L (nH/inch) = 5.08 * ln(2h/w + 0.5)
其中h是介质厚度,w是线宽。注意单位是英寸,nH。
但实际中,我们更关心回路电感。因为电流总是从电源出去,再从地回来。回路电感才是决定SSN的关键。回路电感L_loop = L_self + L_return - 2*M,其中M是互感。
注意:回路电感一定小于自感的两倍。因为电源和地平面之间的互感是正的,会抵消一部分自感。所以,把电源和地靠得越近,回路电感越小。这就是为什么现代PCB都用薄介质层做电源地平面。
电容估算:
平行板电容最简单:
C (pF) = 0.2249 * ε_r * A / d
A是面积(平方英寸),d是介质厚度(英寸),ε_r是相对介电常数。
但实际电容还有寄生电感。一个0402的MLCC,等效串联电感(ESL)大约在0.5-1nH。这个寄生电感在高频下会跟电容形成串联谐振,谐振频率f_res = 1/(2π√(LC))。超过谐振频率,电容就变成感性了,不但不去耦,反而引入噪声。
电阻估算:
直流电阻R_dc = ρ * L / A,这个大家都懂。但高频下要考虑趋肤深度δ = √(ρ/(πfμ))。当趋肤深度小于导体厚度时,交流电阻R_ac ≈ R_dc * (t/δ),其中t是导体厚度。
我建议你做个表格,把不同频率下的R、L、C值都列出来:
| 频率 | L_eff (nH) | C_eff (pF) | R_eff (mΩ) |
|---|---|---|---|
| 1 MHz | 2.1 | 100 | 5 |
| 10 MHz | 2.0 | 98 | 8 |
| 100 MHz | 1.8 | 85 | 25 |
| 1 GHz | 1.5 | 60 | 80 |
你看,频率从1MHz升到1GHz,电感下降了约30%,电阻却涨了16倍。这就是为什么高频SSN分析不能忽略电阻变化。
我的习惯:做RLC参数提取时,先用公式估算一轮,再用仿真工具(比如Ansys Q3D或SIwave)验证关键路径。公式估算能帮你快速定位问题区域,仿真则提供精确值。两者结合,效率最高。
2.5 小结:模型怎么选?
讲了这么多,你可能有点晕。到底该用哪个模型?我总结一下:
- 初步评估:用时域模型,看峰值噪声是否超标。公式简单,Excel就能算。
- 谐振分析:用频域模型,看PDN阻抗曲线有没有尖峰。需要仿真工具。
- 详细设计:用等效电路模型,结合RLC参数,做时域或频域仿真。这是最准的。
- 参数提取:先用公式估算,再用仿真验证。别偷懒,这一步决定了整个分析的精度。
下一章,我会讲怎么用这些模型去实际优化SSN。到时候咱们会看到,模型不是摆设,是真能帮你省下几轮PCB改版的成本。