3. 眼图基础:眼图的形成与测量、眼高/眼宽/抖动含义、透过眼图评估链路质量
面试里问到眼图,我通常会让候选人先描述一下它长什么样。很多人能说出“像个眼睛”,但再往深了问——眼图怎么来的、每个参数对应什么物理意义——就开始含糊了。这一章咱们就把眼图彻底聊透。
3.1 眼图的形成:为什么波形叠起来就成了眼睛?
简单说就是咱们把很多个bit的波形叠在一起看。发送端发一串随机码,示波器用时钟做触发,把所有周期的波形重叠显示。因为信号有上升时间、下降时间、过冲、振铃,不同bit的波形不会完全重合,叠多了就形成了一只“睁开的眼睛”。
我常碰到一种误解:有人以为眼图是实时显示的单个波形。其实不是,它本质上是个统计图。每扫一次屏幕,可能叠了上万个bit的轨迹。
为什么会形成眼睛中间那个“开口”?因为跳变沿在中间交叉,而采样点在开口中央取电平高低的概率最大。如果链路质量好,眼睛睁得又大又圆。如果噪声大、码间干扰严重,眼睛就像熬夜三天——眯成一条缝。
我在调试28G链路时遇到过一种情况:看单根走线的眼图还行,一上背板就变眯眯眼。后来发现是过孔残桩效应没处理好——这就是眼图告诉你的故事。
眼图的形成可以用下面这张图概括:
3.2 眼图的三个核心指标:眼高、眼宽、抖动
面试高频题就藏在这里。你别被一堆参数吓到,真正核心的就三个:眼高、眼宽、抖动。把这三个搞明白,眼图就懂了大半。
眼高(Eye Height)
眼高决定了接收端能分清楚“1”和“0”的程度。说白了就是信号噪声裕量。你在眼睛中央垂直方向量一下,从最上面那一堆波形的下边界到最下面那一堆波形的上边界,这个间距就是眼高。
我一般在项目里用电压单位来量化,比如200mV。标准是:眼高越大越好,但你不能只看值——要和接收端灵敏度一起看。如果接收端最小分辨能力是100mV,你的眼高只有120mV,那基本没裕量。
眼宽(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 透过眼图评估链路质量:不只是看“眼睛睁没睁开”
很多人看眼图只看一个指标——“眼睛睁开了吗?”专业点说这叫眼图张开度。但实际链路评估要综合好几面看。
我常用的评估步骤大概分五步:
- 先看眼高和眼宽的值——有没有达到设计目标
- 再看眼睛的对称性——上下不对称说明占空比失真或过冲严重
- 检查眼图内有没有明显的“双线”或“多线”——这往往是码间干扰或反射导致的
- 目测交叉点的厚度——越厚抖动越大
- 看眼图的“眉毛”部分——如果出现明显的台阶或凹陷,说明反射点就在附近
还有一种很实用的小技巧——眼图浴盆曲线。如果说眼图是定性看,浴盆曲线就是定量看。它能告诉你不同误码率下的眼宽余量。虽然这一章不展开,但你要知道:做链路收敛评估时,光看眼图不够,浴盆曲线是必须的。
另外,眼图每个区域代表的含义,我整理了一张对照表,建议你记一下:
| 眼图区域 | 代表什么 | 常见问题 |
|---|---|---|
| 眼睛开口中间 | 采样点附近的电压裕量 | 裕量太小 → 误码上升 |
| 上方水平亮带 | 高电平分布区域 | 过宽 → 噪声大;有凹陷 → 反射 |
| 下方水平亮带 | 低电平分布区域 | 同上 |
| 交叉点 | 边沿交叉区域 | 厚度大 → 抖动高;偏移 → 占空比失真 |
| 眼图两侧“眉毛” | 边沿与电平过渡区 | 台阶状 → 反射严重 |
再来一个实际项目例子。有一次我调一块112Gbps PAM4的板子,眼图看起来还行,眼高有300mV。但我发现交叉点特别厚,厚度快赶上眼高一半了。一测抖动,RMS抖动超过0.2UI——问题出在参考时钟的电源纹波上。后来在时钟PLL的电源上加了个LDO,抖动降了一半。这种经验只能靠“看眼图+捕捉异常+推根溯源”来积累。
最后说一点:眼图是统计结果,不是瞬时响应。所以做评估时,至少等示波器积累几万个波形再做判断。有些新手着急,扫两三秒就说“眼图睁得不错”——那是运气好,抖动还没跑出来。我记得有一次量产前测眼图,前5分钟看着都好,第6分钟突然出现一个大幅度的低频抖动,眼宽瞬间减半。原因?电源切换负载周期导致的。
所以我的习惯是:看眼图要看动态,至少跑一分钟。尤其在做高速SerDes量产测试时,眼图的稳定性和一致性和值一样重要。