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参数模型跑一下眼图扫描。下面这张图概括了从层叠设计到时序收敛的完整链路。
我在实际项目中的做法是:先把层叠参数交给板厂做到±8%以内,然后用HyperLynx做一次完整的前仿真,找出过孔或分支的阻抗拐点。仿真通过后,再出Gerber。这样做下来,RGMII眼图的垂直张开度基本都能保持在250mV以上。
记住这个数字:RGMII时钟的上升/下降时间要求是0.4ns~0.8ns。如果仿真结果显示走线延迟偏差超过50ps,或者过孔阻抗低于35Ω,你就得回去改层叠或走线了。
4.5 阻抗测试的现场经验
板子回来了,怎么验收阻抗?用TDR(时域反射计)点测是最直接的。但我建议别只测厂家标注的那两根线,要随机抽测3~5条RGMII走线。我遇到过板厂只把靠近板边的线做好了,中间密布区走的线阻抗偏了15%。
如果你手头没有TDR,也可以打样收样后做一次带宽测试:用信号发生器灌一个500MHz方波,看接收端的波形边缘是否过冲超过20%。如果过冲明显,那阻抗十有八九没控好。
嗯,层叠和阻抗这部分讲到这里。记住一句话:RGMII的时序裕量,有一半埋在了层叠里。把参考平面搞定,把阻抗公差压到±8%以下,你的眼图大概率就能睁开。