眼图基础:形成原理与关键指标

做高速数字设计的人,每天跟眼图打交道。但你真的吃透了它吗?

说实话,我刚入行那会儿,总觉得眼图就是个示波器里显示的“眼睛”,漂亮就完事了。后来被串扰问题坑过几次才明白——眼图里面藏着的全是信号质量的密码。这一章,我就带你仔细拆解一下。

眼图是怎么形成的?

原理其实不复杂。你把一串随机比特流在示波器上不断叠加,每个比特的波形会重叠在一起。持续几万个周期后,这些波形就形成了“眼睛”的形状。

关键点:示波器的时间基准要和数据速率同步。一般是让示波器以数据速率的整数分之一作为触发时钟,然后把所有波形累加显示。

眼图形成的两个必要条件

  • 数据必须足够随机(PRBS 码型最常用)
  • 示波器触发必须锁定在时钟上

我个人习惯用 PRBS7 或 PRBS15 来做眼图测试。 PRBS7 伪随机序列长度 127,对付 1-2Gbps 的信号够了。如果速率更高,我会换 PRBS31,伪随机序列更长,更能暴露低频段的串扰问题。

一个小技巧:实测时记得先让示波器跑几万个比特再触发叠加,否则眼图会“睁不开”。我刚开始调试时犯过这错,折腾了半小时才发现是触发时机没调好。

眼图的三个核心指标

你拿到一张眼图,第一眼看什么?我通常看三个方面:眼高、眼宽、抖动。这仨指标几乎决定了信号的可靠性能到什么程度。

眼高(Eye Height)

眼高就是眼睛垂直方向开口的大小,单位是 mV 或 V。它代表接收端能分辨“1”和“0”的电压裕量。

为什么重要?假如眼高只有 50mV,接收端的判决器稍微有点噪声偏移,就会误判。我曾经遇到过一块板子,眼高从 300mV 掉到 80mV,排查到最后是相邻信号线之间的串扰把电压裕量吃掉了。

实际经验:对于 3.3V 的 LVCMOS 信号,眼高低于 200mV 基本就危险了。对于差分信号(比如 LVDS、CML),眼高通常差模在 300mV-400mV 算健康,低于 200mV 就要警惕。

信号类型 典型单端摆幅 建议最小眼高 预警阈值
LVCMOS 3.3V 3.3V 500mV 200mV
LVCMOS 1.8V 1.8V 300mV 120mV
LVDS 差分 350mV(差模) 250mV 150mV
CML 差分 400mV(差模) 300mV 180mV

眼宽(Eye Width)

眼宽是眼睛水平方向开口的大小,单位是 ps 或 ns。它表示数据有效采样窗口的时间宽度。

说白了,眼宽告诉你接收时钟能在哪个时间点采样而不出错。眼宽越小,对时钟相位的要求越苛刻。抖动、码间干扰、信号反射都会压窄眼宽。

我记得遇到过一块 FPGA 到 DDR3 的 PCB,时钟频率 800MHz。眼图测量发现眼宽只有 120ps,而 DDR3 的建立保持窗口总共才 200ps。事后分析是走线等长没做好,导致数据偏斜(skew)把眼宽挤掉了。

注意:眼宽必须大于接收芯片的 tSU(建立时间)+ tH(保持时间)之和。否则哪怕眼高再漂亮,采样也会出错。

抖动(Jitter)

抖动就是信号的边沿位置在时间上的随机漂移,单位是 ps rms 或 ps peak-to-peak。经常说“总抖动 TJ”,下面分两大类:

  • 随机抖动 RJ:热噪声、散粒噪声导致,服从高斯分布,无法预测
  • 确定性抖动 DJ:串扰、反射、电源噪声、码间干扰导致,有规律可循

你想想看,抖动直接吃掉眼宽。100ps 的峰峰抖动加上 100ps 的其他损耗,一个 400ps 的比特窗口就剩 200ps 了。

我做排查时,会用示波器的抖动分解功能分离 RJ 和 DJ。如果 RJ 占主导,大概率是电源或参考时钟问题。如果 DJ 占主导,那就盯着串扰和阻抗不连续找原因。

三个指标的相互关系

它们不是独立的。举个例子:你加长了走线,损耗变大 → 眼高降低;同时反射变大 → 抖动增加 → 眼宽变窄。一个点往往影响两个指标。

眼图核心指标与退化因素关系图 眼图质量 眼高 (Eye Height) 眼宽 (Eye Width) 抖动 (Jitter) 串扰 阻抗不连续 电源噪声 码间干扰 说明:眼高受串扰和电源噪声影响最大; 眼宽被抖动和码间干扰压缩;抖动则被上述所有因素共同贡献。

实测顺序建议:拿到一块板子,先看眼图整体有没有明显“塌陷”。如果眼图闭合严重,先测眼宽,再测眼高,最后分解抖动。因为眼宽往往是第一瓶颈。

实测中我踩过的坑

讲几个我亲身经历的事情,希望能帮你少走弯路。

  • 触发电平设太高:有一次我测 1.8V 的 LVCMOS,示波器触发电平设成了 1.0V,结果眼图一直不对称。后来发现触发电平应该设在中值电压(0.9V 左右),波形才能对称叠加。
  • 采样点数不够:我习惯至少采 1 百万个比特(1000 个 UI 以上),采样太少眼图轮廓会虚。记得有次只采了 10000 个点,眼图显得很大,加大采样后才发现抖动其实很严重。
  • 忽略了信号路径上的去耦电容:某次 10Gbps 的 PCB 眼图抖动超标,排查了两天,最后发现是板上一个去耦电容脱落了。电源噪声通过串扰耦合到信号线上,抖动直接翻倍。

关键参数速查表

参数 符号 单位 典型测量方法 常见退化原因
眼高 EH mV 直方图法(眼图开眼处顶部-底部) 串扰、电源噪声、信号衰减
眼宽 EW ps 直方图法(眼图交叉点之间的时间) 抖动、码间干扰、反射
总抖动 TJ ps BERT 扫 BER 浴缸曲线 各种噪声源
确定性抖动 DJ ps 双狄拉克法(分离高斯尾巴) 串扰、反射、电源噪声
随机抖动 RJ ps rms 抖动谱分析 / 直方图拟合 热噪声、闪烁噪声

我个人的判断经验:在产品设计阶段,我通常要求眼高不低于信号摆幅的 30%,眼宽不小于数据位宽的 40%。如果抖动超过位宽的 15%,就必须排查抖动来源。这些数字虽然保守,但能保证量产良率。