3. 眼图测试原理:眼图形成机制、眼图参数(眼高、眼宽、抖动)

我开始做高速信号测试那会儿,第一个接触的就是眼图。说白了,眼图就像信号质量的“心电图”——一看就懂,一测就知道链路行不行。这一章我们就把眼图怎么来的、里面的参数怎么看讲透。

眼图是怎么形成的

眼图不是一张静态图,它是数字信号在示波器上反复叠加的结果。你想,示波器把一串随机的 0 和 1 波形,用余辉模式不断刷新显示。因为信号有上升时间、下降时间、过冲、振铃,重复叠加后,这些波形“交织”在一起,就形成了一只只眼睛状的结构。

  • 触发器锁定:示波器必须从被测信号中恢复出时钟,以它为基准触发。
  • 余辉累积:成千上万个比特周期重叠,波形密度高的地方亮,低的地方暗。
  • 对称性:0→1 和 1→0 的跳变路径会形成上下两条“眼线”。

我个人的经验:眼图好不好,先看触发是否稳定。如果时钟恢复抖动大,眼图就会模糊得像起雾的眼镜,你根本没法测准。

眼图结构及参数标注 眼图结构及关键参数 眼高 眼宽 抖动(过零点不确定性) 眼高:垂直方向裕量 眼宽:水平方向裕量 抖动:时间轴不确定性

眼图参数:眼高、眼宽、抖动

每次做 compliance test,判断 pass/fail 最直接的三个指标就是眼高、眼宽和抖动。我给大家拆开讲,顺便聊聊实际测试中容易踩的坑。

1. 眼高 (Eye Height)

说白了,眼高就是眼图在垂直方向还能剩多少“安全空间”。它反映的是信号幅度裕量——接收端能否正确识别 0 和 1。单位一般是 mV 或百分比相对于信号摆幅。

属性说明
定义眼图中心处上下眼线之间的最短垂直距离
典型判据如 PCIe Gen3 要求 ≥100 mV(根据规范)
影响因素幅度噪声、串扰、反射、损耗

重要:眼高测量时一定要确认参考电平(0% / 100%)设置正确。我曾经遇到一例,因为示波器自动设置把电平定偏了,眼高测出 95mV 被判 fail,实际重新设定后是 110mV——白白耽误半天时间。

2. 眼宽 (Eye Width)

眼宽表示接收端在时间轴上的采样裕量。单位常用 UI(Unit Interval)或 ps。比如一个 8 Gbps 信号 UI 是 125 ps,眼宽如果只有 50 ps,就意味着采样位置只要偏一点点就会出错。

属性说明
定义眼图中心水平方向两侧过零点之间的最小距离
典型判据PCIe Gen3 ≥ 0.4 UI,USB 3.0 ≥ 0.3 UI
影响因素数据相关抖动(DDJ)、周期抖动(PJ)、ISI

注意:眼宽测量必须用足够的比特数(通常 1M 以上)。记得有一次我在现场偷懒只采了 100K 个比特,眼宽看起来很大,结果换了 10M 采样,眼宽直接缩了 30%。采样数量不够,抖动的统计分布就不稳定。

3. 抖动 (Jitter)

抖动是眼图测试的核心难点。它本质上是信号边沿位置相对于理想时钟的不确定性。抖动大了,眼宽就缩,眼高也可能受影响。我把抖动分解成两大类给大家讲清楚:

  • 随机抖动(RJ):由热噪声等物理过程产生,服从高斯分布,没法彻底消除,只能预算分配。
  • 确定性抖动(DJ):由电路缺陷或串扰引起,包含 DDJ、PJ、SJ 等,可以通过设计改善。
抖动类型来源特性
RJ热噪声、散粒噪声高斯分布,无界,通常用 RMS 表示
DJISI、串扰、电源噪声有界,峰峰值描述
总抖动 TJRJ + DJ 在特定 BER 下的合成常用 BER=1e-12 作为参考

我建议:做 compliance test 时,先看眼图整体轮廓是不是“睁开”的,再量眼高眼宽,最后分析抖动分离。如果眼图闭合得像一条线,那大概率抖动已经超标了,别急着改参数,先找抖动源。

实战测试要点

讲完原理,我总结几点在测试中会直接用到的经验:

  1. 触发方式:必须用时钟恢复(CDR)触发,不要用外部时钟。CDR 模拟了接收端真正看到的时钟边沿。
  2. 采集点数:至少 1M 个 UI,抖动分析最好 10M 以上。
  3. 均衡处理:CTLE/DFE 是否打开?很多规范要求在接收端均衡之后测眼图。
  4. 模板测试:先用标准模板(mask)做一次快速 pass/fail 筛选。

关键提醒:眼高、眼宽、抖动三者不是孤立的。曾经有一个项目,眼高和眼宽都满足 spec,但误码率一直降不下来。后来我把抖动分离出来,发现随机抖动很小,但存在一个 100 MHz 的周期性抖动——是板上的电源纹波耦合过来的。所以呀,这三个参数要综合看,尤其是抖动,一定要会分解。

嗯,这一节的内容到此为止。下次你拿到一份眼图测试报告,应该能一眼看出性能瓶颈在哪了。