2. 抖动类型

咱们做 Rx 抖动容限测试,第一件事就是搞清楚抖动的“户口本”。

你拿示波器看眼图,那些边沿的晃动,到底是随机抖出来的,还是电路里有鬼?

我个人习惯,先把抖动分成两大类——随机性抖动(RJ)和确定性抖动(DJ)。

然后确定性抖动里,又有一个很常见的分支叫数据相关抖动(DDJ)。

最后把所有这些加起来,就是总抖动(TJ)。

嗯,下面咱们一个一个拆开看。

2.1 随机抖动(RJ):老天爷赏的方差

随机抖动,说白了就是热噪声、散粒噪声这类物理底噪引起的。我做项目时遇到过好几次,明明 PCB 布局没问题,电源也挺干净,但眼图就是有一层“雾”。

RJ 的特点很明显:

  • 服从高斯分布,无限尾
  • 无界,简单说就是时间越长,测到的峰值越大
  • 与数据 pattern 无关

在测试里,RJ 通常用 RMS(均方根)值来表征,单位 ps。

小技巧: 我一般用 BER 扫描法来分离 RJ 和 DJ。具体做法是改变阈值电压,看 BER 浴盆曲线的拐点。RJ 贡献的是曲线两侧的“尾巴”。

2.2 确定性抖动(DJ):有迹可循的偏差

确定性抖动就好办多了,它一定有具体原因。我印象最深的一次,是电源纹波耦合进了时钟 Buffer,导致输出时钟边沿周期性抖动——那就是 DJ 里的周期性抖动(PJ)。

DJ 的主要子类包括:

  • 周期性抖动(PJ): 由开关电源、EMI 等周期性干扰引起,频谱上有尖峰
  • 占空比失真(DCD): 高低电平不对称,常见于单端 CMOS 驱动
  • 数据相关抖动(DDJ): 下面单独讲
注意: DJ 是有界的。如果你测到抖动的峰峰值不再随测量时间增长,那大概率是 DJ 在主导。

2.3 数据相关抖动(DDJ):历史依赖症

DDJ 是 DJ 里最“狡猾”的一种。它依赖前面传输了啥 bit,所以也叫码间干扰(ISI)或模式相关抖动。

我举个例子吧。咱们发一串 “1111100000”,高电平持续 5 个 UI,低电平也持续 5 个 UI。由于传输线的损耗和反射,前几个 bit 的幅度还没稳定,后几个 bit 的边沿位置就会不一样——这就是 DDJ。

DDJ 的测量方法也特别些:

  1. 抓一整段长 PRBS 码型
  2. 按 bit 序列分类统计每个边沿的抖动
  3. 画出的“眼图余辉”就能看出明显的高低电平差分
曾经踩过的坑: 有一次我用示波器自带的“抖动分离”功能,结果把 DDJ 全算成了 RJ。后来发现是因为采样点数不够,而且码型长度没设对。DDJ 至少要用 PRBS7 以上,8b/10b 码型也行,千万不能用短 pattern 来测。

2.4 总抖动(TJ):实际工作的判据

总抖动,就是把 RJ 和 DJ 合在一起。但注意,不是简单相加。

我用的公式是:

TJ = DJ + 2 × α × σ_RJ

其中 α 取决于目标误码率(BER)。

比如 BER=10^-12 时,α≈14。举个例子:

  • DJ=30ps(双峰)
  • σ_RJ=1ps
  • α=14

那 TJ = 30 + 2×14×1 = 58ps。

这个值就是我们在 Rx 接收端要容忍的极限。

抖动分类对比表
类型 分布 有无界 典型来源 测试手段
RJ 高斯 无界 热噪声、散粒噪声 RMS 测量,BER 扫描
DJ 双峰 / 多峰 有界 串扰、电源噪声 直方图峰峰值
DDJ 与 pattern 相关 有界 ISI、反射 码型相关直方图
TJ 高斯 + 双峰 随 BER 增长 上述总和 浴盆曲线拟合

你可能会问,TJ 为什么要用这么复杂的公式?

因为 RJ 是概率性的,不能直接加峰值。我刚开始做这行时,傻傻地用 RJ_pp + DJ 来算,结果过设计了 30%——浪费成本,还影响了高速信号的眼高。

我的习惯: 在测试脚本里,我会先跑一次 DJ 的直方图,再看 RMS_RJ。然后用 BER 规格(比如 10^-12)反查贝尔函数的 α 系数。这样算出来的 TJ 再跟芯片 datasheet 比较,比较准。

2.5 四种抖动的结构关系

下面这张图总结了它们之间的父子关系,也方便你上手写测试用例时做层次划分。

抖动类型层次结构 总抖动 (TJ) 随机抖动 (RJ) 确定性抖动 (DJ) 周期性抖动 (PJ) 占空比失真 (DCD) 数据相关抖动 (DDJ) 注:DDJ 属于 DJ,但常被单独测试。实际分离时用双狄拉克模型。 TJ = DJ + 2·α·σ_RJ,α 由目标误码率决定。

你看,从 TJ 出发,咱们要分别处理 RJ 和 DJ。而 DJ 内部又可以拆出好几路。每次测试前,我习惯先看一眼 DJ 的直方图——如果出现双峰,大概率是 PJ 或 DCD;如果是跟码型对得上的抖动,那就是 DDJ。

2.6 总结:测试前要分清这四类

讲到这里,你应该已经能把这四种抖动对号入座了。

  • RJ: 靠滤除不了,只能控制 RMS 值。
  • DJ: 必须找到根源,否则容限永远打不满。
  • DDJ: 特别关注通道回损和均衡器设置。
  • TJ: 只看一个数字,但内里是 RJ 和 DJ 的博弈。
个人经验: 咱们做 Rx 抖动容限测试时,每次先用噪声源注入 RJ,同时保持 DJ 不变。然后扫 BER,看 TJ 的边界。如果发现 TJ 的浴盆曲线左边陡右边缓,那大概率是 DJ 里有占空比不对称——这时候检查一下时钟的占空比调整寄存器,往往就能解决。

嗯,这一章就到这里。记住,分清抖动类型,比会算公式更重要。