第3章 抖动分类:随机抖动与确定性抖动归纳总结
做DDR5信号完整性,你天天都得跟抖动打交道。但说真的,很多人一开始都被那些花里胡哨的抖动名字搞晕了——什么RJ、DJ、DCD、PJ、ISI……我自己刚入行那会儿也是一头雾水。
其实没那么复杂。抖动的分类,说白了就是把“时间上的偏差”分两堆:一堆是随机抖动(RJ),另一堆是确定性抖动(DJ)。为什么这么分?因为它们的来源、分布、处理方式完全不同。你想想看,要是RJ和DJ不分清楚,后续的抖动预算、眼图闭合分析全都是瞎扯。
3.1 随机抖动(RJ)—— 天生的“噪音”
随机抖动来自半导体器件的热噪声、散粒噪声这类物理过程。它的特点是:无界、服从高斯分布、峰峰值理论上可以无限大。嗯,这里要注意——RJ的均方根值(RMS)才是稳定指标,别拿峰峰值去谈RJ,那没意义。
我在项目中遇到过最典型的RJ场景:一颗DDR5 Vref生成电路,明明layout照着参考设计做的,结果眼图张不开。拿示波器一看,抖动直方图尾巴拉得老长。一测RJ分量,比规格书给的典型值大了两倍。最后定位到是电源去耦电容离Vref管脚太远,热噪声耦合进去了。加了个0.1μF电容,RJ直接降了40%。
关键点:RJ无法完全消除,只能通过电路设计(低噪声电源、差分信号、高CMRR接收器)把RMS压到可接受范围。DDR5规范里RJ(RMS)一般要求在0.5~1.5 ps量级。
3.2 确定性抖动(DJ)—— “有规律”的麻烦
确定性抖动的特点是:有界、可重复、由确定原因引起。它的概率密度函数(PDF)通常是双峰或多峰分布。我习惯把DJ再分成两类:数据相关抖动(DDJ)和周期相关抖动(PJ)。下面这张图讲清楚它们的关系:
3.3 数据相关抖动(DDJ)—— 跟过去的数据有关
DDJ又包含两种最常见的子类:码间干扰(ISI)和占空比失真(DCD)。我在调试DDR5 DQ信号时,每次测到DDJ偏高,第一反应就是看通道的频响和TX/RX的均衡设置。
3.3.1 码间干扰(ISI)
ISI的本质是信道带宽不够——上一位的电压还没摆到位,下一位就来了。DDR5速率上到6400 MT/s,走线稍长一点,ISI立刻冒出来。我常用“浴盆曲线”来评估ISI对时序预算的消耗,具体做法后面章节展开。这里先记住:ISI的抖动大小跟数据模式有关,PRBS31比PRBS7的ISI更明显。
3.3.2 占空比失真(DCD)
DCD就是时钟或信号的占空比偏离50%。原因可以是TX的上升/下降时间不对称,也可以是偏置电压偏移。DCD在抖动的直方图上会呈现明显的双峰——一边峰高一边峰低。我曾经吃过一次亏:用示波器量时钟抖动时没注意触发电平,DCD被隐藏了,结果系统误码率一直降不下去。后来手动调触发阈值到50%,双峰立刻现形。
个人习惯:测量DDR5时钟抖动时,先把示波器的触发电平设在Vref(通常0.6V左右),然后打一个“1010”交替模式,看直方图的对称性。不对称就一定有问题。
3.4 周期相关抖动(PJ)—— 电源噪声的“坏指纹”
PJ的频谱上有明显的单根或几根谱线。最讨厌的是,PJ很容易跟RJ叠加,让总抖动看起来飘忽不定。我在一个DDR5项目中碰到过:VDDQ电源开关频率2.2 MHz的纹波直接调制了DLL的输出相位,造成2.2 MHz的PJ。眼图在中频段塌陷得很厉害。解决方案很简单——在电源端加一个陷波滤波器,PJ从8 ps降到2 ps。
如何区分PJ和其他DJ?我的经验是:把抖动的直方图转成频率谱(用软件FFT或示波器的抖动谱分析功能)。PJ在频域看像一把“梳子”,DDJ则呈现宽谱分布。
3.5 抖动分类的实战对照表
下面这个表格我在项目评审中经常用到,方便大家快速定位抖动类型和根因:
| 抖动类型 | PDF分布 | 常见根因 | DDR5典型贡献 |
|---|---|---|---|
| RJ | 高斯 | 热噪声、散粒噪声、1/f噪声 | 0.3~1.5 ps RMS |
| ISI(DDJ) | 多峰、与数据模式相关 | PCB损耗、反射、均衡不足 | 2~10 ps pk-pk |
| DCD(DDJ) | 双峰 | TX slew不匹配、Vref偏差 | 1~5 ps pk-pk |
| PJ | 单峰或梳状频谱 | 电源噪声、串扰、PLL杂散 | 1~8 ps pk-pk |
3.6 抖动的分解与分离思路
实际工程中,你测到的是总抖动(TJ)。怎么把RJ和DJ拆开?常用的方法有:
- 双狄拉克法:假设DJ是双峰分布,通过拟合TJ的尾部得到RJ的σ值。速度最快,但当DJ不是双峰时误差较大。我个人不喜欢这个方法用在DDR5上,因为ISI的分布往往不是双峰。
- Q-因子法:在眼图的眼图交叉点测量抖动分布,利用Q值外推。这个对采样示波器比较友好。
- 谱分析法:直接用实时示波器的抖动频谱软件分离。我认为这是目前最准确的方法,前提是仪器带宽足够(至少20 GHz以上)。
注意:千万不要在DDR5的SI分析中只用一种方法。我建议至少对比两种分离结果,如果相差超过20%,说明你的测量设置或DJ分布假设有问题。我曾经遇到过:用双狄拉克法算出来的RJ比谱分析法小了30%,后来发现是DJ包含了多个窄峰,双狄拉克法把一部分DJ算成了RJ。改用谱分析法才真正定位到是Vref的DCD问题。
3.7 分类的意义与工程实践
为什么要花这么多精力去分清RJ和DJ?因为它们的优化手段完全不同——RJ靠改善电源和降低噪声;DJ靠修通道、调均衡、改layout。把分类搞清楚了,你就知道该往哪个方向用力。
举个例子:DDR5 DQ信号的抖动,如果分离后RJ占主导(RMS > 1 ps),这时候去调整TX的均衡、换PCB板材都是白费力气——得先端掉电源纹波和参考电压的噪声。反过来,如果DJ占了大头(比如ISI贡献了5 ps),那均衡和去加重才是解药。
我自己在做DDR5的SI仿真时,习惯在Post-layout阶段先把每条DQ/DQS通道的抖动分解跑一遍,然后填到时序预算表里。嗯,这么做虽然慢一点,但能提前把80%的抖动问题扼杀在投板前,省得后来改版烧钱。