3、抖动分类与测量:随机抖动、确定性抖动、周期抖动、总抖动,以及常见测量方法
做时钟树那么多年,我最大的感触就是:抖动这东西,你得先分得清,才能测得准。很多人拿着示波器一顿测,看眼图张得挺开,就以为没问题了,结果系统跑起来就是不稳定。说白了,你没找到抖动的“真凶”。
这一节,我们就来把抖动的家底翻一翻。看看它到底有几种“面孔”,每种该怎么抓、怎么量。
3.1 抖动的“家族谱”:从统计学说起
你一定听过这个说法:抖动可以分成 随机抖动(Random Jitter, RJ) 和 确定性抖动(Deterministic Jitter, DJ)。这个分类不是拍脑袋想的,它是由物理根源决定的。随机抖动的来源,说白了就是热噪声、散粒噪声这类东西。它们的分布是高斯分布,没有边界,理论上存在非常小但可能极大的抖动值。嗯,这里要注意:RJ 是纯随机的,你没法预测它下一秒会出现在哪。
确定性抖动就不一样了。它是有“原因”的,有界的,通常跟电路结构、芯片封装、PCB 布局强相关。比如电源上的纹波、信号线的串扰、甚至你晶振的谐波,都会产生 DJ。
我遇到过一个项目,时钟抖动指标差得离谱。我看了一眼频谱,发现 50MHz 的频率点有个大尖刺。查了一圈,原来是晶振的封装跟布局靠得太近,电源噪声耦合进来了。这就是典型的周期性抖动(PJ),属于 DJ 的一种。
除了 DJ 和 RJ,还有个概念叫 总抖动(Total Jitter, TJ)。它就是把 RJ 和 DJ 在某个极低的误码率下(比如 BER 10⁻¹²)加一起的结果。不夸张的说,TJ 是硬件工程师最关心的数字,因为它决定了你的系统会不会在千亿分之一的机会下翻车。
另外,周期抖动(Period Jitter, PJ) 通常指 DJ 里那种有固定频率分量的部分。它跟数据中心、SerDes 这类高速设计里的电源完整性密切相关。我曾经在做 PCIe Gen4 项目时,光靠周期时域反射计(TDR)就能定位到是板上的某颗去耦电容距离远了,导致了周期性的抖动。
好了,光说不练假把式。咱们用一张图把他们的关系理清楚。
3.2 关键抖动的测量方法
知道了分类,我们得知道每种抖动怎么“抓住”它。我测过的方法大概有这几种,咱们一个个说。
3.2.1 周期抖动(PJ)的测量
测量 PJ,最直接的工具是 频谱分析仪,或者带有频谱功能的实时示波器。你把时钟信号的边沿做触发,观察它的相位噪声。你会发现,正常情况下应该是平滑的噪声基底,如果某个频率点出现“竖琴”一样的尖峰,那就是 PJ 在作怪。
3.2.2 随机抖动(RJ)的测量
RJ 没法直接测单个边沿,它的统计特性决定了我们需要用 大量样本的直方图。常见做法是:对时钟信号做多次(比如>10万次)的周期测量,画出分布的直方图,然后用高斯拟合出标准差 σ。RJ 的 RMS 值就是 σ。
3.2.3 确定性抖动(DJ)的测量
DJ 的测量通常通过 双狄拉克(Dual-Dirac) 模型来分离。你用直方图做出双峰分布(像字母 M),左右两个峰分别代表早到和晚到的边沿。两个峰的间距就是 DJ 的峰峰值(DJ pp)。
具体操作:利用实时示波器或 BERT(误码率测试仪)的“地平线扫描”功能,获取多个 BER 曲线,用贝尔曲线尾部拟合,反推出 RJ 和 DJ。
3.2.4 总抖动(TJ)的测量与计算
TJ 有两种测法。一种是直接法:用 BERT 在极低误码率下(比如 10⁻¹²)直接测量眼图闭合量。另一种是分离法:先测出 DJ 和 RJ 的 RMS,然后用公式推:
TJ(BER) = DJ_pp_peak + 2 × Q(BER) × RJ_rms
Q(BER) 是贝特曼系数。BER=10⁻¹² 时,Q≈14。所以如果你测得 RJ_rms = 1ps,DJ_pp = 10ps,那么 TJ = 10 + 2×14×1 = 38ps。这就是你这根时钟在最恶劣情况下的抖动预算。
3.3 一张表概括测量方法
为了方便你查阅,我整理了一张对比表格。这些参数在选示波器或 BERT 时都能用到。
| 抖动类型 | 核心物理特性 | 常用测量工具 | 关键指标 |
|---|---|---|---|
| 随机抖动(RJ) | 高斯分布,无界,来源于热噪声 | 实时示波器(长样本直方图) | RMS 值(σ),或峰峰值 @ BER |
| 确定性抖动(DJ) | 有界分布,可重复,来源于串扰、电源、码型 | BERT(误码率扫描)、示波器双狄拉克 | 峰峰值(DJ pp),常包括 PJ、DDJ、DCD |
| 周期性抖动(PJ) | 离散频谱,周期重复 | 频谱分析仪、相位噪声仪、TDR 时频变换 | 峰值幅度、频率 |
| 总抖动(TJ) | 总和分布,包含 RJ 尾部与 DJ 边界 | BERT 直接扫描、分离法计算 | 峰峰值 @ 特定 BER(如 10⁻¹²) |
3.4 经验之谈:避坑指南
- 我曾经吃过一个亏:测 RJ 的时候,误把电源纹波产生的 PJ 当成了高斯噪声。结果算出来的 TJ 预算完全不对,导致系统稳定性测试过不了。所以先除 DJ,再算 RJ。
- 我建议:在测量之前,一定要确认你的测试仪器有没有“去嵌入”功能。尤其是用 TDR 测时钟线,探头和线缆的带宽限制会引入额外的抖动。
- 你想想看:如果你只关心系统能不能跑到 10Gbps,却只测了 TJ 的 RMS 值,那是没用的。一定要换算到目标 BER 下的 TJ 峰峰值。
- 用 周期抖动(PJ) 作为滤波器:当我们用 TDR 定位到某个物理位置的反射点后,其反射波形的周期特性可以很直观地告诉你:这里是不是有 PJ 源。比如,你在某段走线看到重复的 100ps 反射,那基本就是周期性的阻抗不连续。