1. 抖动基础概念

说起抖动,很多人第一反应就是“信号边儿在晃”,但真要问它怎么定义、怎么测,又容易说不清楚。我做高速串行接口那几年,几乎天天跟抖动打交道。每次调试眼图,只要看到眼开度不够,第一反应就是“是不是抖动超标了”。说白了,抖动就是数字信号在理想跳变时刻上出现的随机或确定性的偏移。它没法完全消除,只能控制到系统能容忍的范围。

抖动的定义

抖动的标准定义其实挺简单:信号的实际跳变时间相对于理想跳变时间的偏差。理想的时钟是每隔T秒跳变一次,但实际因为热噪声、电源波动、串扰等原因,每个边沿都会提前或滞后一点。这个偏差就是抖动。

核心要点: 抖动是时间域的偏差,单位通常是ps或UI(Unit Interval)。1 UI等于一个比特周期。

我记得刚入行时,带我的老工程师说:“你就把抖动当作信号的不守时。”这个比喻我一直用到现在。为什么在意它?因为高速收发器要在极短时间里准确采样数据,一旦抖动大到让采样点落在眼图边界之外,就会产生误码。

时域与频域表征

表征抖动有两种视角,就像看一个人——看他的行为(时域)和看他的频谱(频域)。这两种方法各有各的用途。

时域表征

时域里我们直接测每个边沿的偏移量,然后做统计。最常用的指标是峰峰值抖动(Jitterpp)和均方根抖动(JitterRMS)。峰峰值告诉你最坏情况偏移了多少,RMS告诉你抖动的能量大小。眼图就是时域表征的最直观工具——眼高、眼宽、眼开度,全跟抖动有关。

我这里有个经验:看眼图时别光盯着眼睛睁开多大,更要看“眼睛”边缘的模糊层。那个模糊层的厚度就反映了抖动分布。我曾经调试一块25Gbps的板子,眼图看起来还不错,但RMS抖动比规格高了0.5ps,结果误码率一直下不去。后来加了时钟恢复环路里的均衡才搞定。

频域表征

频域里抖动表现为相位噪声。你把时钟信号想象成一个正弦波,抖动的效果就是它的相位在随机或周期性变化。频谱上看到的是载波旁边的噪声裙边。相位噪声曲线(dBc/Hz vs 频偏)能告诉我们抖动的来源:近端噪声往往来自电源和锁相环,远端噪声来自随机热噪声。

你想想看,为什么要费劲转到频域?因为时域里随机抖动和确定性抖动混在一起,不好分离。而频域里,不同频段的噪声可以对应不同的物理机制。这为后续做PJ分离(周期性抖动分离)打下了基础。

表征方式常用指标直观工具适合分析
时域Jitterpp, JitterRMS, TIE眼图、抖动直方图系统误码率、眼图裕量
频域相位噪声 (dBc/Hz)频谱仪、相噪测试仪抖动来源诊断、PJ分离
个人习惯: 初期调链路我先看时域眼图,快速判断有没有问题。等到需要定位根因时,再切换到频域看相位噪声曲线,这样效率更高。

抖动对高速信号的影响

抖动的直接后果就是误码率(BER)上升。高速信号每秒传输几十亿比特,每个比特的采样窗口只有几十ps。抖动一上来,采样点就容易跑偏。严重时眼图完全闭合,数据根本读不出来。

我踩过一个坑:某次FPGA与光模块对接,两边的时钟源是独立的,结果产生了约20ps的峰峰值抖动。眼图看起来已经半闭了,FPGA的GTH接收端狂报误码。当时我排查了电源、布线、阻抗匹配,最后发现是板上两个PLL的参考时钟频率差导致周期性抖动(PJ)。换成同源时钟后,眼图立刻打开。

⚠ 注意: 不是所有抖动都会导致误码。只要抖动幅度小于采样裕量,系统就还能正常工作。但抖动会吃掉你的时序预算,让设计余量变小。量产时一致性差就常常由此引发。

除了误码,抖动还会导致时钟抖动传递。一个电路的输出抖动会沿着链路传递到下级,造成级联恶化。所以高速链路设计里,每个模块都要有抖动预算分配。比如CTLE(连续时间线性均衡)可以抑制低频抖动,但高频抖动就很难滤除。

抖动的危害还与数据类型有关。长连1或长连0(无跳变)会让时钟恢复电路失去参考边沿,抖动积累尤其严重。这个就是CDR(时钟数据恢复)的痛点。我设计过一款CDR芯片,专门针对这种模式相关的抖动做了PJ补偿。

本章知识结构

抖动基础概念关系图 抖动定义 时间偏移 (ps/UI) 时域表征 峰峰值 · RMS · 眼图 频域表征 相位噪声 · 抖动谱 对高速信号的影响 误码率 · 眼图闭合 · 级联恶化 时域测“偏差大小”,频域查“来源分布”,二者结合才能有效分离抖动成分(如PJ)

这个图把本章三个核心概念串起来了。左边时域负责测幅值,右边频域负责看来源,下面则是最终影响。我建议你脑子里记下这个三角关系,后面讲PJ分离时,时域和频域视角会来回切换。