1. 抖动基础
大家好,我是老周。做高速数字系统这么多年,每次新人问我“什么最难测”,我第一个想到的就是抖动。这东西看不见摸不着,偏偏能把你的眼图全毁掉。今天咱们就好好把这东西说透。
1.1 什么是抖动?
抖动,说白了就是你信号里那些不该有的时间偏差。理想时钟的边沿应该精确地每隔 T 秒来一次,可现实世界哪那么容易?实际边沿会提前或者落后那么一点点,这个“偏离理想位置”的偏移量,就是抖动。
抖动的单位通常是 ps 或 UI。1 UI 就是一个比特周期,比如 10 Gbps 信号,1 UI = 100 ps。我个人习惯看值,但芯片 datasheet 里往往给的是 UI 百分比,换算时要小心。
核心分类:
- 随机抖动(RJ) – 无界的,高斯分布,主要来自热噪声和散弹噪声。你没法完全消除它。
- 确定性抖动(DJ) – 有界的,又可以细分成数据相关抖动(DDJ)、占空比失真(DCD)、正弦抖动(SJ)等。通常来源于串扰、反射、电源噪声。
用张表格对比一下,会更直观:
| 类型 | 来源 | 分布特征 | 能否消除 |
|---|---|---|---|
| 随机抖动(RJ) | 热噪声、闪烁噪声 | 高斯,无界 | 只能降低,无法根除 |
| 确定性抖动(DJ) | 码间干扰、串扰、电源塌陷 | 有界,双峰或多峰 | 可通过设计优化 |
我当年第一次测 10GBASE-KR 时,眼图总合不上,折腾了两天。后来发现是 PCB 走线打过孔太多,导致确定性抖动飙到 15 ps。换了个参考层干净的路径,瞬间过了。所以啊,抖动问题很多时候是 layout 的问题。
1.2 抖动从哪来?
你想想看,一个信号从发送端出来,经过 PCB 走线、连接器、过孔、再到接收端,中间每一处都可能引入抖动。常见的原因有:
- PCB 阻抗不连续 – 过孔、拐角、分支,都会反射能量,产生码间干扰。
- 电源噪声 – 高速芯片对电源纹波极度敏感,几十 mV 的纹波就能抖出好几个皮秒。
- 串扰 – 邻近走线耦合,特别是在长距离并行总线里。
- 时钟源本身的相位噪声 – 说白了就是锁相环做的不够干净。
我曾经在一个 25 Gbps 背板项目里,发现抖动超标的源头居然是连接器的屏蔽接地不良。这种坑,光靠仿真很难提前发现,必须上板测。
1.3 抖动对高速数字系统的影响
抖动最大的杀伤力在于:它直接吃掉你的时序裕量。咱们看下面这张图就能明白:
从图上可以清楚看到:抖动会导致眼图水平方向闭合,垂直方向高度也会降低。当眼睛睁开不够大时,接收端采样就会出错。10 Gbps 以上链路,抖动哪怕只增加几个皮秒,误码率就可能从 1e-12 跳到 1e-6。
警告:不要以为抖动只在高速串行链路上才重要。DDR 存储器接口一样受抖动影响。我记得有一次 LPDDR4 的 DQS 抖动超标,导致数据采集不稳定,最后发现是时钟缓冲器供电滤波没做好。
1.4 抖动容限概念
接收端能容忍的最大抖动是多少?这个指标就叫抖动容限(Jitter Tolerance, JTOL)。它定义了在给定误码率(通常 1e-12)下,接收端所能承受的最大正弦抖动幅度随频率变化的曲线。
为什么会用正弦抖动来测试?因为实际链路中的抖动成分复杂,而正弦抖动是一种干净的、可重复的应力,用它来扫频就能画出接收端的“耐受能力”曲线。这个曲线越低,说明接收端越强壮。
咱们章节后面会专门讲怎么测抖动容限。这里先记住一句话:抖动容限 = 系统对抖动的鲁棒性。设计时要想办法提高它,比如优化 CDR 环路带宽、使用均衡器、调整判决反馈结构。
理解抖动容限的三个关键点:
- 它是频率的函数 – 低频抖动 CDR 能跟踪,所以容限大;高频抖动跟不住,容限小。
- 它与误码率绑定 – 没有误码率要求,谈容限没意义。
- 它是系统级指标 – 不仅仅是芯片的事,PCB 和通道特性也参与其中。
我建议每个高速项目在初期就定好抖动容限的 spec。别等到板子调完才发现芯片性能不够,那时候换料号、改 layout 成本就太高了。你测一次抖动容限,心里就有底了。
好了,这一节咱们把抖动的基本概念、分类、影响以及容限都过了一遍。嗯,这些是后面所有实测操作的基础。你要知道你在测什么,为什么测,才能把结果用对地方。