2. 抖动测量参数:定义与计算

做抖动测试,你首先得搞清楚我们到底在测什么。我见过不少新手,拿着BERT跑一遍,看到一堆数值就懵了。其实抖动的参数就那么几个核心的:峰峰值抖动、均方根抖动、周期抖动、相位抖动。搞懂它们,眼图分析才入得了门。

2.1 峰峰值抖动(Peak-to-Peak Jitter, Pk-Pk)

说白了,峰峰值抖动就是抖动波形上最高点和最低点之间的差距。单位通常是皮秒(ps)或时间单位。它反映了抖动的最差情况——也就是信号边缘偏移的最大范围。

定义:Pk-Pk = max(edge time) - min(edge time),对足够多的边沿采样。

我在项目里遇到过一种情况:BERT上看到的Pk-Pk只有30ps,看起来挺漂亮,但系统还是偶尔误码。为什么呢?因为Pk-Pk只描述了极值,看不到中间抖动的分布。你想想,如果大部分抖动集中在中心,但偶尔来两个极端值,Pk-Pk就被拉大了,可实际误码率并不高。所以Pk-Pk更像一个“警戒线”——告诉你最坏可能偏移多少,但不能完全代表系统可靠性。

测量时一般会采集10^6到10^8个边沿,然后取最大值减最小值。简单吧?但要注意:采样数太少,Pk-Pk会偏小;太多,可能被噪声拖出更极端的值。我建议在工程中固定一个比较标准,比如一次测量采10^7个边沿,这样不同批次结果才有可比性。

2.2 均方根抖动(RMS Jitter)

RMS抖动就是抖动时间偏差的均方根值。它描述的是抖动能量的平均波动大小。和Pk-Pk不同,RMS对偶尔的离群点不敏感,更能反映抖动“本体”的水平。

公式不难:

RMS_Jitter = sqrt( (1/N) * Σ (t_i - t_avg)² )

其中 t_i 是每个边沿的实际时间,t_avg 是平均时间,N 是采样数。

个人习惯:当我需要评估一个时钟源的质量时,我更看重RMS而不是Pk-Pk。因为RMS能稳定反映抖动的主体水平。比如晶振的RMS抖动通常在亚皮秒级,而PLL输出可能会到几皮秒。

曾经有个项目,FPGA输出时钟抖动太大,导致ADC采样出错。我用示波器看眼图,眼张开得还行,但一看RMS抖动值已经超过1ps——对于那个ADC的要求0.5ps来说,就是超标了。所以RMS是个很好的“体检指标”。

2.3 周期抖动(Period Jitter, Tj / Tperiod Jitter)

周期抖动,顾名思义,是测量每个时钟周期的长度变化。它直接反映时钟周期的稳定度。对于DDR、SerDes这类需要精确采样时序的系统,周期抖动非常关键。

测量方法:取相邻两个上升沿的时间差作为周期,再统计这些周期的变化。注意:周期抖动也可以分为Pk-Pk周期抖动和RMS周期抖动。行业里常说的“周期抖动”一般默认指峰峰值。

参数 含义 工程常用范围
周期抖动Pk-Pk 最长时间周期与最短时间周期之差 几十皮秒到几百皮秒(取决于频率)
周期抖动RMS 周期变化的均方根值 亚皮秒到几皮秒
周期抖动σ(标准差) 与RMS相同,假设均值已去除 同上

注意:周期抖动和累加抖动(Accumulated Jitter)不是一个概念。累加抖动看的是经过N个周期后相位累积的偏移,常用于锁相环评估。千万别搞混了。

我记得一次调试DDR3接口,周期性报错。用BERT测周期抖动,发现周期抖动的Pk-Pk在特定数据模式下飘到了80ps,但平时只有20ps。最后定位到电源噪声引起了占空比失真→周期抖动恶化。所以测周期抖动时,最好配合不同的码型(比如PRBS7、PRBS31),排查电源串扰问题。

2.4 相位抖动(Phase Jitter)

相位抖动是从相位域来描述的。它把时间偏移换算成相位偏移,单位是度或弧度。对于高频信号,时间上的微小抖动对应着不小的相位变化。很多通信芯片的规格书里会用“相位抖动(rms)”来作为指标。

关系:Δφ = 360° × (Δt / T) ,其中Δt是时间抖动,T是时钟周期。例如一个1GHz时钟(周期1ns),时间抖动1ps对应的相位抖动就是0.36°。

我当年测一个高速串行收发器,芯片手册要求相位抖动rms < 1°。一开始用时间域看,总觉得指标模糊。后来换算成相位,心里就有底了。相位抖动的优势在于它独立于频率吗?——不完全是。你把时间抖动换成相位,虽然数值变了,但物理本质一样。只是不同行业习惯不同。射频微波领域喜欢用相位噪声(Phase Noise)的积分得到相位抖动,而数字工程师更爱用时间抖动。

该怎么选?

  • 做时序预算(Timing Budget)→ 用时间抖动(Pk-Pk或RMS)
  • 做时钟品质评估 → 用相位噪声→相位抖动(rms)
  • 做眼图分析 → 主要看Pk-Pk总抖动(Total Jitter, Tj)

说到Total Jitter(Tj),它实际上是Pk-Pk抖动的一种特殊形式——往往指在指定误码率(如10^-12)下的抖动峰峰值。Tj = Dj + Rj × α,其中Dj是确定性抖动(有界),Rj是随机抖动(无界,高斯分布),α是BER对应的峰值因子。我们在下一部分眼图分析里会详细讲Tj怎么算,这里先知道它是抖动参数的集合就够。

抖动测量参数关系图 抖动 (Jitter) 峰峰值抖动 Pk-Pk 均方根抖动 RMS 周期抖动 Period 相位抖动 Phase 说明: Pk-Pk反映最坏偏移,RMS反映平均能量,周期抖动关注时钟稳定性,相位抖动从角度域衡量。 实际工程中常需结合多个参数综合评估信号质量。如眼图分析仪会输出Tj(Total Jitter)= Dj + α·Rj。

2.5 如何在实际测试中选择参数

讲了这么多参数,你可能会问:到底该测哪个?我的经验是分场景:

  • 串行链路一致性测试(如PCIe、SATA):主要测Tj(总抖动)和Dj(确定性抖动),因为规范就是这么定义的。眼图模板也基于总抖动。
  • 时钟源评估:先看RMS抖动,再看相位噪声积分得到的相位抖动。Pk-Pk只作粗筛。
  • 系统调试找问题:测周期抖动和Pk-Pk,对比不同码型,容易暴露电源噪声和串扰。
  • 批量生产测试:通常只测Pk-Pk和RMS,因为快。但注意设定合理的限值,把误码率风险控制好。

一个小技巧:当你看到RMS抖动很小但误码率很高时,先别急着怀疑设备——很可能存在大的确定性抖动(比如ISI)。这时候用BERT的抖动分解功能,把Dj和Rj拆开看,就明了了。我曾经就这么干过,结果发现是PCB走线阻抗不连续导致的。