4. PCB层叠与阻抗控制对RGMII的影响

做RGMII验证的人,十有八九都会栽在PCB走线阻抗上。你想想看,250MHz的时钟,DDR双边沿采样,沿与沿之间只有2ns的间隔。阻抗一旦失配,反射回来的信号直接就把眼图砸烂了。我经手的板子里,至少有三块是因为层叠没规划好导致RGMII死活调不通。

4.1 层叠结构对信号质量的底层约束

先摆一个基本事实:RGMII的所有信号线,包括时钟、数据、控制,都必须有完整的参考平面。没有连续回流路径,差模噪声就会通过地弹耦合到时钟上。

  • 参考平面必须完整——不能跨分割,不能挖空,DDR区域的正下方不要铺其他电源层。
  • 走线层选择——表层走线(微带线)容易受电磁干扰,但调试方便;内层走线(带状线)屏蔽好,但过孔数量会增加,延迟控制更难。
  • 介质厚度——参考层与走线层之间的介质厚度直接影响特性阻抗。我习惯将RGMII组优先放在L2或L3层,这样离地平面更近,耦合更强。

一个小技巧:如果板厂报的阻抗容差超过±10%,你就要小心了。我在一个四层板项目里遇到过,板厂做的差分阻抗只有82Ω(目标100Ω),结果RGMII时钟上升沿被拉到了1.2ns,完全没法满足建立时间。

4.2 阻抗控制的工程参数

RGMII通常是单端走线,目标阻抗50Ω,差分对(如果有)100Ω。但实际设计里,很多人只盯着单端线宽,忽略了周围走线的串扰影响。

参数 典型值 容差 对RGMII的影响
单端特性阻抗 50Ω ±10% 超出范围→反射→眼图闭合
差分阻抗(如需要) 100Ω ±10% 共模噪声增大→时钟抖动
线宽变化 与板厂沟通 ±10% 阻抗偏移→过冲/下冲
介电常数(Dk) 4.2~4.5 ±0.2 传播延迟变化→建立/保持时间

你知道吗?介电常数每变化0.1,信号在50mm走线上的延迟差就有大约3ps。RGMII的维持时间($t_{hold}$)通常只有1ns左右,这3ps可能就决定了你的板子能不能跑。

4.3 我踩过的几个坑

第一个坑:跨参考层分割。有个项目把RGMII的TXD和TX_CLK布在了不同层,参考平面一个是地,一个是3.3V电源。结果时钟信号的回流路径变长,辐射噪声把旁边的RX_DV直接打翻。后来我强制所有RGMII信号走同一个参考层,问题才解决。

第二个坑:过孔阻抗不连续。过孔的寄生电容可能让阻抗瞬间掉到30Ω以下。你想想,一个50Ω的传输线中间突然串了个30Ω的“小坑”,反射系数接近0.25。我用TDR实测过,一个未经优化的大过孔能让眼高降低15%。

警告:不要为了省层数把RGMII全部走在表层。表层走线虽然阻抗好控制,但EMI风险非常高。我曾经因为顶层走线太长,实验室检测时RGMII时钟辐射超标6dB,被迫改板加了地屏蔽。

4.4 层叠阻抗与信号完整性仿真验证

仿真不是为了走形式。在投板之前,我至少会做两件事:一是用2D场求解器提取每一段走线的RLGC参数,二是插入S参数模型跑一下眼图扫描。下面这张图概括了从层叠设计到时序收敛的完整链路。

层叠阻抗 → 时序收敛 核心逻辑 层叠结构设计 参考平面 / 材料 / 线宽 阻抗控制 目标50Ω ±10% SI仿真 眼图 / TDR / S参数 眼图质量 眼高 / 眼宽 / 抖动 时序裕量 建立 / 保持时间检查 核心目标 保证眼图余量 >30%

我在实际项目中的做法是:先把层叠参数交给板厂做到±8%以内,然后用HyperLynx做一次完整的前仿真,找出过孔或分支的阻抗拐点。仿真通过后,再出Gerber。这样做下来,RGMII眼图的垂直张开度基本都能保持在250mV以上。

记住这个数字:RGMII时钟的上升/下降时间要求是0.4ns~0.8ns。如果仿真结果显示走线延迟偏差超过50ps,或者过孔阻抗低于35Ω,你就得回去改层叠或走线了。

4.5 阻抗测试的现场经验

板子回来了,怎么验收阻抗?用TDR(时域反射计)点测是最直接的。但我建议别只测厂家标注的那两根线,要随机抽测3~5条RGMII走线。我遇到过板厂只把靠近板边的线做好了,中间密布区走的线阻抗偏了15%。

如果你手头没有TDR,也可以打样收样后做一次带宽测试:用信号发生器灌一个500MHz方波,看接收端的波形边缘是否过冲超过20%。如果过冲明显,那阻抗十有八九没控好。

嗯,层叠和阻抗这部分讲到这里。记住一句话:RGMII的时序裕量,有一半埋在了层叠里。把参考平面搞定,把阻抗公差压到±8%以下,你的眼图大概率就能睁开。