3、PJ分离需求背景:为什么需要分离PJ?

做高速串行链路调试这些年,有个问题经常被问:
“我测出来的总抖动已经达标了,为什么还是误码?”

嗯,这个问题背后的原因,十有八九出在周期性抖动(PJ)上。
它不像随机抖动那样“均匀散开”,也不像数据相关抖动那样有迹可循。
PJ有明确的频率分量,会在特定码型上反复踩雷。

这就像电路里藏了一个定时炸弹。
你光看总抖动幅值大小,根本不知道它什么时候引爆。

为什么一定要把PJ单独拎出来?

总抖动(TJ)是多个抖动分量的叠加结果。我以前带项目时,有个团队总喜欢只看TJ的峰峰值。
结果板子打回来,眼图测试通过,场景一上高速流就丢包。
后来我把PJ单独分离出来分析——好家伙,PJ的幅度不大,但频率正好落在CDR的跟踪带宽外面。
换句话说,CDR拿它没办法,系统该误码还是误码。

我个人习惯:拿到抖动数据的第一件事,不是算TJ,而是看频谱。PJ在频谱上就是一根根独立的尖峰,特别好认。

分离PJ的必要性,可以归纳为三点:

  • 定位噪声源:PJ往往来自电源噪声、开关干扰或外部串扰。分离出来才能对症下药。
  • 评估误码率贡献:PJ对误码率的影响不是线性的。同样的峰峰值,不同频率的PJ对误码率的威胁差异很大。
  • 指导均衡与CDR设计:CDR对低频PJ可以跟踪消除,但对高频PJ无能为力。设计时得知道PJ分布在哪。

PJ对系统误码率的特殊影响

先看一个简单的数学关系。抖动总代价(Tj)可以写成:

Tj = Dj + α × Rj

其中Dj是确定性抖动,Rj是随机抖动,α跟误码率要求有关(比如BER=1e-12时α≈14)。
PJ是Dj的一部分,但它的危害不止于幅值增加。

我曾经在一个10Gbps背板项目中踩过坑。
PJ幅值只有3ps,但频率是156.25MHz——正好是参考时钟的基频。
系统要求BER低于1e-12,但实际测试跑不到1e-9就开始冒误码。
为什么?因为PJ的周期与数据码型存在整数倍关系,导致在某些特定比特位置上,采样点总是偏离最佳位置。误码集中爆发。

抖动分量对BER的影响特点典型处理方式
随机抖动 (Rj)高斯分布,低频宽增加串行器/解串器余量
数据相关抖动 (DDJ)与码型相关,可预测预加重/均衡
周期性抖动 (PJ)单个或多个频率成分,集中破坏电源滤波/屏蔽/改变布局
注意:PJ造成的误码往往不是均匀分布的。它会在特定时间窗口内密集出现。用传统的误码率扫频方法很容易漏掉。我曾经建议团队改用“误码分布热力图”来定位——效果立竿见影。

工程中的典型场景

下面列几个我自己碰到过的真实案例,供你参考:

  1. 电源纹波耦合:有一次调试一块25Gbps光模块,眼图闭合严重。分离PJ后发现有个5.3MHz的峰值——对应板上DC-DC的开关频率。换用低噪声LDO后PJ下降80%。
  2. 串扰来自邻近通道:多通道SerDes中,邻通道的谐波会通过空间或电源耦合进来。我曾经在16路并行链路中,第7路和第8路之间出现了10ps的PJ,频率正好等于通道7的码率除以2。重新调整PCB叠层间距后解决。
  3. 参考时钟的抖动传递:PLL对参考时钟的抖动有一定抑制能力,但超过抑制带宽的抖动成分会直接传递到输出。我见过一个案例,参考时钟上有个5ps的PJ,频率5MHz,锁相环抑制比不够,最终输出抖动里同样出现了5MHz的PJ尖峰。

处理这些场景时,你会发现:
不分离PJ,你根本不知道抖动是从哪来的,更没办法精准去修。
这个道理说出来很简单,但真遇到问题时,很多人第一反应还是去调均衡器、改预加重。
其实先把PJ分离出来看频谱,往往能省下无数试错时间。

PJ分离需求背景 —— 核心逻辑 相位噪声 随机抖动 (RJ) 确定性抖动 (DJ) 周期性抖动 (PJ) 误码率集中爆发 必须分离PJ PJ是DJ中唯一有固定频率的分量,分离后可直接关联噪声源 —— 工程上常通过频谱分析+相位噪声分离算法实现

讲到这里,你应该明白了:
PJ分离不是锦上添花的事,而是解决高速链路误码问题的关键一步。
很多项目就是卡在“总抖动合格但系统不稳定”这个坎上。
把PJ剥出来看,往往能发现被平均掩盖的真实问题。