第4章 板上走线对时序的影响:长度、阻抗、过孔与拐角的实战解析
RGMII最让人头疼的,往往不是芯片本身,而是PCB上那几根看起来平平无奇的走线。我有个研发总监说过一句话,我一直记得:「能把RGMII走线排好的人,时序问题就解决了八成。」这话虽然夸张,但方向没错。
说白了,RGMII是双沿采样,数据在一个时钟周期内要翻转两次。走线稍微搞点小动作,时序窗口就缩小了,甚至直接失效。这章我们聊聊:走线长度、阻抗控制、过孔、拐角,这四个东西到底怎么影响时序。
4.1 走线长度偏差:等长,但不是的等长
RGMII的时钟和数据是源同步的,即时钟跟着数据一起从发送端出来。接收端用时钟的边沿去采样数据。所以,如果走线长度不匹配,时钟和数据到达接收端的时间就错位了。这就是最直接的时序问题。
我最早做RGMII设计时,看过一份参考设计,要求「时钟与数据的走线误差控制在±50mil以内」。当时也没多想,就照着做。结果板子回来,测出setup margin只有不到100ps,差点就挂了。后来细查,发现数据线之间也有偏差——其中一根比另一根长了近200mil。单个看都在范围里,但加起来就出事了。
1. 时钟与数据组之间的等长(通常要求≤±50mil)。
2. 数据组内各bit之间的等长(通常要求≤±20mil)。
比如8根数据线,最长的和最短的差异,不能太大。
为什么会这样?因为RGMII在接收端是用时钟的上升沿和下降沿分别采样两个数据。如果数据线之间偏差大,接收端看到的其实是「不同时刻」的数据,setup/hold时间自然就不够了。
走线延时计算公式很简单:
Tdelay = Tp * L
其中Tp是单位长度延时,通常FR4材质下约为160~180 ps/inch。所以1英寸的走线差异,就能带来160~180ps的延时差。而RGMII在DDR模式下,数据眼图的有效窗口通常只有几百ps。所以,走线长度偏差直接侵蚀的就是这个窗口。
4.2 阻抗控制:50Ω?其实你要的是连续性
很多人一说阻抗,第一反应就是「我要控制50Ω」。其实RGMII对单端阻抗的要求并不极端——45Ω到55Ω都能工作。真正要命的是阻抗的不连续。
什么叫不连续?比如走线从顶层换到内层,过孔的阻抗突变;比如走线经过一个狭窄的瓶颈,阻抗突然变低;比如有一段走线宽度变了,阻抗也跟着变。这些不连续点,会造成信号反射,导致振铃、过冲、下冲,直接破坏信号的眼图。
我做过一个项目,用的FPGA和PHY之间距离不到2英寸,按理说阻抗不是问题。但FPGA那边的参考层被几个大通孔挖空了,导致走线参考平面不完整,阻抗从50Ω飙到了70多Ω。结果眼图几乎闭了。后来把走线移到完整参考层上,眼图立刻就张开了。说白了,阻抗控制的本质是「连续性」,而不是「精确值」。
| 阻抗影响因素 | 典型影响 | 通常处理方式 |
|---|---|---|
| 走线宽度变化 | 突变点反射,形成振铃 | 保持走线宽度均匀,拐角处加圆弧 |
| 参考层缺失 | 阻抗升高,信号回路大 | 避免在走线下挖空参考层 |
| 过孔焊盘/反焊盘 | 容性突变,阻抗下降 | 优化过孔尺寸,增加回流地过孔 |
| 走线换层 | 延时突变,阻抗不连续 | 就近加地过孔,保持连续 |
4.3 过孔的影响:看似小事,实则大敌
不少工程师认为,一个过孔也就1~2ps的延时,忽略不计。但问题是,RGMII的时钟和数据通常不只在一个图层走——难免要换层。换层的地方就是过孔。
过孔的影响分两块:
- 延时偏差: 过孔的寄生电感会使信号通过时产生额外延时。如果时钟经过2个孔,数据经过3个孔,这种偏差在高速下就会体现出来。我个人习惯的做法:时钟和数据线经过的过孔数量尽量一致。
- 阻抗突变: 过孔的焊盘、反焊盘和stub都会导致阻抗变化。特别是stub——就是过孔中没用到的那段残桩,它就像一个天线,对着信号反射。
我记得有次调试一块板,时序margin老是飘忽不定。示波器测信号,发现时钟线上有一个明显的「台阶」状反射。查了半天,发现时钟线走的路径上换了两层,过孔stub长度加起来有50mil。后来把过孔换成背钻(back drill),去掉stub,反射就消失了。
- 时钟和数据线用过孔时,尽量使用相同的数量和类型。
- 过孔附近加回流地过孔,间距不要超过100mil。
- 如果层数多,尽量用埋盲孔或背钻来减少stub长度。
4.4 拐角与布线细节:直角走线真的不行吗?
这个问题的争议很大。理论上,直角走线会带来阻抗突变和额外的寄生电容。但在2~3层板、信号速率不高(比如RGMII的125MHz DDR模式,数据速率250Mbps)时,直角和圆弧的差异几乎测不出来。你想想看,信号的上升时间通常在几百ps,比拐角的电长度大得多,反射的能量自然就小了。
但为什么我仍然建议你尽量走圆弧或45°角?
- 制造角度: 直角走线的内角在蚀刻时容易变细,造成阻抗偏移。
- 一致性: 在一个复杂的走线网格中,混合使用直角、锐角和圆弧,各种阻抗不连续叠加到一起,就很难控制了。
- 习惯问题: 我见过一种情况,板子上一堆直角,制造师傅看了直接摇头。不是不能做,而是他们知道直角走线的设计通常意味着不够精细。
下面这张图总结了本章的核心逻辑:走线的物理结构如何一步步影响RGMII时序。
最后说一句:RGMII的走线,不需要追求极致,但一定要讲基本面。长度偏差不要超过50mil,参考层完整,过孔数量一致,拐角不搞突然变化。做到了这几点,时序问题就少了一大半。