过孔建模(Via Modeling)— 高速PCB的信号完整性分析方法
理论与物理
过孔的结构与高频问题
老师,过孔就是电路板上的孔吧?只要能让电通过就行,为什么还需要电磁分析呢?
问得好。在低速(几百MHz以下)情况下,“打个孔镀上铜就能导通”确实就够了,但一旦进入GHz频段,情况就完全不同了。过孔筒(镀铜的圆柱部分)具有电感,焊盘与平面之间会产生电容。这个寄生LC会产生阻抗不连续。
阻抗不连续具体会造成什么不良影响呢?
当50Ω的走线在过孔处突然变成40Ω或60Ω时,信号会在该边界处发生反射。就像水流从粗水管突然进入细水管会反弹一样。反射的信号会返回发射端,扰乱波形,并导致接收端的眼图闭合。对于DDR5内存的5.6Gbps(奈奎斯特频率2.8GHz)或PCIe 6.0的32GT/s(PAM4)来说,每个过孔的阻抗管理都关系到整个系统的成败。
诶,一个过孔影响就这么大吗?电路板上不是有成百上千个过孔吗…
是的,所以在现代SI(信号完整性)设计中,重要网络上的所有过孔都需要用3D FEM提取S参数并进行验证。分解过孔的结构,包含以下要素:
- 过孔筒:镀铜的圆柱孔。寄生电感的主要来源
- 焊盘:过孔上下两端的焊盘。与走线的连接点
- 反焊盘:在过孔穿过的平面层上开设的开口。决定电容
- 残桩:信号未使用的过孔筒剩余部分。谐振的元凶
- 筒壁:铜镀层厚度。影响导体损耗和趋肤效应
过孔阻抗的理论公式
过孔的阻抗有计算公式吗?
可以用同轴传输线模型来近似。将过孔筒视为内导体,反焊盘内壁视为外导体。首先看电感:
$h$:过孔筒长度 [m]、$d_{\text{anti}}$:反焊盘外径 [m]、$d_{\text{via}}$:过孔筒外径 [m]
典型值大概是多少呢?
例如,筒长 $h$ = 1.6 mm,过孔径 $d_{\text{via}}$ = 0.3 mm,反焊盘径 $d_{\text{anti}}$ = 0.7 mm 时,计算得 $L_{\text{via}} \approx 270$ pH。在10 GHz下的电抗是 $\omega L \approx 17\,\Omega$ —— 相对于50Ω传输线来说相当大吧?
接下来看电容。焊盘与平面之间的电容为:
$d_{\text{pad}}$:焊盘外径、$d_{\text{drill}}$:钻孔孔径、$t$:介质层厚度、$\varepsilon_r$:相对介电常数
从这个寄生LC可以估算过孔的特性阻抗:
单位: [$\Omega$]。典型值约为25〜45Ω,往往低于50Ω走线
原来如此,也就是说因为过孔的阻抗达不到50Ω所以会反射!那么增大反焊盘直径就能提高阻抗吗?
没错!但是反焊盘开得太大,会在平面上留下大洞,导致回流电流绕行,同时也会恶化电源平面的阻抗。所以需要用FEM来寻找最优值。
残桩谐振与背钻
我常听说“残桩”是过孔的一个问题,具体会发生什么呢?
这是高速设计中最严重的过孔问题。例如,在16层板中,信号从L1(表层)切换到L4(内层第4层)。过孔贯穿L1到L16,所以L4到L16的筒体部分是信号不使用的“死胡同”——这就是残桩。
残桩表现为开路端的传输线。当信号在残桩末端(开路端)全反射并返回的时间与信号的半波长一致时,就会发生谐振。谐振频率为:
$c$:光速($3 \times 10^8$ m/s)、$L_{\text{stub}}$:残桩长度 [m]、$\varepsilon_{r,\text{eff}}$:有效相对介电常数
能用具体数字说明一下吗?如果板厚1.6mm,残桩1.2mm会怎样?
我们用FR-4($\varepsilon_r \approx 4.0$)来计算一下。设 $\varepsilon_{r,\text{eff}} \approx 4.0$:
$f_{\text{stub}} = \frac{3 \times 10^8}{4 \times 1.2 \times 10^{-3} \times \sqrt{4.0}} = \frac{3 \times 10^8}{9.6 \times 10^{-3}} \approx 31.3\,\text{GHz}$
31 GHz——对于PCIe 5.0(16 GHz带宽)来说看起来没问题吧?但实际上三次谐波($3f = 94$ GHz)也会成为问题,而且在有损耗的介质中,从更低的频率开始插入损耗就会逐渐增加。即使是DDR5的5.6Gbps,如果残桩长度超过0.8mm,S21也会出现-3dB以上的凹陷,导致眼图无法张开。
解决这个问题的方法就是“背钻”吗?
是的。背钻是从背面用大直径钻头物理切除残桩部分的加工工艺。理想情况下希望残桩为零,但由于制造公差,通常残留残桩长度为100〜200 μm(残桩长度公差 ±50 μm)。这个残留残桩仍然会谐振,但谐振频率会高得多:
$L_{\text{stub}} = 150\,\mu\text{m}$ 时,$f_{\text{stub}} = \frac{3 \times 10^8}{4 \times 150 \times 10^{-6} \times 2} = 250\,\text{GHz}$
250 GHz的话,对于目前的任何信号速率都不会成为问题。因此背钻深度的管理至关重要,需要用3D FEM对残桩长度进行参数扫描来确定允许值。
反焊盘设计与回流路径
反焊盘的大小如何决定呢?刚才您说“太大也不行”对吧。
反焊盘的尺寸选择是SI(信号质量)和PI(电源质量)之间的权衡:
| 反焊盘直径 | SI(信号质量) | PI(电源质量) | 串扰 |
|---|---|---|---|
| 小(钻孔径+0.15mm) | △ 电容过大,Z降低 | ○ 平面连续性良好 | ○ 对相邻过孔干扰小 |
| 中(钻孔径+0.25mm) | ○ Z ≈ 45-50Ω | ○ 可接受范围 | ○ 平衡良好 |
| 大(钻孔径+0.40mm以上) | ○ 电容小,Z升高 | × 平面上开大孔 | × 与相邻过孔耦合增大 |
在实际工作中,通常将反焊盘直径作为参数进行FEM分析,采用使过孔的S11(反射)低于-20 dB的最小直径。也有使用非圆形反焊盘(椭圆形或跑道形)来控制差分过孔对耦合的技术。
回流路径不连续的物理原理
“回流路径不连续”具体会发生什么?我听说信号通过过孔换层时,回流电流会遇到麻烦…
在高频下,回流电流会走阻抗最小的路径——也就是说,它会像“影子”一样在紧邻信号的接地平面上流动。但当信号通过过孔切换到另一层时,回流电流的平面也需要切换。如果两个平面是同一网络(例如:都是GND),则可以通过旁路电容或平面间电容连接;但如果网络不同(从GND到VDD),回流电流就会无处可去。
无处可去的回流电流被迫绕远路,这个环路会像天线一样产生电磁辐射(EMI)。要定量评估这一点,必须进行包含过孔周围接地过孔配置和平面结构在内的3D FEM分析。
原来如此!所以要在信号过孔旁边紧挨着打接地过孔对吧?
没错。最佳实践是在信号过孔 $\lambda/20$ 以内(10 GHz时约1.5mm以内)配置GND过孔。对于差分对,通常在两个信号过孔两侧配置4个GND过孔,形成“围栏”结构。
“区区过孔”导致10万美元改版费的故事
某服务器制造商在设计DDR4-3200电路板时,曾忽略了BGA正下方过孔的残桩谐振。8层板的L1-L3间过孔残留了5层厚的残桩,谐振频率约为18 GHz。DDR4-3200的数据速率是3.2 Gbps,所以认为即使是5次谐波的8 GHz也还很远,但实际上,残桩的介质损耗引起的宽频带插入损耗增加成了问题。增加背钻工序导致量产电路板每片成本上涨2美元,数十万片的批量产生了巨大的额外费用。如果在设计阶段运行一次3D FEM,这个错误本可以避免。
过孔的等效电路模型(详细)
- 过孔筒的电感 $L_{\text{via}}$:由同轴传输线模型推导得出。与筒长成正比,与反焊盘径/过孔径比值的对数成正比。典型值为 0.15〜0.3 nH/mm。在GHz频段,$j\omega L$ 会成为数Ω的串联阻抗,相对于50Ω传输线不可忽视。
- 焊盘-平面间电容 $C_{\text{pad}}$:由焊盘面积和介质厚度决定的平行板电容器。存在于每个平面层,总计约50〜200 fF。电容过大会导致过孔阻抗降低。
- 筒体的电阻 $R_{\text{via}}$:直流电阻为数mΩ,但在GHz频段,由于趋肤效应,电流会集中在趋肤深度 $\delta = \sqrt{2/(\omega\mu\sigma)}$ 的范围内,导致有效电阻增大。10 GHz下铜的 $\delta \approx 0.66\,\mu$m。
- 互感 $M$:相邻过孔间的相互耦合。在BGA下方的过孔阵列中,大量过孔密集排列,$M$ 会成为串扰的原因。
理论公式的适用限制
- 同轴模型的限制:仅当反焊盘为均匀圆形时,过孔筒才完全表现为同轴传输线。实际电路板中各层的反焊盘直径不同,因此需要3D FEM
- 非圆形焊盘:对于椭圆、长圆焊盘或泪滴形状,解析公式不适用
- 高频下的介质损耗:FR-4的 $\tan\delta$ 具有频率依赖性(如Djordjevic-Sarkar模型等),使用单一的$\varepsilon_r$不准确
- 趋肤效应:超过10 GHz时,铜筒表面的粗糙度(Rz)会超过趋肤深度,需要Hammerstad-Jensen修正或Huray粗糙度模型
数值解法与实现
基于3D FEM的S参数提取
过孔分析具体是怎么做的呢?像结构分析那样划分网格然后用FEM求解吗?
基本流程是这样,但与结构分析有很大不同。电磁场分析需要求解麦克斯韦方程组。过孔的3D FEM分析中最常用的是频域FEM。在每个频率点求解以下矢量波动方程:
$k_0 = \omega/c$:自由空间波数、$\varepsilon_r^* = \varepsilon_r (1 - j\tan\delta)$:复相对介电常数
结构分析的FEM使用基于节点的形函数,而电磁场FEM使用边单元(Nedelec单元)。边单元能自动保证电场切向分量的连续性,并排除节点单元中出现的伪模式(非物理的虚假本征模式)。
S参数是怎么计算的呢?
在过孔的入口和出口设置波端口,根据各端口的入射波和反射波之比计算S参数。对于2端口情况:
- $S_{11}$(反射):端口1入射波的反射。目标为 $|S_{11}| < -20$ dB
- $S_{21}$(插入损耗):从端口1到2的传输。目标为 $|S_{21}| > -1$ dB(损耗在1 dB以内)
- $S_{12}$, $S_{22}$:对称结构下 $S_{12} = S_{21}$, $S_{22} = S_{11}$
对于差分对,则使用4端口(或混合模式)S参数,评估 $S_{dd21}$(差分插入损耗)和 $S_{cd21}$(模式转换)。
过孔周围的网格策略
过孔周围的网格划分看起来很难啊。圆柱形,而且筒壁的铜镀层也很薄…
过孔的网格划分确实是CAE初学者的难点。我们来整理一下要点:
| 区域 | 推荐网格尺寸 | 理由 |
|---|---|---|
| 过孔筒壁(铜) | $\leq \delta/3$(趋肤深度的1/3) | 解析趋肤效应引起的电流集中 |
| 反焊盘-焊盘间的介质 | $\leq \lambda/20$(最高频率的1/20波长) | 捕捉电场的空间变化 |
| 筒体内部(空气/树脂填充) | $\leq$ 筒径/5 | 内部电场分布的精度 |
| 平面层(远处) | 过孔径的3〜5倍 | 降低计算成本 |
对于像HFSS这样支持自适应网格的求解器,将初始网格设置得较粗,让求解器自动细化通常更高效。收敛标准通常为 $\Delta |S| < 0.01$(S参数变化在1%以内)。通常经过3〜5次自适应迭代即可收敛。
なった
詳しく
報告