数据相关抖动(DJ)
上一章我们把随机抖动和周期抖动拆了一遍,这回来啃硬骨头——数据相关抖动(DJ)。说白了,DJ 就是跟传输的数据紧绑在一起的抖动,数据跑什么样,它也跟着变。我刚开始做高速串行的时候,总把 DJ 跟 PJ 搞混,后来用眼图一看,区别很明显——PJ 会让眼图左右规律地摇摆,DJ 则像把眼图“撕开”好几层。
码间干扰 (ISI)
ISI 是 DJ 里最烦人的一个。你想想看,当信号经过一段损耗严重的传输线,前一拍的电压还没摆到位,后一拍的判决就被带偏了。为什么眼图上会看到「双眼圈」甚至「三眼圈」?其实就是 ISI 在搞鬼。我记得有一次调一个 12.5Gbps 的背板,眼图张开度只有 30%,回波损耗也还行,最后用 PRBS9 和 PRBS31 分别测了一遍,发现 PRBS31 时眼图更差——长连 1 和长连 0 把通道的直流偏移拉大了,这就是典型的 ISI。
- 成因:通道带宽不足、反射、阻抗不连续,导致已有符号的余晖拖到下一个符号。
- 特征:眼图出现多重轨迹,抖动直方图呈多峰分布且峰值间距等于 UI 的整数倍。
- 测试手段:用示波器捕获 PRBS9/15/31 的眼图,比较眼高和眼宽。也可以用 S 参数反推 ISI 量。
占空比失真 (DCD)
DCD 听起来简单——脉宽不对称导致的抖动。但实际上它经常跟 ISI 混在一起。我自己的习惯是先看眼图的 Crossing Point。如果交叉点偏离 50%,基本就是 DCD。怎么区分呢?你可以把数据信号差分取反,如果抖动的极性也反转,那就是 DCD。我曾经遇到一个 HDMI 2.1 的项目,PHY 输出占空比偏离了 2%,结果抖动直接多了 8ps。后来发现是差分对的 P/N 长度差了 3mil……
实战技巧:测量 DCD 时,使用 1010 重复模式最直接。抖动直方图上会出现两个明显的峰值,间距等于占空比引起的相位偏移。拿示波器的抖动分解功能看,DCD 分量会直接标出来。
- 成因:驱动器上升/下降时间不对称、差分走线不等长、接收端阈值偏移。
- 特征:抖动与数据模式完全相关(0->1 和 1->0 的边沿位置不一致)。
- 消除方法:在 TX 端做占空比校准,或者优化差分板级路由。
有界不相关抖动
这个名字有点绕。它和数据相关,但不跟数据模式一一对应——典型的就是串扰。你想想看,相邻的平行线走高频信号,能量耦合过来,你的信号边沿就跟着抖。这种抖动有明确的上限(所以叫有界),但跟你的数据位序列不直接相关。我在做服务器背板的时候,有一组 28Gbps 的链路,眼图总是在某些 bit 上出现尖刺,用 TDR 一看,刚好有一根 100MHz 的时钟线并行走了一英寸……调整间距后抖动立马降了一半。
| 抖动类型 | 与数据关系 | 有界性 | 典型来源 | 分解方法 |
|---|---|---|---|---|
| ISI | 强相关(与模式历史有关) | 有界 | 通道损耗、反射 | 眼图分割、BER浴盆曲线 |
| DCD | 强相关(与占空比有关) | 有界 | 驱动器不对称、阈值漂移 | 均值偏移直方图 |
| 有界不相关抖动 | 弱相关(与相邻干扰源有关) | 有界 | 串扰、SSN、电源噪声 | 双/多通道相关性分析 |
在实际工程里,这三种 DJ 往往同时存在。我的经验是做抖动分解时,先拿无相关性的随机抖动 RJ 和周期抖动 PJ 剥离(前面章节已讲),剩下的 DJ 成分再用上面提到的方法逐一拆分。如果你用高级示波器的 NIST 算法,它会自动把 DJ 分解出各分量,但理解背后的物理意义才能判断分解结果是不是合理。嗯,这一步很关键,你想想看,如果示波器把串扰引起的抖动误判成了 ISI,你可能会去加均衡,结果越搞越糟。
好了,数据相关抖动的三个成员都讲清楚了。记住一个核心:DJ 一定跟实际跑的码型有关,所以测试时不能只用一种固定模式,要把最差场景跑一遍。下一层我们会谈怎么把这些成分加总成总抖动(TJ),并做 BER 预算分解。