4. Skew的来源分析:PCB布线差异、芯片工艺、温度电压
做D-PHY deSkew校准,第一步不是调代码,而是搞清楚——skew到底从哪冒出来的?
我记得刚接手一个CSI-2项目时,板子上线速只有1.2Gbps,但眼图已经塌了一半。我翻来覆去查了半天,最后发现是PCB布线惹的祸。从那以后我养成了一个习惯:拿到一块板子,先不急着测眼图,先把skew的几个“老熟人”过一遍。
说白了,lane之间的skew就三个根:PCB布线差异、芯片工艺偏差、温度与电压变化。下面一个一个拆开聊。
4.1 PCB布线差异——最容易被忽略的“隐形杀手”
PCB上的差分走线,按理说应该等长等宽、过孔一致。但实际项目中,能做到完美等长的板子我几乎没见过。你想想看,一块多层板光走线绕来绕去,四个lane长度差个几十mil是常事。
我在一个项目里遇到过:CLK lane比DATA0长了大概20ps的走线,结果deSkew根本调不过来——因为物理长度差已经超过了校准范围。后来只能改板子。
PCB布线造成skew的主要原因有以下几点:
- 走线长度不匹配:每英寸约170ps的传播延迟,差100mil就是17ps的skew。
- 过孔数量差异:一个过孔约带来5~10ps的延迟,lane之间过孔数不一致就会产生偏差。
- 介质常数变化:FR4的介电常数在4.2~4.8之间波动,不同的玻纤编织方向会导致延迟波动。
- 阻抗不连续:走线宽度的微小变化、焊盘开窗尺寸不等,都会引起反射和相位延迟差异。
经验值参考:在2.5Gbps速率下,PCB布线引入的lane间skew通常在5~30ps范围内。如果超过50ps,大概率是走线长度没做等长约束。
4.2 芯片工艺偏差——制造环节的天生“不平等”
同一个die上,不同lane的驱动器和接收器,因为工艺制造偏差,延迟不可能一模一样。这就是PVT(工艺-电压-温度)中的“P”——Process。
我见过一种情况:同一批次的两颗芯片,在同样的测试条件下,lane-to-lane skew差了15ps。这就是工艺角(slow corner vs fast corner)带来的差异。
芯片工艺造成skew的核心因素:
- MOS管阈值电压偏差:阈值电压Vth有±30mV的波动,这直接影响驱动器的上升/下降时间。
- 金属层厚度与宽度变化:后端走线的RC延迟受影响,不同lane的互连延迟呈随机分布。
- 版图布局不对称:即使设计上对称,光刻对准误差也会造成实际物理尺寸的微小差异。
- 时钟分配网络歪斜:PLL输出的时钟到达每个lane的分布路径不可能完全等长,芯片内部的时钟skew通常是2~8ps。
避坑警告:芯片工艺偏差导致的skew具有随机性,不像PCB布线那样可以通过等长约束来消除。因此deSkew校准机制必须能够处理“每颗芯片都不一样”的情况。
4.3 温度与电压的影响——动态变化的“变量”
温度升高时,CMOS电路载流子迁移率下降,传播延迟增加。而且不同lane因为布局位置不同,温度也会有梯度差。我曾经测过一个板子,靠近处理器核心的lane比远离核心的lane温度高了将近15℃,结果延迟差了快10ps。
电压的影响更微妙:供电网络的IR drop会导致lane的驱动电压不一致。比如一个lane距离PMIC远,另一个lane距离近,两者的VDD可能有50mV的差异,上升沿就会差几ps。
| 因素 | 变化范围 | 典型skew贡献 | 特点 |
|---|---|---|---|
| 芯片结温 | -40℃~+125℃ | 0.5~2 ps/℃ | 随温度变化缓慢,长期漂移 |
| 电源电压(VDD) | ±5%波动 | 1~5 ps/100mV | 随负载瞬态快速变化 |
| 供电网络IR Drop | 10~50mV | 0.2~2.5 ps | 不同lane差异大 |
| 温度梯度(跨芯片) | 5~20℃ | 2~10 ps | 与布局强相关 |
我的小建议:在做deSkew校准前,先让板子温度稳定下来(比如上电预热5分钟)。不然校准时的温度和实际工作温度完全不一样,校准值就白定了。
4.4 归纳总结——skew来源的“三驾马车”
好了,三种来源我们都过了一遍。把它们放到一张图里,思路就清楚了:
你看,这三类来源各有各的脾气:
- PCB布线差异是静态且确定性的,通过设计约束可以控制,但一旦板子做好就很难改了。
- 芯片工艺偏差是静态但随机的,每颗芯片都不一样,校准时必须针对每颗芯片单独做。
- 温度与电压是动态变化的,校准值会随着环境变化而漂移,所以很多协议里要求deSkew校准支持“实时跟踪”或“周期性重校准”。
总结关键点:在做lane deSkew校准方案设计时,至少要预留±50ps的校准范围(对于4 lanes/2.5Gbps的典型场景)。如果芯片工艺角差或者板子长度差太大,这个上限还要放宽。嗯,我自己踩过的坑就是一开始只给了30ps的余量,结果量产时总有几颗板子调不出来——后来改成60ps就全过了。