3. CXL 信号特性

CXL 虽然是基于 PCIe 物理层发展起来的,但它有自己的一套“脾气”。我在刚接触 CXL 时,以为信号特性和 PCIe 完全一样,结果踩了不少坑。这一章咱们就掰开揉碎了讲清楚 CXL 信号到底长什么样,哪些参数会影响后面的触发设置。

说白了,你要想用示波器抓住正确的触发点,就得先知道信号长什么样。否则你连在屏幕上找什么都搞不清楚。

3.1 信号类型与电气特性

CXL 采用差分信号对(D+ / D-),这点和 PCIe 一致。但它的速率更高,对信号完整性的要求也更苛刻。我个人习惯在设计验证阶段,先用示波器看眼图和共模电压,确保链路质量。

  • 差分电压摆幅:通常 800 mV pp 左右(TX 端),实际会受链路损耗影响。
  • 共模电压:大约 0 V(交流耦合后),但在测试点需要关注直流偏置。
  • 眼图模板:CXL 规范定义了不同速率下的眼罩(Mask),超出眼罩区域说明信号有问题。

关键提醒:CXL 支持链路宽度 x4、x8、x16,但电气特性在每个 Lane 上是一样的。测量时建议分别看每条 Lane 的眼图,我遇到过一整条链路只有一条 Lane 抖动异常,其他都正常——这种问题光看汇总结果根本发现不了。

3.2 速率与编码方式

CXL 的速率跟着 PCIe 走,每一代速率翻倍。下面是常用版本的对比表,你心里有个数:

CXL 版本 对应 PCIe 版本 单 Lane 速率 编码方式 有效数据速率
CXL 1.1 / 2.0 PCIe 5.0 32 GT/s 128b/130b 31.69 Gbps
CXL 3.0 PCIe 6.0 64 GT/s PAM4 (通过 FEC) 约 60 Gbps

小经验:编码开销虽然只占很小比例,但示波器触发时要考虑数据速率和实际传输速率之间的差异。比如 32 GT/s 的链路,真实数据率大约是 31.69 Gbps。别弄混了。

3.3 抖动与噪声

抖动是 CXL 信号最让人头疼的问题。它分成两大类:

  • 随机抖动(RJ):由热噪声等随机因素引起,高斯分布,通常用 RMS 值描述。
  • 确定性抖动(DJ):包括数据相关抖动、码间干扰、周期性抖动等,有固定的模式和幅度。

我曾遇到过一块板子,CXL 链路总是间歇性失锁。排查了三天,最后发现是电源纹波耦合到了参考时钟上,产生了 1 MHz 左右的周期性抖动——示波器上看眼图闭合得并不明显,但用抖动分析功能一测,DJ 峰值超标了两倍。

注意:普通触发方案抓不到抖动相关的故障。你需要用示波器的“抖动分析”或“眼图”功能,先测量总抖动(Tj)和确定性抖动(Dj)。如果 Tj 超过 0.3 UI(单位间隔),链路就有风险了。

3.4 测量关键点

当你准备在示波器上观察 CXL 信号时,这几件事必须提前确认:

  1. 示波器带宽:至少是信号速率的 1.5 倍。比如 32 GT/s 信号,建议用 50 GHz 以上带宽的示波器。
  2. 探头选择:差分探头,带宽足够,输入电容要小。我记得有一次用了普通单端探头测差分信号,结果共模抑制比不够,看到的波形全是假的。
  3. 采样率:至少是带宽的 2.5 倍,不然重建波形时会有混叠。
  4. 触发设置:CXL 信号没有固定的周期性同步信号,通常需要基于特定数据模式或边沿条件触发。我会在下一章专门讲触发类型,但你先得有这个意识。

一句话总结:CXL 信号速度快、对抖动敏感、必须用差分测量。示波器触发前做一轮眼图和抖动摸底,能帮你省下大量排查时间。

CXL 信号特性关系图 CXL 信号 速率与编码 32 GT/s / PAM4 电气特性 差分 / 眼图 / 共模 抖动与噪声 RJ / DJ / 总抖动 示波器测量 带宽 / 采样率 / 探头 触发设置 基于模式 / 边沿 了解信号特性是触发设置的基础 先测眼图,再调触发