3. 眼图基础:眼图的形成与测量、眼高/眼宽/抖动含义、透过眼图评估链路质量

面试里问到眼图,我通常会让候选人先描述一下它长什么样。很多人能说出“像个眼睛”,但再往深了问——眼图怎么来的、每个参数对应什么物理意义——就开始含糊了。这一章咱们就把眼图彻底聊透。

3.1 眼图的形成:为什么波形叠起来就成了眼睛?

简单说就是咱们把很多个bit的波形叠在一起看。发送端发一串随机码,示波器用时钟做触发,把所有周期的波形重叠显示。因为信号有上升时间、下降时间、过冲、振铃,不同bit的波形不会完全重合,叠多了就形成了一只“睁开的眼睛”。

我常碰到一种误解:有人以为眼图是实时显示的单个波形。其实不是,它本质上是个统计图。每扫一次屏幕,可能叠了上万个bit的轨迹。

关键词:眼图 = 多次采样 + 波形叠加 + 统计分布

为什么会形成眼睛中间那个“开口”?因为跳变沿在中间交叉,而采样点在开口中央取电平高低的概率最大。如果链路质量好,眼睛睁得又大又圆。如果噪声大、码间干扰严重,眼睛就像熬夜三天——眯成一条缝。

我在调试28G链路时遇到过一种情况:看单根走线的眼图还行,一上背板就变眯眯眼。后来发现是过孔残桩效应没处理好——这就是眼图告诉你的故事。

眼图的形成可以用下面这张图概括:

眼图形成的核心逻辑 发送端 随机码流 信道 损耗/反射/串扰 采样+触发 时钟同步 波形叠加 统计形成眼图 典型眼图形态 眼 高 眼宽 抖动(交叉点弥散) 叠得够多,眼睛就出现了 每个bit轨迹都不完全重合

3.2 眼图的三个核心指标:眼高、眼宽、抖动

面试高频题就藏在这里。你别被一堆参数吓到,真正核心的就三个:眼高、眼宽、抖动。把这三个搞明白,眼图就懂了大半。

眼高(Eye Height)

眼高决定了接收端能分清楚“1”和“0”的程度。说白了就是信号噪声裕量。你在眼睛中央垂直方向量一下,从最上面那一堆波形的下边界到最下面那一堆波形的上边界,这个间距就是眼高。

我一般在项目里用电压单位来量化,比如200mV。标准是:眼高越大越好,但你不能只看值——要和接收端灵敏度一起看。如果接收端最小分辨能力是100mV,你的眼高只有120mV,那基本没裕量。

我的经验:调链路时,眼高低于100mV就要警惕了。我曾经遇到一个项目,眼高标称有180mV,但量产时温度一上来掉到80mV——后来发现是预加重设置太激进,把高频抬高了,低频反而没照顾到。

眼宽(Eye Width)

眼宽决定的是时序裕量。你从眼睛开口最宽的地方水平量一下,单位一般是皮秒或UI。比如在25Gbps下,1个UI是40ps,如果眼宽只有20ps,说明半眼时间都被各种偏移吃掉了。

记得有一次面试,我问候选人眼宽受什么影响最大。他说“抖动”。对,但不全对。还有占空比失真和码间干扰。尤其是码间干扰,会导致特定bit模式下的边沿偏移,眼宽被压缩。

抖动(Jitter)

抖动就是边沿位置的不确定性。你盯着眼图的交叉点看,那一条条散开的线就是抖动的体现。抖动越大,眼宽越小,误码率跟着飙。

抖动又分随机抖动(RJ)和确定性抖动(DJ)。这个后面专门有一章讲,今天只提一点:RJ是高斯分布,跟带宽有关,你很难彻底消除;DJ有固定来源,比如电源噪声、串扰、码间干扰,这些能通过设计和调优压低。

指标 衡量内容 常用标准 我的建议
眼高 电压裕量 > 200mV(24Gbps以下) 结合接收端灵敏度评估
眼宽 时序裕量 > 0.5 UI 注意码间干扰贡献
抖动 边沿不确定性 抖动量 < 0.3 UI 区分RJ/DJ分别处理

3.3 透过眼图评估链路质量:不只是看“眼睛睁没睁开”

很多人看眼图只看一个指标——“眼睛睁开了吗?”专业点说这叫眼图张开度。但实际链路评估要综合好几面看。

我常用的评估步骤大概分五步:

  1. 先看眼高和眼宽的值——有没有达到设计目标
  2. 再看眼睛的对称性——上下不对称说明占空比失真或过冲严重
  3. 检查眼图内有没有明显的“双线”或“多线”——这往往是码间干扰或反射导致的
  4. 目测交叉点的厚度——越厚抖动越大
  5. 看眼图的“眉毛”部分——如果出现明显的台阶或凹陷,说明反射点就在附近
避坑提醒:我曾经在一些Demo里看到有人只测眼高,不看抖动。结果眼高好看,但抖动已经大到接收端CDR锁不住。所以眼图评估一定要联动:眼高+眼宽+抖动量,缺一个都不完整。

还有一种很实用的小技巧——眼图浴盆曲线。如果说眼图是定性看,浴盆曲线就是定量看。它能告诉你不同误码率下的眼宽余量。虽然这一章不展开,但你要知道:做链路收敛评估时,光看眼图不够,浴盆曲线是必须的。

另外,眼图每个区域代表的含义,我整理了一张对照表,建议你记一下:

眼图区域 代表什么 常见问题
眼睛开口中间 采样点附近的电压裕量 裕量太小 → 误码上升
上方水平亮带 高电平分布区域 过宽 → 噪声大;有凹陷 → 反射
下方水平亮带 低电平分布区域 同上
交叉点 边沿交叉区域 厚度大 → 抖动高;偏移 → 占空比失真
眼图两侧“眉毛” 边沿与电平过渡区 台阶状 → 反射严重

再来一个实际项目例子。有一次我调一块112Gbps PAM4的板子,眼图看起来还行,眼高有300mV。但我发现交叉点特别厚,厚度快赶上眼高一半了。一测抖动,RMS抖动超过0.2UI——问题出在参考时钟的电源纹波上。后来在时钟PLL的电源上加了个LDO,抖动降了一半。这种经验只能靠“看眼图+捕捉异常+推根溯源”来积累。

最后说一点:眼图是统计结果,不是瞬时响应。所以做评估时,至少等示波器积累几万个波形再做判断。有些新手着急,扫两三秒就说“眼图睁得不错”——那是运气好,抖动还没跑出来。我记得有一次量产前测眼图,前5分钟看着都好,第6分钟突然出现一个大幅度的低频抖动,眼宽瞬间减半。原因?电源切换负载周期导致的。

所以我的习惯是:看眼图要看动态,至少跑一分钟。尤其在做高速SerDes量产测试时,眼图的稳定性和一致性和值一样重要。