2. 抖动分类与度量:捋清 TJ、RJ、DJ、DDJ 那点事

做高速串行链路,抖动的分类是避不开的基本功。我刚开始接触 SerDes 测试那会,看到一堆缩写就头疼——TJ、RJ、DJ、DDJ……说实话,光名字就能把人绕晕。但别急,今天咱们把这几个概念掰开揉碎,给你讲透。

2.1 总抖动(TJ):你测出来的那个数

总抖动 TJ,说白了就是 你把眼图最差情况下的抖动全加起来。在数字通信系统里,TJ 一般定义为误码率 BER=10^-12 时的眼图闭合程度。你会问:为啥取这个值?因为实际工程里,10^-12 的误码率基本够用了。

核心公式(简化版):

TJ(BER) ≈ DJ + 2 × α × RJ

其中 α 是 BER 对应的分位数(BER=10^-12 时 α≈7)。说白了,TJ = DJ + 2×7×RJ。

抖动类型 英文 特性
总抖动 Total Jitter (TJ) 工程上最关心的指标,眼图闭合的直接结果
随机抖动 Random Jitter (RJ) 高斯分布,无界,不可预测
确定性抖动 Deterministic Jitter (DJ) 有界,可预测,有明确成因
数据相关抖动 Data Dependent Jitter (DDJ) 与传输码型直接相关,属于 DJ 的子类

嗯,你别光记公式。TJ 是实测值,RJ 和DJ 是模型拆分出来的,纯粹的贝叶斯还是高斯,看你怎么修。对于实际板级调试,我一般先用示波器测眼图,读数就是 TJ;然后通过抖动分解,剥离 RJ 和 DJ,再往下剥到 DDJ。

2.2 随机抖动(RJ):那个甩不掉的噪声底

RJ 的来源是热噪声、闪烁噪声、散弹噪声——都是半导体物理决定的。RJ 是高斯分布,它的尾巴很长,你测的时间越长,抖动峰值就越大。RJ 与元器件自身的本底噪声强相关。

我记得一次调试 28Gbps 的背板,TJ 读数超标,我第一反应是 DDR 供电不稳,后来发现是 PLL 的相噪恶化,直接拉高了 RJ 本地基底。你说 RJ 怎么改?其实就是改善电源纹波、优化 PLL 环路滤波器,或者在系统级做预加重。

一句话总结:RJ 是系统底噪决定的,基本不能靠数字处理“消掉”,只能用均衡器或重新定时缓解。

2.3 确定性抖动(DJ):把锅背好

DJ 就那几种:周期抖动(PJ)、占空比失真(DCD)、数据相关抖动(DDJ)、有界不相关抖动(BUJ)。你想想看,这几种全都能找到具体原因——电源耦合、上升/下降沿不对称、码间干扰、串扰。

在实际项目中,DJ 占总抖动的前半段。如果 DJ 占总抖动的 80% 以上,那我就知道改进串扰和码型匹配能显著改善。

避坑指南:我曾经在 56Gbps PAM4 链路上只测了 TJ 大于的 UIt 限值,直接推断是 RJ 问题,结果花了三天改 PLL,毫无效果。后来做 DJ 分解才发现是通道回损不均带来的码间干扰为主……

DJ 的最大特点是 有界。RJ 会随着测量时间增长而增大,但 DJ 有一个固定的峰峰值。所以如果你测到抖动无限增长,基本可以判断 RJ 占主导;如果抖动很快收敛到某个值就不再变大,那就是 DJ 的锅。

2.4 数据相关抖动(DDJ):码型的影子

DDJ 是什么?说白了,就是 01 跳变序列不同带来的抖动。我发个“101010...” 和 “111000...” 比,眼图闭合情况肯定不一样。原因也很直观:单比特跳变和长连 1 长连 0 之后的跳变,通道的瞬态响应不同。

DDJ 主要来自两个方面:

  • 码间干扰(ISI):通道带宽有限,前一个比特的残影拖到后一个比特的跳变上
  • 趋肤效应/介质损耗:高频分量衰减比低频多,连 1 连 0 后的跳变变缓

在实际调试时,DDJ 会表现出明显的码型依赖性。比如 PRBS31 测出来 TJ 达标,换成重复长连 1 的码型就超标了——这就是 DDJ 在作怪。

码型 DDJ 占比 (典型) 应用场景
PRBS7 30%~40% 快速验证
PRBS31 50%~70% 合规性测试
长连 1 连 0 70%~90% 极限眼图

嗯,DDJ 对通道损耗极其敏感。这也就是为什么好多高速标准里直接规定用 PRBS31 做测试码型,逼得你做好通道均衡。

2.5 隶属关系:从 TJ 一路拆到 DDJ

整件事情的逻辑,用一个层次图就能说清楚:

抖动分解层次结构 总抖动 TJ 随机抖动 RJ 确定性抖动 DJ DDJ DCD PJ BUJ 码间干扰 (ISI) 趋肤效应 / 介质损耗 关键理解点 • TJ 可以分解为 RJ + DJ(双狄拉克模型) • DDJ 是 DJ 的重要子类,与传输码型绑定 • 了解隶属关系后,才好定位抖动来源 从顶层往下拆

我自己调试时,就是按这个流程来判断的——先看 TJ 是否超标,没超标就收工。超标了?那我就看是 RJ 大还是 DJ 大。RJ 大就改善电源和时钟;DJ 大再拆:如果是 DDJ,那就点对点优化通道和均衡器。流程图虽然简单,但在实际调试时能省不少时间。

2.6 各类抖动的属性对比

下面这张表,是我在项目文档里经常贴的,方便对照记忆:

属性 RJ DDJ DCD PJ
分布类型 高斯(无界) 双峰或偏峰(有界) 双峰(有界) 正弦(有界)
是否依赖码型 否 是(核心特征) 否 否
与频率的关联 宽频带 低频为主 低频 单一频率
改善策略 低噪声电源 / 低相噪 PLL 通道均衡 / 预加重 匹配上升/下降沿 去耦合 / 滤波

为什么我把 DDJ 的分布写成“双峰或偏峰”?因为不同的码型分布会有不同的抖动直方图。这一点在后面的章节里我们会重点分析,但你记住一句话:DDJ 是码型的函数,码型一变,DDJ 的规模和形状都变。

我个人的一个习惯:在做系统级测试前,先把 DDJ 的码型依赖性测一遍。就用一个简单的 PRBS7 和 PRBS31 对比,如果 TJ 差距超过 50%,那通道均衡大概率没做好。

嗯,讲了这么多,你其实只需要记住几行字就行了:TJ = RJ + DJ,DJ 包含 DDJ、DCD、PJ、BUJ,DDJ 跟码型对着干。 结构清晰后,抖动的拆解才能做对,后面的眼图闭合预算、均衡算法选型才能站得住脚。