第2章:信号完整性基础概念归纳总结

好,我们正式开始。在做RGMII接口的时候,信号完整性(SI)说白了就是保证信号从发送端到接收端不走样。你想想看,数据在PCB上跑,就像快递在高速公路上跑——路况不好、岔路太多、车距太近,都会丢包。

我做硬件这十几年,遇到过最头疼的问题就是:明明仿真时序裕量还有200ps,结果板子一上电就偶尔报错。后来发现是SI问题把余量吃掉了。所以这一章,我把最关键的基础概念拎出来,帮你把“坑”提前排掉。

2.1 传输线效应

信号频率高了,PCB走线就不能再看成一根理想导线了。它变成了传输线——有特性阻抗、有延时、还会有反射。RGMII的时钟频率是125MHz(DDR双沿等效250MHz),上升沿大概在0.5ns~1ns之间。这个频率下,走线长度只要超过1/6的上升沿电气长度,就必须考虑传输线效应。

经验法则:当走线长度 > (Tr / 2) * v(v=信号传播速度)时,必须端接匹配。对于FR4,1ns上升沿对应的临界长度约6英寸(15cm)。RGMII实际走线通常不超过6cm,所以很多项目把它当“准传输线”处理——不够长但够敏感。

2.2 特性阻抗与反射

传输线有一个固有属性叫特性阻抗Z₀。通常单端50Ω,差分100Ω。如果源端阻抗、传输线阻抗、负载阻抗三者不一致,就会发生反射。

反射系数公式:

Γ = (Z_load - Z₀) / (Z_load + Z₀)

举个例子,RGMII的接收端内部阻抗一般很高(>10kΩ),如果走线Z₀=50Ω,反射系数有多大?算一下:Γ = (10000 - 50)/(10000 + 50) ≈ 0.99。几乎全反射!

⚠️ 我曾经过一个设计:为了节省空间,把RGMII信号从顶层打孔换层到底层,结果阻抗突变跳了10Ω。测试发现时钟上出现过冲>3.6V(IO电压3.3V),直接打坏FPGA的BANK。后来不得不加了一对串联电阻。
常见阻抗失调场景与后果
场景 典型原因 后果
阻抗不连续 换层、过孔、线宽变化 反射噪声、过冲/下冲
开路端 接收端无端接 全反射,振铃严重
短线无端接 走线<临界长度 分布电容主导,边缘振铃

2.3 串扰

串扰是信号在相邻走线上“串”过去的干扰。RGMII是8位并行数据加上时钟和使能,十几根线并行走,间距要是小了,串扰能吃掉30%的时序裕量。

我习惯用3W法则:线间距 ≥ 3倍线宽。但实际项目里PCB空间经常被压缩,这时候就要靠包地、隔层参考或者拉大间距来平衡。

  • 容性串扰:平行走线间距不足,电场耦合
  • 感性串扰:返回电流路径差,磁场耦合
  • 近端串扰(NEXT):攻击信号上升沿在受害线上产生同向脉冲
  • 远端串扰(FEXT):耦合到远端的反向脉冲

对于RGMII这种并行同步总线,远端串扰最容易造成数据错位。我曾经碰到一个案例:D0和D1挨着走,D0的上升沿在D1上感应出400mV的尖刺,直接导致D1的建立时间不够——这种问题仿真能发现,但很多人没做全链路仿真。

2.4 上升时间与带宽

信号完整性里有个基本换算:BW ≈ 0.35 / Tr(Tr为10%~90%上升时间)。RGMII的Tr通常0.5ns~1ns,对应的带宽350MHz~700MHz。这个带宽决定了你要考虑多高的谐波频率。

很多工程师只看基频125MHz,觉得做PCB不需要太讲究。其实谐波能量能到700MHz,过孔的寄生电感、焊盘的寄生电容在高频下会严重退化信号质量。

核心认知:上升沿越快(Tr越小),信号包含的高频分量越多,SI问题越突出。RGMII接口的斜率控制(Slew Rate Control)就在干这件事——适当变缓上升沿,换取噪声余量。

2.5 时序裕量与SI的关联

RGMII的核心时序参数:

  • 建立时间(tSU):数据在时钟有效沿之前必须稳定
  • 保持时间(tHD):数据在时钟有效沿之后必须保持
  • 时钟抖动(Tj):时钟边沿的不确定性
  • 数据偏斜(Skew):数据线之间的相对延时差异

SI问题直接影响这三个参数:

  1. 反射引起的过冲会干扰接收器判断高低电平,压缩建立窗口
  2. 串扰会在数据线上叠加噪声,使保持时间变差
  3. 传输线延迟不一致造成偏斜,进一步吃掉裕量

你可以把时序裕量想象成一个水池,SI问题是池底的一个窟窿——流速不大,但一直在漏水。不做SI净化,水池迟早见底。

信号完整性核心概念关系图 信号完整性 (SI) 传输线效应 反射与阻抗 串扰 上升时间/带宽 RGMII 时序裕量 (Timing Margin) 四个基础概念共同作用,决定RGMII链路的时序裕量。其中反射和串扰对建立/保持时间的影响最直接。

2.6 本章知识对照表

概念 对RGMII的主要影响 典型应对措施
传输线效应 信号延时、边沿退化 控制走线长度、保持阻抗连续
反射/阻抗 过冲、下冲、振铃 源端串阻 + 接收端端接
串扰 数据偏斜、噪声叠加 3W法则、包地、减短平行段
上升时间/带宽 高频损耗、时序不确定 斜率控制、选择合适的驱动强度
一点建议:这些概念单独看都不难,难的是在同一个项目里同时处理好它们。我通常会在布局阶段就画出SI checklist——先排反射,再控串扰,最后核算时序——按优先级来,比瞎试瞎调靠谱得多。