上周帮朋友看一块高速背板,叠层十八层,一对差分对从 L3 出来走了不到 80mm,中途换了四次层——L3 到 L7、L7 到 L11、L11 到 L15、L15 到 L17,前后一共八个过孔全挤在这一小段走线上。第一眼看过去我确实愣了几秒:高速信号换过孔本身不是禁忌,但在这么短的距离里连续换四次,等于往链路里硬塞了八个阻抗不连续点,还额外附赠四段长度各异的残桩。后来把 S 参数拉出来一看,18GHz 附近果然鼓起一个明显的凹陷,插入损耗直接掉下去两个多 dB,眼高跟着缩水。
这就是我想聊的事情:过孔对高速信号到底做了什么,换几次算多,什么时候必须上背钻,什么时候可以放过。我尽量不写成教科书,而是按我实际评审和调试的顺序拆——先建立物理图像,再算数字,最后讲怎么改。如果你正在做 10Gbps 以上的高速接口、PCIe、以太网、SerDes 或者背板设计,这篇里的估算方法和避坑点你应该都能直接用上。
1. 先把物理图像建立起来:过孔到底是个什么东西
1.1 过孔不是一根竖直导线,而是一堆寄生的集合体
很多人脑子里对过孔的印象就是"一根竖着的铜柱,把上下两层连起来"。这个理解在低速时代够用,到了几个 Gbps 以上就完全不够了。真实的过孔是一个三维结构:钻孔内壁的电镀铜筒、上下两端的焊盘、贯穿路径上被挖开的所有参考平面(反焊盘)、以及信号离开之后继续往下延伸的那截没人用的铜筒,也就是俗称的残桩(stub)。
这堆东西拆开看,每一部分都在偷偷改变信号看到的世界。铜筒和参考平面之间形成分布电容,铜筒自身有串联电感,残桩则是一个末端开路的传输线小分支,会在特定频率上谐振。更麻烦的是,这些参数不是固定的,板厚、孔径、焊盘直径、反焊盘尺寸、材料介电常数,任何一个变动都会把它们整体挪一遍。
我习惯把过孔看成一个"低通滤波器加一个谐振腔"的复合体。低频段它主要表现成一段电感偏大、电容偏小的传输线,阻抗通常比走线低一截;高频段残桩开始起作用,插入损耗出现周期性凹陷,回波损耗在同样的位置尖起来。理解这一点,后面所有的优化手段就都有落脚点了——要么改电容电感把阻抗拉平,要么把残桩砍短把谐振推到工作频段之外。
1.2 换层真正的代价:回流被迫重新找路
这是最容易被忽略、但在高速设计里最要命的一点。信号电流永远走一个环路,去路是你精心画的走线,回路就是紧贴走线下方的那层参考平面。当信号还是单端走线的时候,回流会自然地在参考平面上走一条和走线投影几乎重合的路径,因为那是电感最小的路径。
一旦信号换层,情况就变了。假设信号从 L3 换到 L7,L3 的参考平面是 L2,L7 的参考平面是 L6 或者 L8。信号从 L3 跳到 L7 的瞬间,回流也必须从 L2 跳到 L6。如果这两个参考平面之间没有一个就近的低阻抗通道——也就是回流过孔或者缝合电容——回流就只能绕着板子边缘找路,甚至穿过电源平面,绕出一大圈。
这条绕远的回流路径带来两个直接后果:环路面积急剧变大,辐射和对外界干扰的敏感度同时上升;同时环路上的寄生电感被放大,等效在信号路径上就是一段明显的感性突变,表现为上升沿变缓、过冲和下冲加剧。我在实际项目里见过不少"信号本身走线规则完全合规,但眼图就是不开"的案例,追到最后发现是换层处忘了打回流过孔。
所以判断一个换层点是否干净,我从来不是只看信号过孔本身,而是看它旁边有没有一个足够近的、连接前后两个参考平面的过孔或者电容。这个距离越近越好,经验上控制在 1mm 以内比较稳妥,能压到 0.5mm 当然更佳。
1.3 为什么"连续换多次层"比"换一次"难受得多
单次换层带来的不连续是可以被链路预算消化的,很多设计里一两个过孔根本不影响误码率。但连续换层是另一回事,它的问题在于多个不连续的效应会叠加,而且叠加得不线性。
首先,每次换层都引入一次反射。八个过孔就是八次反射,这些反射在时间上间隔很近,会在接收端互相叠加,形成比单次反射复杂得多的码间干扰。其次,不同换层点之间的走线段落很短,短到这些线段本身变成了过孔之间的耦合通道,过孔之间会通过这段短走线互相"看见",寄生耦合被放大。
第三点也是最隐蔽的:多次换层会把信号的能量散到不同的层间腔体里。信号在每一层都有一部分能量以平面谐振的形式泄漏出去,多个换层点等于在多个位置同时激励腔体。如果你的板子尺寸刚好在某个频率上和信号频谱对上,就会形成很强的平面谐振,反过来通过过孔耦合回信号路径,表现为某个频点上突然出现的吸收峰。
我在那块十八层板上看到的现象就属于这一类:四个换层点间隔很近,残桩长度分别对应 15GHz、18GHz、22GHz 附近的谐振,结果在 15GHz 到 20GHz 这段形成了一个很宽的损耗带,而这段频率恰好覆盖了该接口的主要能量分布范围。
2. 换一次过孔,信号具体损失了什么
2.1 阻抗不连续带来的反射
先看最基础的一项。由于过孔区域的电容明显大于普通走线、电感也偏大,它呈现的瞬时阻抗通常低于走线的特征阻抗。以一个典型的 1.6mm 板、12mil 钻孔、22mil 焊盘、32mil 反焊盘的结构为例,算出来的过孔等效阻抗大约在 40Ω 左右,而周围走线是 50Ω。这一下就是 20% 的阻抗落差。
信号遇到 20% 的阻抗突变,会有一部分能量被反射回去。反射系数 Γ = (Z2-Z1)/(Z2+Z1),代入 40 和 50,得到大约 -0.11,也就是 11% 的电压反射。听起来不算大,但这是单次的值。八个过孔叠加,最坏情况下反射能量的叠加可以接近 20% 到 30%,对应回波损耗恶化到 -12dB 甚至更差。
更值得关注的是阻抗不连续的空间尺度。如果过孔区域的长度远小于信号上升沿对应的空间长度,那么它主要表现为一个小电容,影响相对温和;一旦过孔区域长度和上升沿尺度可比,它就是一个实打实的传输线段,需要按阻抗匹配来对待。25Gbps 以上的信号,上升沿时间往往在 20ps 到 30ps 量级,对应空间长度只有几个毫米,而过孔区域的等效长度通常也有 1mm 到 2mm,已经不能简单当作集总元件处理了。
2.2 残桩的 λ/4 谐振,这是最狠的一刀
残桩是过孔问题里最需要单独拎出来讲的。所谓残桩,是指信号从某个内层引出之后,铜筒还继续往板子另一侧延伸的那一段。这段铜筒末端是开路的,等效于一段开路的传输线支节。
开路支节在四分之一波长处呈现短路特性,会把信号能量直接导走。对应到频域上,就是在谐振频率处出现一个很深的插入损耗凹陷,同时回波损耗急剧恶化。谐振频率的算法很简单:f_res = c / (4 × L × √εr),其中 c 是光速,L 是残桩长度,εr 是板材介电常数。
对于常见的 FR4 材料,εr 取 4.2,√εr 约等于 2.05。代入后可以简化成一个很好记的经验式:f_res(GHz) ≈ 36.6 / L(mm)。这是个非常实用的速算方式,我在评审现场经常掏出手机直接算。
残桩长度 1.5mm,谐振在 24.4GHz;2.0mm 对应 18.3GHz;2.5mm 对应 14.6GHz;3.0mm 对应 12.2GHz。注意这还只是谐振点,实际影响从谐振频率的三分之一左右就开始显现了。一个 2.0mm 的残桩,谐振在 18.3GHz,但从 6GHz 往上就已经能观察到损耗曲线的抬升和纹波。
这也是为什么厚板上的高速信号必须重视残桩。一块 3mm 以上的背板,如果信号从第一层走到中间层,残桩轻松超过 1.5mm,谐振点直接压到 20GHz 以内,对 25Gbps 以上的信号就是实打实的伤害。
2.3 串扰、平面腔体噪声与共模转换
上面讲的是单端视角,换成差分对之后还会多出几种损伤机制。
差分对的两根线如果过孔间距、反焊盘尺寸、到参考平面的距离不完全对称,那么两个过孔看到的不连续就不一样。这种不对称会把一部分差模信号转换成共模,共模信号在差分接收端是收不到的,全部变成损耗和辐射。同时差分对周围的共模还会通过参考平面耦合到邻近的其他差分对上,形成远端串扰。
过孔密度高的区域还有另一个问题:反焊盘在参考平面上挖出的洞。每个反焊盘都是一个穿过平面的大开窗,多个反焊盘排成一列,等于在平面的回流路径上打了一串洞。这些洞会阻断回流的横向流动,迫使回流绕行,局部电感上升,同时也让平面在这些位置形成腔体结构,容易在某些频点上谐振。
我实测过一个八过孔排成一列的背板区域,在 22GHz 附近出现了明显的平面谐振峰,用近场探头一扫,能量集中在过孔列的两侧。后来把信号过孔打散、中间插入回流过孔,谐振峰才被压下去。
2.4 损耗累积与眼图闭合
把上面这些效应合并起来看,对眼图的影响主要分三块。插入损耗下降直接压低眼高;回波损耗恶化带来的反射在时域上表现为码间干扰,让眼图的上边缘变得模糊,抖动增加;阻抗不连续处的多次反射还会在特定码型下形成确定性抖动。
我做过一次对比测试:同一段 60mm 的差分走线,版本 A 中间换两次层、残桩 2.0mm,版本 B 走同层不换层。在 25.78Gbps 下测出来的眼高差了大约 25%,眼宽差了将近 20%。如果把版本 A 的残桩用背钻压到 0.4mm,眼高能恢复到和版本 B 只差 6% 左右的水平。这个数字说明两件事:换层本身是可以接受的,残桩才是主要矛盾。
3. 不靠仿真也能估:我用的一套手算流程
3.1 三个基本公式
评审阶段不可能每个过孔都跑三维电磁仿真,太慢。我通常用三个公式快速估算,几分钟就能判断一个换层点要不要动。
第一个是残桩谐振频率,前面已经给过:f_res(GHz) ≈ 36.6 / L(mm),适用于 FR4 类材料。如果是低损耗或者高频板材,εr 一般在 3.0 到 3.6 之间,√εr 会小一些,同样的残桩长度谐振频率会更高,可以把系数换成 42 到 44 左右。
第二个是过孔电感,用的是经典的经验公式:
L_via (nH) = 5.08 × h × [ ln(4h/d) + 1 ] h:过孔长度,单位英寸 d:钻孔直径,单位英寸第三个是过孔电容:
C_via (pF) = 1.41 × εr × D1 × h / (D2 - D1) D1:焊盘直径,单位英寸 D2:反焊盘直径,单位英寸 h:参考平面之间的厚度,单位英寸有了 L 和 C,过孔的等效特征阻抗就是 Z = √(L/C)。虽然这个值只对集总近似有效,但用来做相对比较完全够用。
3.2 参数速查表:反焊盘尺寸怎么直接影响阻抗
下面这张表是我用 1.6mm 板厚、12mil 钻孔、22mil 焊盘、FR4 材料算出来的一组对比,目的是说明反焊盘对过孔阻抗的控制力有多大。
| 反焊盘直径 (mil) | 过孔电容 (pF) | 过孔电感 (nH) | 等效阻抗 (Ω) | 与 50Ω 的偏差 |
|---|---|---|---|---|
| 30 | 0.99 | 1.29 | 36.1 | -27.8% |
| 34 | 0.62 | 1.29 | 45.6 | -8.8% |
| 36 | 0.53 | 1.29 | 49.3 | -1.4% |
| 40 | 0.46 | 1.29 | 53.2 | +6.4% |
| 44 | 0.37 | 1.29 | 59.0 | +18.0% |
这张表里藏着一个很实用的结论:反焊盘每加大 4mil 左右,过孔阻抗大概上升 4Ω 到 7Ω。也就是说,如果你发现过孔区域阻抗偏低,第一手段不是改钻孔,而是先加大反焊盘。这是成本最低、改动最小的一招。
但反焊盘不能无限加大,加大的代价是平面被挖掉更多铜,回流路径更窄,同时过孔与过孔之间的耦合会增强。经验上,反焊盘直径控制在焊盘直径的 1.5 到 1.8 倍是比较舒服的区间,超过 2 倍就要小心了。
3.3 判断阈值:什么时候必须背钻
我把这些年的判断标准整理成了一个简单的表,用于快速决策。
| 信号速率 / 特征频率 | 残桩长度上限(建议) | 处理方式 |
|---|---|---|
| ≤ 5Gbps(奈奎斯特 ≤ 2.5GHz) | 3.0mm | 可不处理 |
| 10Gbps(奈奎斯特 5GHz) | 2.0mm | 走线尽量靠近表层 |
| 25Gbps(奈奎斯特 12.5GHz) | 1.0mm | 建议背钻或优化叠层 |
| 56G PAM4(奈奎斯特 14GHz) | 0.6mm | 必须背钻 |
| 112G PAM4(奈奎斯特 28GHz) | 0.3mm | 必须背钻 + 过孔优化 |
这张表的逻辑不是拍脑袋,而是让残桩的谐振频率至少落在信号主要能量分布的 2.5 倍以上。举个例子,56G PAM4 的奈奎斯特频率是 14GHz,能量主要分布在 1GHz 到 20GHz 左右,那么残桩谐振点最好推到 35GHz 以上,对应残桩长度约 1.05mm。考虑到实际板材偏差和工艺余量,一般要求压到 0.6mm 以内才放心,这就是必须背钻的来源。
反过来说,如果你的信号只有 10Gbps,奈奎斯特 5GHz,那么残桩谐振落在 12GHz 以上就基本够用了,对应 3.0mm 的残桩长度,一块 1.6mm 的板子上根本不存在这个问题。所以不是所有板子都要背钻,判断清楚比盲目堆工艺重要得多。
3.4 仿真与实测怎么配合
手算只能定性地判断"要不要动",具体动多少、动完之后剩多少余量,还是得靠仿真和实测。
我的流程一般是这样:先用二维场求解器把走线的差分阻抗和损耗曲线确认下来,作为基准;再用三维电磁仿真提取单个过孔和连续换层段的 S 参数模型;把这两者用通道仿真串起来,跑眼图和误码率。三维仿真不用做太精细,关键是几何模型要准确,尤其是残桩长度和反焊盘尺寸这两个参数,测错了整个结论就偏了。
实测环节,我建议至少准备两组测试板:一组走同层不换孔,作为参考;一组包含真实的过孔结构。两组对比才能把过孔的贡献单独分离出来。用矢量网络分析仪测 S 参数的时候,记得做去嵌,把测试夹具的影响剥掉,否则夹具的损耗会把过孔的影响盖住。
这里有个小经验:如果条件不允许做完整的测试板,至少可以做一组简单的时域反射测试,把 TDR 曲线拉出来看。过孔在 TDR 上表现为一段阻抗下陷,残桩则会在时间轴上更靠后一点的位置出现二次反射。看到二次反射的幅度超过主台阶的 10%,基本可以判定残桩需要处理。
4. 实操层面怎么改:降低过孔伤害的几件事
4.1 布局阶段:能少换就少换,但别为了少换而乱走
最有效的优化永远发生在布线之前。规划叠层的时候,我习惯先找出所有高速差分对,给它们分配尽量靠近的层,让整条链路最多换一到两次层。如果一对信号需要在 BGA 下方从内层出到表层,那这一对信号就应该共用同一组换层点,不要一个换在前面一个换在后面。
但"少换层"不能以牺牲走线长度为代价。我见过有人为了不换层,把走线绕了一大圈多走了 40mm,结果多出来的走线损耗比两个过孔还严重。判断原则是:一段 10mm 的普通 FR4 走线在 12.5GHz 的插入损耗大约是 0.3dB 到 0.5dB,一个优化良好的过孔大约贡献 0.1dB 到 0.2dB。也就是说,为了省一个过孔而多绕 10mm,是亏的。
还有一个细节:换层点要尽量集中,不要分散在链路各处。集中换层的好处是反射在时间上靠得很近,容易在通道均衡里被整体补偿;分散的反射间隔大,会在眼图上形成一堆难以处理的确定性抖动。
4.2 过孔几何参数怎么调
如果过孔已经存在,能调的参数其实就那几个,我按优先级排一下。
第一是反焊盘,前面算过,控制力最强,而且改版成本最低。把反焊盘从 30mil 调到 36mil,阻抗就能从 36Ω 提到接近 50Ω。
第二是钻孔直径。钻孔越小,铜筒越细,电感越大,阻抗越高。但钻孔小到一定程度,工艺成本会陡增,而且可靠性风险上升。我一般不建议为了电气性能把钻孔压到 8mil 以下,除非板厂明确支持并给出工艺能力证明。
第三是焊盘直径。焊盘越大电容越大,阻抗越低。在保证工艺余量的前提下,焊盘直径尽量取最小值,一般比钻孔大 8mil 到 10mil 就够了。
第四是过孔在走线上的位置。如果差分对必须换层,两个过孔要并排对称放置,间距保持一致,不要出现一个过孔靠前一个靠后的情况。非对称的过孔布局是共模转换的主要来源之一,我在实际调试中见过不少共模噪声就是从这里冒出来的。
4.3 背钻与残桩控制
背钻是目前最直接有效的残桩控制手段。原理很简单:在过孔压合完成之后,用一支直径略大的钻头从背面把多余的铜筒钻掉,只留下需要连接的那一小段。
背钻的关键参数是背钻深度和背钻钻头直径。背钻深度要控制得当,钻得太浅,残桩还剩一大截,白花钱;钻得太深,可能伤到需要连接的层,直接把网络钻断。板厂一般会给出背钻的能力精度,比如深度公差 ±0.1mm 到 ±0.15mm。我在写设计文件的时候,会明确标出目标残桩长度,并且留出至少 0.2mm 的工艺余量。
背钻钻头直径一般比原钻孔大 6mil 到 10mil。钻头太细,钻孔偏移会导致钻不干净;太粗,会加大反焊盘区域,影响旁边的走线。这个值要和板厂确认,不同厂家的能力差异不小。
还有一个容易被忽略的点:背钻之后,过孔在背钻面上的铜环会消失,如果这个过孔同时还要承担机械或者工艺定位的作用,需要提前和板厂沟通。另外背钻会增加成本,一般按过孔数量计费,所以不要全板无差别背钻,只对真正需要的过孔动手。
4.4 回流过孔与同网络过孔全覆盖
回流过孔的重要性前面已经讲过,这里说几个具体的做法。
每个信号换层点旁边,至少要放一个连接前后参考平面的过孔。如果前后参考平面是同一个网络,直接打过孔连起来;如果是不同网络,比如一个是地一个是电源,那就要在过孔附近放一个缝合电容,容值一般取 0.01μF 到 0.1μF,越小的高频特性越好。
间距方面,我的经验值是回流过孔到信号过孔中心距控制在 1.0mm 以内,能做到 0.5mm 更好。如果空间实在紧张,退一步的要求是回流过孔到信号过孔的距离不要超过信号上升时间对应空间长度的四分之一,对于 25Gbps 信号大约是 1.5mm。
差分对换层的时候,回流过孔要放在两个信号过孔的正中间,形成一个对称结构。这样两个信号看到的回流路径长度一致,不会引入额外的共模。
至于同网络过孔全覆盖,指的是在空间允许的区域,把过孔周围的铜皮与过孔用全连接方式连起来,而不是留出隔离环。这种做法在低速板子上很常见,但在高速板上要分情况:如果是地过孔,全覆盖能降低过孔电感,是好事;如果是信号过孔,全覆盖会加大电容,把过孔阻抗拉得更低,反而不好。所以判断标准很简单——看这个过孔是走信号还是走回流。
4.5 热焊盘连接方式:十字型和全连接的区别
很多板子上的过孔焊盘采用热焊盘设计,也就是用几根连接条把焊盘和周围铜皮连起来,中间留出隔离环,方便焊接散热。这个设计对高速信号来说是有代价的。
连接条本质上是一段段细窄的铜,每根都带不小的电感。用两根连接条(十字型中的对角两点)时,过孔的电感会明显上升;用四根连接条(十字型四方向),电感会下降一些;用全连接(整圈铜包围),电感最低,但散热和焊接工艺会受影响。
对于高速信号过孔,我的选择是优先用全连接或者至少四方向对称连接,避免用两根连接条。对于必须保留热焊盘的场景,比如大电流的电源过孔,那就按电源的载流需求来设计,电气上再做针对性优化。
至于七点或者更多点的连接方式,本质上是想在不牺牲工艺的前提下尽量降低连接电感,同时让电流分布更均匀。这种设计在电源过孔和地过孔阵列上比较常见,对于信号过孔,对称性比数量更重要——两根连接条如果不对称,会引入差模到共模的转换。
5. 常见问题与排查实录
整理成表更方便查阅,下面这些是我实际遇到频率最高的几类问题。
| 现象 | 可能原因 | 排查手段 | 处理方式 |
|---|---|---|---|
| 特定频点插入损耗凹陷 | 残桩谐振 | 手算 f_res 对比凹陷频率 | 背钻缩短残桩,或调整换层位置 |
| 眼图整体压低但无频响异常 | 过孔阻抗偏低 | TDR 看阻抗台阶 | 加大反焊盘,减小焊盘 |
| 共模噪声超标 | 差分过孔不对称 | 检查过孔间距和反焊盘 | 改对称布局,加回流过孔 |
| 平面谐振峰 | 反焊盘密集开窗 | 近场扫描定位 | 打散过孔,加缝合过孔 |
| 回流路径长导致过冲 | 缺回流过孔 | 查看换层处有无缝合孔 | 补回流过孔或缝合电容 |
| 背钻后网络开路 | 背钻深度过深 | 切片分析 | 调整背钻深度,留工艺余量 |
这里补充两点表里写不下的。
第一是排查顺序。遇到问题不要一上来就怀疑过孔,先确认走线阻抗和材料损耗是不是正常。我遇到过好几次,最后发现是板材参数设置错了,过孔背了黑锅。正确的顺序是先分层剥离——先算走线本身的损耗,再叠加过孔模型的损耗,对比实测,看差值出现在哪一段。
第二是背钻的验证。背钻效果不能只看设计文件,必须做切片。我一般会在板边专门放一组陪镀的过孔测试结构,和正式过孔同工艺,方便切片。切片要看三件事:残桩实际长度、背钻面的平整度、有没有钻到不该钻的层。这三项任何一项出问题,都要和板厂一起复盘。
另外还有一个细节:背钻之后的过孔残桩长度并不是均匀的,因为钻孔有锥度,靠近背钻面的残桩会短一些,靠里侧的会长一些。做仿真的时候如果用标称值,可能低估了最坏情况。我通常会在标称残桩长度上再加 20% 作为仿真输入。
6. 几条踩过坑才明白的经验
最后说几个我自己在实际项目里总结出来的、文档上一般不会写的点。
第一,过孔的数量不等于问题的数量,位置才关键。八个过孔排成一列,和八个过孔分散在链路各处,对信号的影响完全不同。集中换层反而更容易处理,因为反射点集中,通道均衡器能把它们当成一个整体来补偿。
第二,手算公式能解决八成的判断问题。很多工程师一上来就想跑三维仿真,结果建模花了三天,最后结论和手算十分钟得到的差不多。我的建议是先用公式筛一遍,把明显没问题的过孔直接放过,只对剩下的少数几个做精细仿真,效率能提高好几倍。
第三,别忽略工艺能力。我见过设计里把残桩目标定在 0.2mm,结果板厂工艺做不到,实际做出来 0.5mm,所有的仿真结论全部作废。定指标之前先问板厂,这句话值一次改版的成本。
第四,测试结构一定要预留。过孔优化是个迭代过程,第一版做出来不达标很正常。如果板子上没有预留陪镀过孔和测试点,第二版只能靠猜。我从那以后,每块高速板的板边都会留一组过孔测试结构,包含不同的残桩长度和反焊盘尺寸,方便回溯。
第五,换层点集中之后,要重新检查相邻过孔之间的串扰。过孔靠得近了,串扰会上升,尤其是差分对之间。这个问题在仿真里容易被忽略,因为很多人只建了一对信号的模型。我的做法是至少把换层区域附近的四对信号一起放进模型,看看串扰余量还剩多少。