4. 眼图模板与规范:Gen4眼图模板参数、合规要求
眼图模板这东西,说白了就是一把“标尺”。你拿眼图去量信号质量,合不合格,模板说了算。Gen4的眼图模板比Gen3严了不少,我最早看规范时也吓了一跳——怎么窗口缩这么小?
不过搞过几次测试就明白了,PCIe 4.0跑16 GT/s,信号周期才62.5 ps,抖动和噪声稍微大一点,眼就闭上了。模板就是逼着你把通道和收发器都做到位。
4.1 眼图模板的三个核心参数
标准里定义了三个维度,我习惯记成“高、宽、位置”。
| 参数 | Gen4规格 | 说明 |
|---|---|---|
| 眼高(Eye Height) | ≥ 100 mV(差分) | 在模板中心垂直方向上的最小开度 |
| 眼宽(Eye Width) | ≥ 0.3 UI(约18.75 ps) | 在模板中心水平方向上的最小开度 |
| 最差眼宽(Worst Eye Width) | ≥ 0.2 UI(约12.5 ps) | 考虑所有数据抖动后的最窄宽度,不能低于这个值 |
嗯,这里要注意——眼高和眼宽都是在“模板中心位置”测量的。这个中心位置在哪儿?规范里写了,是经过一定的抖动消除(Dual-Dirac去卷积)之后的眼图中心点。
我记得有一次项目,眼图看起来挺漂亮,但一上模板就报错。后来发现是时钟恢复(CDR)的带宽设错了,眼图中心偏移了0.05 UI。你想想看,这么一偏,模板边缘就切到眼里去了。
4.2 模板形状与合规判定区域
Gen4的眼图模板不是简单的一个矩形框,标准里定义了一个六边形模板。为什么是六边形?因为实际信号的眼图边缘不是垂直的,抖动和噪声导致的眼闭合是斜线过渡的。六边形更接近真实失效边界。
合规判定的规则其实很简单:
- 所有采样点必须落在六边形模板的外部(即模板内部是禁止点)
- 模板内的点数量 = 0,才算通过
- 眼图测量需要采集至少 10⁶ 个UI以上的比特,确保统计意义
4.3 眼图模板与抖动预算的关联
模板参数不是凭空来的,它和系统的抖动预算直接挂钩。Gen4的总抖动预算(TJ)约0.6 UI(37.5 ps),其中随机抖动(RJ)占约0.17 UI,确定性抖动(DJ)占约0.43 UI。
你看眼宽要求0.3 UI,其实就是从总抖动预算里扣掉了CDR跟踪能力和接收机均衡裕量后,剩下给信号开度的空间。
// 简化版抖动预算分配(Gen4为例)
总抖动 TJ = 0.6 UI
- 随机抖动 RJ(rms) = 0.025 UI → 峰峰值 ≈ 0.17 UI (BER=10⁻¹²)
- 确定性抖动 DJ = 0.43 UI
- 数据相关抖动 DDJ = 0.18 UI
- 占空比失真 DCD = 0.05 UI
- 码间干扰 ISI = 0.20 UI
- 剩余眼宽预算 = 0.6 - 0.17 - 0.43 = 0.0 UI?不对。
// 实际CDR会跟踪低频抖动,所以有效眼宽预算更好:
TJ_eff = 0.6 - (CDR跟踪到的抖动)
≈ 0.6 - 0.12 = 0.48 UI
眼宽要求取 0.3 UI → 留出0.18 UI裕量
4.4 Gen4接收端抖动容限要求
发射端眼图达标还不够,接收端也得扛得住抖动。规范里对接收端抖动容限(Jitter Tolerance)有明确要求——接收机必须能容忍一定量的正弦抖动,而不能发生误码。
| 频率范围 | 抖动幅度(峰峰值) | 测试条件 |
|---|---|---|
| 10 kHz – 100 kHz | 0.3 UI | 低频抖动,CDR应能跟踪 |
| 100 kHz – 1 MHz | 0.2 UI | 中频段,需要均衡器配合 |
| 1 MHz – 10 MHz | 0.15 UI | 高频抖动,主要由PLL决定 |
| > 10 MHz | 0.1 UI | 超高频,通常不是问题 |
说白了,就是你在接收端注入一个正弦抖动信号,看看BER会不会超过10⁻¹²。我当初在实验室折腾过一个案子——板子眼图测出来完全合格,但连上对端设备就掉链路。后来查了一周,发现接收端PLL的带宽偏窄,在50 kHz附近有增益峰值,正好把抖动放大了。换成宽带宽PLL就没事了。
4.5 眼图模板测试流程框架
我把整个测试逻辑整理成了一幅图,方便你记。
流程中最容易出问题的其实是“时钟恢复”这一步。不同的CDR带宽会得到不同的眼图中心,进而影响模板通过率。我建议你在测试前先用校准文件验证一下CDR设置是否和待测设备匹配。
4.6 常见的Gen4眼图不合格原因与对策
- 眼高不足:多半是链路损耗太大,或者TX幅度设置偏低。检查PCB走线长度和过孔数量,考虑加CTLE。
- 眼宽不足:抖动过大。优先看ISI,调整TX的FFE系数能显著改善。
- 眼图中心偏移:CDR相位设置不当或参考时钟抖动偏大。检查PLL的锁定状态。
- 模板边角有毛刺:可能是信号反射或串扰。仔细检查阻抗匹配,特别是连接器区域。
我曾经在一个服务器主板上折腾了三天,眼高总是差5 mV。后来拿TDR测了一下链路阻抗,发现BGA焊球处有个小凹坑,阻抗偏低。换了焊接工艺就过了。有时候,眼图不合格不一定是设计问题,制造工艺也会坑你。