3、PJ分离需求背景:为什么需要分离PJ?
做高速串行链路调试这些年,有个问题经常被问:
“我测出来的总抖动已经达标了,为什么还是误码?”
嗯,这个问题背后的原因,十有八九出在周期性抖动(PJ)上。
它不像随机抖动那样“均匀散开”,也不像数据相关抖动那样有迹可循。
PJ有明确的频率分量,会在特定码型上反复踩雷。
这就像电路里藏了一个定时炸弹。
你光看总抖动幅值大小,根本不知道它什么时候引爆。
为什么一定要把PJ单独拎出来?
总抖动(TJ)是多个抖动分量的叠加结果。我以前带项目时,有个团队总喜欢只看TJ的峰峰值。
结果板子打回来,眼图测试通过,场景一上高速流就丢包。
后来我把PJ单独分离出来分析——好家伙,PJ的幅度不大,但频率正好落在CDR的跟踪带宽外面。
换句话说,CDR拿它没办法,系统该误码还是误码。
分离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) | 单个或多个频率成分,集中破坏 | 电源滤波/屏蔽/改变布局 |
工程中的典型场景
下面列几个我自己碰到过的真实案例,供你参考:
- 电源纹波耦合:有一次调试一块25Gbps光模块,眼图闭合严重。分离PJ后发现有个5.3MHz的峰值——对应板上DC-DC的开关频率。换用低噪声LDO后PJ下降80%。
- 串扰来自邻近通道:多通道SerDes中,邻通道的谐波会通过空间或电源耦合进来。我曾经在16路并行链路中,第7路和第8路之间出现了10ps的PJ,频率正好等于通道7的码率除以2。重新调整PCB叠层间距后解决。
- 参考时钟的抖动传递:PLL对参考时钟的抖动有一定抑制能力,但超过抑制带宽的抖动成分会直接传递到输出。我见过一个案例,参考时钟上有个5ps的PJ,频率5MHz,锁相环抑制比不够,最终输出抖动里同样出现了5MHz的PJ尖峰。
处理这些场景时,你会发现:
不分离PJ,你根本不知道抖动是从哪来的,更没办法精准去修。
这个道理说出来很简单,但真遇到问题时,很多人第一反应还是去调均衡器、改预加重。
其实先把PJ分离出来看频谱,往往能省下无数试错时间。
讲到这里,你应该明白了:
PJ分离不是锦上添花的事,而是解决高速链路误码问题的关键一步。
很多项目就是卡在“总抖动合格但系统不稳定”这个坎上。
把PJ剥出来看,往往能发现被平均掩盖的真实问题。