高速串行链路挑战:信道损耗、串扰、反射与阻抗不连续

做 SerDes 这么多年,我见过太多板级联调翻车的案例。说到底,高速信号从发射端到接收端,一路上要经历三大劫:损耗、串扰、反射。这三兄弟不搞定,眼图大概率是闭的。今天咱们就逐个拆解。

信道损耗:信号还没到,先被“削”了一刀

信道损耗说白了就是信号在传输过程中能量衰减。你在发送端看到一个漂亮的方波,走完几十厘米的 PCB 走线,到接收端可能已经变成一个“小土包”。损耗主要来自两个物理效应:

  • 趋肤效应 —— 高频电流只在导体表面流动,相当于导线有效截面积变小,电阻增大。
  • 介质损耗 —— 电场在 PCB 板材中来回振荡,一部分能量被材料吸收并耗散成热。

我记得有一次调试 28Gbps 的背板,仿真时眼图余量很大,结果实测完全闭合。查了半天,发现是板材参数没矫正——FR4 的损耗因子在高速下比厂商手册差了 20%。嗯,从那以后我对板材数据只会参考,不会全信。

小技巧: 评估损耗时记住一个经验公式:
α_total = α_skin + α_dielectric
其中 α_skin ∝ √f,α_dielectric ∝ f。看斜率就能判断是哪种占主导。

串扰:隔壁邻居的“噪音”

你想想看,高速信号线间距有限,一根线跳变时产生的电磁场会耦合到旁边的线上,这就是串扰。根据耦合方向分成两类:

类型 全称 传播方向 典型特征
NEXT 近端串扰 与干扰信号同向返回 在近端测量,幅度大,持续时间长
FEXT 远端串扰 与干扰信号反向(远端) 在远端测量,与线长和耦合长度相关

我曾经在 12Gbps 的 SerDes 设计里遇到一个奇葩 bug:误码率始终降不下去,调试了一周。后来发现是相邻通道的 FEXT 耦合到接收端,而接收端内部的 DFE 收敛算法根本没考虑这种非对称耦合。解决方案很简单——在 layout 阶段把 victim 和 aggressor 的走线错开 3 个线宽,问题就消失了。

避坑指南: 串扰的幅度随频率升高而增大,尤其在 10Gbps 以上,NEXT 和 FEXT 的差模分量会直接摧毁眼图。我曾经见过一个项目在仿真时只看了单根线的 S 参数,量产之后才发现串扰导致批量退货。切记:必须跑多端口仿真,把耦合通道建进去。

反射与阻抗不连续:信号撞墙就反弹

反射是怎么发生的?信号在传播过程中遇到阻抗变化点,就像光线遇到折射率不同的介质——一部分能量被反弹。PCB 上常见的阻抗不连续点包括:

  1. 过孔 —— 孔径变化、焊盘多余、反焊盘过大,都会让阻抗突变。
  2. 连接器 —— 引脚和插座之间的阻抗很难完全匹配。
  3. 封装 —— 芯片内走线和基板之间的过渡区。
  4. 换层 —— 参考平面切换导致的回流通路不连续。

反射的直接后果就是信号完整性的“振铃”和“台阶”。我给你们看一个真实的调试记录:当时一块 25Gbps 的板子,接收端眼图的“眼皮”上有明显的台阶,我看一眼就知道是过孔引起反射。拿 TDR 一测,果然过孔阻抗掉到了 42Ω(目标 50Ω)。改成背钻工艺后,眼高提升了 40%。

这里有个关键点:反射系数 Γ = (Z_load − Z0) / (Z_load + Z0)。只要反射能量大于接收端能容忍的噪声容限,误码率就别想低。

核心逻辑:三大挑战如何联动

损耗、串扰、反射从来不是孤立工作的。它们会叠加:损耗让信号幅度变小,串扰注入额外噪声,反射制造码间干扰。最后眼图要么闭合,要么出现严重的“双线”。

高速串行链路三大挑战结构图 信号劣化 信道损耗 趋肤效应 (α ∝ √f) 介质损耗 (α ∝ f) 串扰 NEXT(近端串扰) FEXT(远端串扰) 反射与阻抗不连续 过孔 / 连接器 / 封装换层 Γ = (Z_load − Z0)/(Z_load + Z0) 链条效应 损耗让信号变小 串扰往里加噪声 反射造成码间干扰 → 眼图闭合

面试高频题: 信道损耗和串扰哪个对 25Gbps 以上的链路影响更大?我个人看法是——到了 32Gbps 以上,损耗是第一杀手,串扰是第二。但如果你用 PAM4 调制,串扰的容忍度比 NRZ 低 9.5dB,这时候反而要优先压串扰。