抖动来源分析:随机抖动与确定性抖动

咱们做高速串行链路,TIE抖动预算分配这件事,说白了就是在跟两种“捣乱分子”打交道:随机抖动和确定性抖动。这俩家伙性格完全不同,你没法用同一套方法去对付它们。

我刚开始接触SerDes设计那会儿,就吃过亏——总觉得抖动嘛,测一个总抖动的RMS值就够了。结果呢?链路就是不稳定,误码率死活降不下去。后来才明白,你不把抖动的来源拆开看,根本没法对症下药。

嗯,咱们今天就把这两种抖动的底细彻底翻一翻。

随机抖动(Random Jitter, RJ)

随机抖动,它的特点是:无界、服从高斯分布、没法通过设计完全消除。你加再多屏蔽、布再多地孔,RJ依然存在。为什么?因为它来源于物理世界最基本的随机过程。

1. 热噪声(Thermal Noise)

这是所有电阻性器件都会贡献的。导体里的载流子做布朗运动,在宏观上就表现为电压或电流的随机波动。这个噪声是白噪声,功率谱密度平坦,带宽极宽——从直流到几百GHz都覆盖。

我在一个28Gbps的接收机项目里测过,前端的TIA(跨阻放大器)如果等效输入噪声太大,RJ的RMS值能从300fs飙到800fs。整个链路预算直接就崩了。

热噪声的PDF是高斯分布,均值为零。它的RMS值可以用经典公式估算:

Vn_rms = sqrt(4 * kB * T * R * BW)

其中:
kB = 1.38e-23 J/K   (玻尔兹曼常数)
T  = 开尔文温度
R  = 电阻值(Ω)
BW = 噪声带宽(Hz)

避坑指南:
我曾经在低频段上吃过亏,以为热噪声只影响GHz以上。其实当你用DC平衡编码(比如8b/10b)时,信号的低频分量也会被热噪声污染。接收端的CDR如果带宽设得太宽,会把更多热噪声带进恢复时钟里。

2. 闪烁噪声(Flicker Noise / 1/f Noise)

闪烁噪声,又叫1/f噪声。它的功率谱密度随着频率降低而增大。CMOS工艺里的MOSFET,其栅氧化层界面的陷阱能级会随机捕获和释放载流子,这就是1/f噪声的物理来源。

1/f噪声在高速链路里主要影响CDR的锁定性能。CDR的环路滤波器工作在低频段,如果1/f噪声太大,恢复时钟的相位会低频漂移——即使输入信号没变,时钟也会慢慢偏。

个人习惯:我做抖动源分析时,会把1/f噪声的转角频率单独列出来。如果转角频率在1MHz以上,说明这个工艺节点的低频噪声不太好,CDR的带宽要重新算。

RJ的数学特性让它很难对付:它的峰值是“无界”的。你测试时间越长,测到的峰值抖动就越大。所以在做预算时,RJ通常用RMS值乘以一个峰峰因子(比如14.069对应BER = 10⁻¹²)。

随机抖动来源物理机制频谱特性如何影响链路
热噪声载流子布朗运动白噪声,平坦增加信号过零点的不确定性
闪烁噪声陷阱捕获/释放1/f谱,低频为主CDR低频漂移,锁定不稳定

确定性抖动(Deterministic Jitter, DJ)

确定性抖动跟RJ不一样,它有界,而且往往有明确的物理原因。你找到原因,通常就能通过设计去改善。

DJ的PDF是一个双峰分布或更复杂的形状。一个常用的模型是双狄拉克模型(Dual-Dirac Model),把DJ的峰峰值(DJpp)和RJ的RMS值分开估算。

1. 码间干扰(ISI, Inter-Symbol Interference)

ISI是通道的“记忆效应”造成的。你发送一个脉冲,如果通道的频响不是理想的低通,脉冲的能量就会拖尾到后面的符号里。前一个比特是“1”还是“0”,会影响当前比特的判决阈值。

举个例子: 
发送序列:1 0 1
通道有损耗 ——> 第二个“0”被前后两个“1”抬高了电平
接收端看到这个“0”的电压超过了判决阈值 ——> 误码

ISI的抖动大小跟数据速率和通道长度直接相关。速率越快,码元越窄,拖尾效应越明显。我在处理一个25Gbps背板链路时,FR4走线超过30英寸,ISI造成的DJ贡献了大约0.15UI——占预算的30%以上。

注意:ISI不是纯延迟抖动,它包含幅度失真和相位失真。很多时候,均衡器(CTLE/DFE)的主要任务就是清理ISI。

2. 串扰(Crosstalk)

相邻信号线之间的电磁耦合。分两种:近端串扰(NEXT)和远端串扰(FEXT)。近端串扰在发送端附近就能看到,远端串扰则沿着传输线累加。

串扰抖动的特点是:它是“数据相关”的,但又不是ISI那种数据依赖。它的来源是干扰线的跳变。

  • 干扰线从0→1或1→0时,会通过互容、互感在被干扰线上产生脉冲
  • 这个脉冲叠加到信号上,让过零点偏移
  • 偏移大小取决于线间距、耦合长度、信号上升时间

我的经验:在高密度BGA区域,串扰是最大的隐性杀手。走线间距从5mil缩到3mil,串扰引起的DJ可能翻倍。我曾经在一个项目中,光是通过调整BGA扇出区域的走线间距,就把串扰抖动从120fs降到了50fs。

3. 占空比失真(DCD, Duty Cycle Distortion)

DCD指信号的高电平和低电平持续时间不一致。如果信号是50%占空比的时钟,DCD会让正半周和负半周的时间不对等。

DCD的来源有两个:

  1. 发送端的差分输出摆幅不匹配。P输出和N输出的上升/下降时间不同。
  2. 接收端的阈值漂移。如果判决电平不是真正的50%,就会把信号切歪。

DCD抖动的特点是:它跟数据模式无关,只跟信号本身的对称性有关。所以它的PDF是固定的——两个相距T/2的脉冲。

避坑指南:
我遇到过一种情况:用示波器测时钟抖动,发现RMS值不大,但TIE的尾部有“双峰”。分析下来是DCD造成的。DCD的峰峰值 = |TH - TL|,其中TH是高电平持续时间,TL是低电平持续时间。它对总抖动的贡献是固定的,不像ISI那样随数据模式变化。

一张图看清所有抖动

为了帮你快速建立全局认知,我把整个抖动的分类、来源和关键特性画成了下面这张图。你把它当作战术板用就行。

总抖动(Tj)分类与来源 总抖动 Tj 随机抖动 (RJ) 确定性抖动 (DJ) 热噪声 闪烁噪声 码间干扰 (ISI) 串扰 占空比失真 关键特性 RJ:高斯分布,无界,RMS × 峰峰因子 ——— DJ:有界,可预测,用峰峰值测量 我的预算分配原则 先分解 DJ 再到 RJ,用眼图 + 浴盆曲线 + 抖动频谱联合分析

这张图把抖动从根到叶拆了一遍。你能看到,RJ的两个子节点——热噪声和闪烁噪声——都有明确的物理来源。DJ的三个分支——ISI、串扰、DCD——则跟设计、走线、工艺偏差相关。

在做抖动预算分配的时候,我习惯把总抖动拆成:
Tj = 14.069 × RJ_rms + DJ_pp

这个公式是业界默认的BER=10⁻¹²时的简化模型。但实际工程中,我建议你用抖动频谱仪或者BERT扫描眼图,直接测出浴盆曲线(Bathtub Curve),然后反推出RJ和DJ的分离值。不要只依赖公式——很多非理想因素你算不出来的。

要点总结:
  • 随机抖动:热噪声(宽带白噪声)+ 闪烁噪声(低频1/f噪声),高斯分布,无界。
  • 确定性抖动:ISI(通道损耗/反射)+ 串扰(耦合路径)+ DCD(占空比不对称),有界,可消减。
  • 抖动预算必须先分解,再分配。不分解,就没法做有针对性的链路优化。

理解这些抖动来源之后,下一层事情就清楚了——你手里握着的不是一块抖动值,而是一张“病因清单”。哪部分多了,就去查对应的电路或通道。嗯,这就是接下来做预算分配的基础。