Skew 从哪来?线长、工艺、温度、电压一个都跑不掉
做差分信号这么多年,我最常被问到的问题就是:「为什么我两根线明明画得一样长,测出来还是有 Skew?」
说实话,一开始我也以为是软件没算对。后来被实际波形教育了——Skew 的来源远比想象中复杂。线长只是最明显的一个,但绝不是唯一的「凶手」。
这一章咱们就把 Skew 的家底扒一扒。我按自己的习惯,把它分成四类:
- 线长不匹配 —— 最直接的源头,但有时候也是最容易解决的一个。
- 工艺偏差 —— 晶圆厂给的模型再准,也架不住产线上的随机波动。
- 温度变化 —— 你也许没注意,温度对 PCB 走线延迟的影响其实不小。
- 电压变化 —— 尤其是驱动端的供电电压,稍微抖一抖,输出延迟就变了。
这四个来源,单独拎出来每个可能只贡献十几皮秒。但叠在一起,尤其是在高速链路里,累积的 Skew 就足够让眼图闭合。你想想看,设计裕量本来就不多,再被这几位一闹,能不翻车吗?
核心认识:Skew 不是一根绳子上的结,而是多条绳子在不同节点打结。当我们说「长度匹配」,其实是在对抗所有来源的等效长度误差。
1. 线长不匹配:最直白,也最容易被低估
这个不用多说,P 和 N 两条走线物理长度不一样,电长度自然不一样。我记得刚入行那会儿,项目有一个 10Gbps 的差分对,自动布线绕来绕去,最后 P 线比 N 线长了 3.2mm。算下来 Skew 将近 20ps,眼图直接没法看。
但我想说的是——线长不匹配有时候不是「量出来」的。比如蛇形绕线,你看起来两边总长一样,但每个拐弯的等效长度跟直线不一样。拐角处的电场集中的影响,在高频下会变成额外的相位偏移。我曾经拿 VNA 测过一对走线,直尺量误差不到 0.1mm,但实际 Skew 到了 5ps。查了半个月,最后发现是一边拐了 6 个直角,另一边只拐了 3 个。
提示:绕线时尽量保持两边拐弯次数一致、拐弯类型一致。能用圆弧拐弯就别用直角,能用 45° 就别用 90°。
2. 工艺偏差:PCB 厂给你的板材,永远不是理想介质
你画好差分线,设好铜厚、介电常数、线宽线距,发到 PCB 厂。但实际压合后,玻璃纤维布的分布不均匀,局部介电常数会差 5%~10%。这对单根走线影响不大,但差分对的两条线如果恰好跨过不同的玻纤编织区域……嗯,就是 Skew 的来源。
我做过一个 25Gbps 的项目,板子回来怎么调都无法满足 0.5UI 的 Skew 裕量。后来切片分析发现,P 线正好压在玻纤束上,N 线压在树脂富集区。有效介电常数差了差不多 8%,算下来等效长度差相当于 1.5mm。**说白了,这才是隐藏的最深的一个坑。**
| 工艺偏差来源 | 典型影响量 | 对 Skew 贡献 (10mm 走线参考) |
|---|---|---|
| 介电常数波动 (±5%) | 延迟变化约 2~3% | 3~5 ps |
| 铜厚偏差 (±10%) | 阻抗变化影响延迟 | 1~2 ps |
| 蚀刻侧蚀不均 | 线宽差可达 2μm | 0.5~1 ps |
| 过孔孔径/深度偏差 | 寄生电容变化 | 2~4 ps |
这些数值看着不大,但叠起来轻松超过 10ps。所以在做高速设计时,我会尽量用低 Dk 波动板材(比如 Megtron 6 或类似材料),并且要求 PCB 厂在差分对正下方做玻纤编织方向对齐。这条件听起来苛刻,但对 10Gbps 以上的设计,成本换可靠性,值。
3. 温度变化:热胀冷缩不光是物理,还有电性能
温度对 Skew 的影响,很多时候被人忽略。咱们做仿真时大多用常温 25°C 模型,但实际设备在机箱里跑起来,板卡温度轻轻松松到 85°C,甚至更高。
温度对传输延迟的影响有两个机制:
- 介电常数温度系数:FR-4 的 Dk 随温度升高会增加,每 10°C 大约增加 0.003~0.005。60°C 温升下来,Dk 能涨 0.02 左右,直接让走线延迟变大。
- 导体电阻温度系数:铜的电阻温度系数大约 0.4%/°C。虽然电阻不直接影响延迟,但它会改变信号上升沿的「到达时间」——说白了,RC 变大了,过阈值点的时间往后拖。
关键是,差分对的两条线如果散热条件不一样(比如一条靠近散热孔,另一条挨着大功率芯片),两条线的温度差会导致 Skew 动态变化。我在一个项目中就遇到过:常温时 Skew 只有 3ps,高温老化到了 12ps,眼宽直接掉了一半。后来在热源附近加了一条 dummy 走线做均热才解决。
注意:如果你需要做宽温范围 (‑40°C ~ 105°C) 的设计,请务必在仿真中加入温度角,并且对差分对做热对称布局,不要厚此薄彼。
4. 电压变化:驱动器电源的纹波是 Skew 的「隐性杀手」
这个来源最容易忽略。很多人只考虑无源通道的 Skew,忘了有源器件本身也会产生 Skew。
具体来说,差分驱动器内部的 P 管和 N 管的开关延时对供电电压很敏感。当 VDD 波动时,CMOS 反相器的延迟大概会变化 0.5%~1% 每 1% 的电压变化。如果 P 线和 N 线的驱动级供电走线有压差,或者去耦电容的布局不对称,两条路径的延时就不一样。
我记得调试过一个 12.5Gbps 的收发器,发现 Skew 跟着码型在变——跑 PRBS7 和 PRBS31 结果不一样。最后用示波器抓电源纹波,发现 DDR 颗粒的同步开关噪声刚好耦合到了差分驱动器的供电上,导致输出延时来回跳。加了两个 0.1µF + 1µF 的组合去耦电容并调整位置后,Skew 稳定在了 5ps 以内。
这些来源怎么算总账?
实际设计中,你不可能把每个来源拆开算。我一般用「等效长度法」来做快速评估:
经验公式:总等效 Skew (ps) ≈ 线长差 (mm) × 6.7 ps/mm + 工艺裕量 5 ps + 温度裕量 3 ps + 电压裕量 2 ps
这个公式很糙,但配合仿真收敛,至少能给你一个「方向」。如果总 Skew 估算下来超过了预算,那就需要针对性优化——比如缩短线长差、换低 Dk 温度系数板材、或者加强电源滤波。