3. 眼图参数详解(上):眼高、眼宽、眼幅度

眼图参数里,眼高、眼宽、眼幅度这三兄弟,是衡量信号质量最直接的指标。我第一次上手调试高速PHY时,主管丢给我一句话:“先把眼图打开,再谈别的事。” 说白了,这仨参数就是判断链路有没有“打开”的核心依据。

3.1 眼高(Eye Height)—— 信号的“安全净空”

眼高,就是眼图在垂直方向上的开口大小。它代表接收端能分辨“0”和“1”的电压余量。你想想看,如果眼高趋近于零,接收器根本分不清高低电平,误码率直接起飞。

定义上,眼高是眼图中心位置(通常取UI中点)上,逻辑“1”电平下限减去逻辑“0”电平上限的差值。单位一般是mV或V。

关键公式(简化理解):
眼高 = V1_min – V0_max

我在项目里遇到过一种情况:刚上电时眼高有350mV,跑着跑着掉到120mV。查了半天,发现是电源纹波耦合进了TX端。嗯,这里要注意——眼高不光看单一值,更得看它在不同码型、不同温度下的稳定性。

影响眼高的主要因素

  • TX输出电压摆幅:摆幅越小,眼高越矮。很多低成本PHY为了省功耗,把摆幅压得很低,结果眼高不够,被迫换芯片。
  • 信道衰减:高频分量被PCB走线吃掉后,电压幅度会降低。我记得有一次用30英寸的背板,信号到接收端只剩一半幅度,眼高从400mV跌到180mV。
  • 串扰和噪声:垂直方向上的毛刺会把眼高“吃掉”。特别是相邻信号线间的串扰,会让眼图顶部和底部变厚。
我的测试经验: 测量眼高时,建议多取几个UI位置的平均值,不要只抓一个中心点。有些测试软件默认只在眼图中心测量,但实际最佳采样点可能偏一点,用统计眼图的“eye mask”来辅助判断更稳妥。

3.2 眼宽(Eye Width)—— 信号的“时间窗口”

眼宽,就是眼图在水平方向上的开口宽度。它告诉你接收器可以在多长时间窗内可靠采样。单位一般是ps或UI百分比(1UI就是一个比特的周期)。

说白了,眼宽越大,采样时钟的抖动容忍度就越高。

举例:10Gbps信号,1UI = 100ps。如果眼宽只有40ps,意味着时钟抖动不能超过±20ps,否则就会采错。我调试过一个25Gbps的链路,眼宽长期只有0.3UI,最后发现是PLL的参考时钟有超量抖动,换了低抖动晶振之后眼宽才回到0.7UI以上。

避坑指南: 我曾经只看眼高不看眼宽,自认为信号很好。结果到系统联调时,收端就是锁不住,误码率居高不下。一测眼宽,只有0.2UI。记住,眼宽不足,眼高再高也没用——时钟抖动会让你错位采样。

眼宽测量的常见陷阱

  1. 抖动分离:示波器上的眼宽包含随机抖动(RJ)和确定性抖动(DJ)。如果直接读示波器的“Eye Width”参数,往往偏悲观。我习惯用时钟恢复(CDR)后的眼图看眼宽,更接近接收器的实际感知。
  2. 数据相关抖动(DDJ):长连“1”或长连“0”之后的第一跳位,往往延迟偏大,导致眼宽收缩。用PRBS31码型测眼宽,比用PRBS7更严苛——这是我踩过的坑。
  3. 码型效应:有些PHY芯片的预加重对特定码型补偿不到位,眼宽在不同码型下差异很大。建议至少用PRBS15和PRBS31两种码型分别验证。
常见速率下的典型眼宽要求(参考值)
速率1UI(ps)眼宽要求(最小值)典型设计裕量
1 Gbps1000≥ 600 ps> 0.6 UI
5 Gbps200≥ 120 ps> 0.6 UI
10 Gbps100≥ 55 ps> 0.55 UI
25 Gbps40≥ 20 ps> 0.5 UI
56 Gbps (PAM4)~17.86≥ 8 ps(每个眼)> 0.45 UI
个人习惯: 我通常把眼宽要求设为0.6UI以上才算安全。特别对10Gbps以上链路,0.5UI是底线,低于这个数我就开始查抖动来源。

3.3 眼幅度(Eye Amplitude)—— 信号的“真实摆幅”

眼幅度,有时也叫垂直幅度,它测量的是眼图在垂直方向上“1”电平中心线与“0”电平中心线之间的差。跟眼高不同,眼幅度不考虑噪声引起的波动,它反映的是信号本征的电压摆幅。

举个例子:眼幅度 = V1_center – V0_center。如果噪声是零,眼幅度就等于眼高。但现实中噪声和串扰会把眼高压下去,造成两者差异。

我去年调试一款SerDes芯片时,看到眼高只有180mV,但眼幅度有480mV。差这么多?原来是电源平面谐振产生了共模噪声,把眼图的顶部和底部都“顶”了起来。后来加了个去耦电容,噪声消了,眼高回升到420mV。那一次让我记住了:眼幅度是个底层的“基础”参数,眼高是实际的“可用”参数。

三个参数的关系:
眼幅度 ≥ 眼高(理想情况下相等)
眼高 = 眼幅度 – 噪声/串扰引起的垂直闭合量
眼宽与眼高方向独立,但通过抖动和噪声间接关联

什么时候该重点看眼幅度?

  • 调试输出级:想确认TX驱动输出是否达标,眼幅度是最直接的。比如PCIe Gen4要求差分输出幅度在800~1200mV之间,直接看眼幅度。
  • 区分噪声来源:如果眼高远小于眼幅度,说明噪声占主导,需要整治电源/地平面;如果眼幅度本身就低,说明TX摆幅或信道衰减有问题,优先换通道。

3.4 本章知识结构图

眼图三参数知识结构 信号质量评估核心 眼高 (Eye Height) 眼宽 (Eye Width) 眼幅度 (Eye Amplitude) 定义:V1_min - V0_max 单位:mV / V 定义:水平方向开口时间 单位:ps / UI% 定义:V1_center - V0_center 单位:mV / V 主要影响因素 TX摆幅 · 信道衰减 串扰 & 噪声 主要影响因素 RJ · DJ (DDJ/ISI) 码型效应 · 预加重 主要影响因素 TX驱动能力 DC偏置 · 共模噪声 联合分析才能锁定根因 眼高 < 眼幅度 → 优先查噪声 眼宽不足 → 优先查抖动和时钟

3.5 三个参数的实际应用场景对比

场景优先关注的参数典型判断
芯片选型评估眼幅度确保TX输出摆幅符合协议下限
链路调试眼高 & 眼宽眼高 < 200mV 或眼宽 < 0.5UI → 排查问题
噪声定位眼高 vs 眼幅度差异差异 > 30% → 噪声为主;差异 < 10% → 幅度不足为主
抖动分析眼宽 + 抖动分解眼宽窄 + RJ大 → 换时钟源;窄 + DJ大 → 改善预加重或信道
我曾经掉进的坑: 有一回眼图看着挺漂亮,眼高320mV,眼宽0.65UI,以为稳了。结果批量测试时良率只有60%。后来发现示波器用的是长余辉模式,眼宽读数偏大。改用直方图统计眼宽后,实际只有0.4UI。从那以后,我只看统计学意义的眼图参数,不接受“看着漂亮”就走人。

3.6 本章小结(几句话的事儿)

眼高、眼宽、眼幅度,这三个数值读懂了一小半,眼图验证就算入门了。

  • 眼高看的是噪声容限,越低越危险。
  • 眼宽看的是时序容限,越窄越难锁。
  • 眼幅度是信号的底子,底子不行其他都白搭。

实际测试时,别只盯一个数。拿这三个参数互相印证,再结合误码率结果,问题定位会快很多。下回咱们聊聊眼图的另一种参数——眼图交叉点、上升下降时间、抖动传递函数……越挖越有意思。