物理层关键参数:线速率、预加重/去加重、眼图模板、Jitter指标

好,我们来到物理层。说白了,JESD204B 的物理层就是 SerDes 那一套。你别看协议栈上面那么多花里胡哨的映射、加扰、对齐,最后数据都得靠差分对线上的高速信号传过去。这一章我们聊四个最核心的参数——线速率、预加重/去加重、眼图模板,还有 Jitter。我调了这么多年 SerDes,大部分坑都出在这几个地方。

线速率(Lane Rate)—— 链路带宽的基石

线速率,就是每条 lane 上跑的串行比特率。单位是 Gbps。它直接决定了你能传多少数据。JESD204B 支持的线速率范围很宽,从 312.5 Mbps 一路飙到 12.5 Gbps(有的器件能更高)。但选多少,不是拍脑袋定的。

计算公式很简单:

Lane Rate = (M × S × N' × 10/8 × F) / L

M 是转换器个数,S 是每帧采样点数,N' 是采样字长(包含控制位),10/8 是 8b/10b 编码开销,F 是帧时钟频率,L 是 lane 数。你看,线速率和 lane 数成反比。L 越多,单 lane 速率越低,PCB 设计越容易;但功耗和面积会涨。

我个人习惯先把器件手册打开,看它支持的线速率档位。比如 ADC 支持 5 Gbps 和 10 Gbps,我会优先选 5 Gbps,然后适当增加 lane 数。为什么?信号完整性好做啊。10 Gbps 的板子,过孔、连接器、走线长度,稍微不对就给你颜色看。

线速率范围 典型应用场景 设计难度
<12.5 Gbps 12.5 Gbps(高分辨率 ADC/DAC) 极高
6.25 ~ 12.5 Gbps 中等分辨率、多通道系统 高
<6.25 Gbps 通用转换器、低速链路 中等

⚠️ 避坑:芯片手册上的最大线速率往往是实验室理想环境测的。实际板子上,建议留 15% ~ 20% 的余量。我见过有人非要把 12.5 Gbps 的器件跑满,结果高温下眼图塌得像一坨泥。

还有一点,线速率和参考时钟必须严格同步。JESD204B 要求 device clock 和 SYSREF 同源,这个我建议你们在设计初期就跟时钟团队对好,否则后期改起来真的很痛苦。

预加重与去加重——补偿高频损耗

信号在 PCB 上走,高频分量衰减比低频快得多。这会带来什么问题?码间干扰(ISI)。你想想看,一个 1010 交替的序列,经过长走线后,上升沿变缓,眼图闭合。预加重和去加重就是用来补偿这个的。

  • 预加重:发射端在信号跳变时,把幅度短时间提高。说白了,就是多给点能量,让高频分量冲过去。
  • 去加重:发射端在非跳变保持期,把幅度降低。相当于压低低频成分来平衡高频衰减。

两种本质一样,实现方式略有差异。我记得刚接触 JESD204B 时,总以为调高预加重就能解决一切。后来发现,预加重加太多,反而会引入新的反射噪声。尤其是遇到阻抗不连续的点,过冲能把你眼睛闪瞎。

💡 实战经验:调试时先用默认值,然后观察眼图。如果眼图张开度不够,我建议先调预加重一级一级试。同时用 TDR 看看 PCB 走线阻抗,很多时候根源是阻抗突变,不是预加重不够。

不同芯片厂商对预加重的称呼不一样。有的叫「TX FIR Filter」,有的叫「Driver Equalization」。别看名字花哨,做的事情都一样——补偿信道损耗。去加重的典型 tap 系数配置调试指南:

// 伪代码示意:ADI 器件预加重配置
// 寄存器地址 0x14C[2:0] = TX_PRE
// 预加重电平:0 = off, 1 = -3dB, 2 = -6dB …

tx_precur = 1;   // 3 dB 预加重
tx_postcur = 0;  // post-cursor 关

核心观点:预加重不是越多越好。你的任务是让接收端的眼图干净,不是让发射端的信号像尖峰。调多了,功耗增大,EMI 也跟着涨。

眼图模板——信号质量的直观窗口

眼图,就是把一串数字信号持续采样,叠加在一个眼图上。好的眼图,中间空白区域应该像一只睁大的眼睛。坏的眼图,那就是一条缝,甚至完全闭合。

物理层一致性测试,通常会用眼图模板来卡。模板长什么样子?一个六边形或者一个平行四边形,规定了眼高、眼宽、抖动容限。你测出来的眼图必须把模板完全包住,否则就是 NG。

我以前遇到过一个案子,高速数字板子在实验室里测眼图,左眼高度差那么一点点没过模板。折腾了两周,最后发现是参考时钟的抖动超标。换个低抖动的晶振,眼图瞬间就开了。所以说,眼图不好,60% 的问题根源在时钟。

  • 眼高:垂直方向张开度,代表噪声容限。
  • 眼宽:水平方向张开度,代表定时容限。
  • 占空比失真:眼图交叉点偏移,代表占空比不好。
参数 典型模板要求(12.5 Gbps) 常见问题
眼高 ≥ 100 mV 不足时查预加重/通道损耗
眼宽 ≥ 0.5 UI 不足时查时钟抖动
抖动 ≤ 0.15 UI 不足时查电源/时钟

测量眼图时,示波器的带宽至少要是线速率的三倍。比如 12.5 Gbps,示波器带宽要 ≥ 20 GHz。示波器的探头要够好,否则测出来的眼图是被探头劣化过的,你会被误导去调整本来就正确的东西。

Jitter 指标——抖动的分类与预算

Jitter,就是时钟或数据信号的边沿在时间上的偏离。它直接吃掉你的眼宽预算。JESD204B 对这种高速 SerDes 链路的抖动要求非常严格。

我把 Jitter 分成两类来看:

  1. 随机抖动(RJ):由热噪声等物理效应引起,概率呈高斯分布。没法消除,只能跟它共存。
  2. 确定性抖动(DJ):由串扰、电源噪声、ISI 等引起,有固定分布。可以优化。
  3. 还有周期抖动(PJ)、数据相关抖动(DDJ)等,都是 DJ 的子类。

总抖动的估算公式:

TJ = DJ + 14.069 × RJ(rms)  // 对应 10^-12 BER 的性价比

这个 14.069 是从哪里来的?对应 BER=1e-12 的高斯误差函数反推的系数。如果总抖动超过 0.5 UI(比特周期的一半),那眼图基本就废了。

我记得有一次在 12.5 Gbps 链路上,怎么调都调不好眼图。用频谱仪一测,发现是开关电源的 ripple 耦合进了时钟。换上低噪声 LDO,整个世界清净了。所以,Jitter 问题的排查顺序:先查电源,再查时钟,最后查通道。90% 的抖动根源都在前三者。

⚠️ 注意:JESD204B 的 SYSREF 抖动也是一个大坑。SYSREF 要和 device clock 对齐,但 SYSREF 本身如果抖动太大,LMFC 会出现额外的不确定性,导致确定性延迟(deterministic latency)失效。我建议 SYSREF 尽量用单独的干净时钟生成,不要跟数据共用 PLL。

JESD204B 物理层关键参数关系图 线速率 Lane Rate 预加重 / 去加重 眼图模板 Jitter 指标 信号完整性评估 抖动预算分配 眼图闭合 / 开启 链路 BER(误码率)

这张图把物理层的几个参数串在一起。线速率是起点,决定了你的信道损耗等级。预加重/去加重用于补偿信道损耗,不影响眼图模板的形状。Jitter 体现在眼图闭合程度,最终都要落到 BER。调试的时候,我建议的逻辑顺序就是这样:先确认线速率,再调预加重,然后测眼图。如果眼图不好,回头查 Jitter 来源,而不是盲目调预加重。