第二章 眼图基础概念

眼图这东西,说白了就是把一串数字信号在示波器上反复叠加,最后你看到的那个类似眼睛的图案。

我第一次看到眼图是刚入行那会儿,师傅指着屏幕说:“你把这玩意儿调圆了,链路基本就稳了。”我当时一脸懵——一个波形图而已,跟眼睛有什么关系?后来才明白,眼图是高速链路的“体检报告”,它把时序、噪声、幅度这些看不见的东西全暴露在眼前。

2.1 眼图是怎么形成的?

想象一根数据线上的比特流,01010101……不停跳变。我们用示波器抓长段时间,把所有比特波形重叠到一起。每个比特在屏幕同一位置画一次,Z轴亮度叠加。最后你看到的,就是一条条轨迹交织出的“眼睛”。

  • 横轴:时间,一个UI(单位间隔)的宽度
  • 纵轴:电压,对应逻辑0和1的幅度
  • 亮度:波形经过频率,越亮说明该位置越常出现

小诀窍:眼图一定要看“开口”大小。开口越大,链路越健康。我在项目里习惯先看眼图,再谈调优——这比看任何仿真报告都直观。

2.2 眼图参数详解

一个好眼图,得有四个指标同时达标:眼高、眼宽、抖动和眼幅。我按实战中关注度排序,给你列个表。

参数 定义 我的关注点
眼高 (Eye Height) 眼图垂直开口的电压差值 低于200mV就要警惕,尤其UFS4.0
眼宽 (Eye Width) 眼图水平开口的时间宽度 通常要求≥0.4 UI,太窄会误码
抖动 (Jitter) 过零点的时间偏差 随机+确定性,我习惯分开测
眼幅 (Eye Amplitude) 逻辑1与0的电压差 低了说明驱动弱,高了可能反射

重点笔记:眼高和眼宽是UFS PHY合规测试的硬性指标。MIPI联盟规定UFS4.0的Rx端眼高不低于140mV、眼宽不低于0.35 UI。你想想,差一个0.01 UI可能就不过——别问我怎么知道的,我吃过亏。

2.3 抖动的分类与影响

抖动是眼图杀手,没有之一。为什么?因为抖动压缩了眼宽,让判决器在错误的时间采样。我把它分成两类:

2.3.1 随机抖动 (RJ)

热噪声引起,高斯分布,没有边界。你没法完全消除,只能靠带宽限制。我在项目中见过RJ偏大的情况,往往是因为电源噪声耦合到了时钟上。

2.3.2 确定性抖动 (DJ)

有根源的抖动,可测可优化。常见类型:

  • 数据相关抖动 (DDJ) —— 码间串扰引起。特别长的0或1之后,电平爬不到位,下一个跳变就晚了。
  • 占空比失真 (DCD) —— 时钟占空比不是50%。我遇到过一根差分线长度不匹配,直接导致DCD超标。
  • 周期性抖动 (PJ) —— 某个频率的干扰源,比如开关电源的纹波。

避坑指南:我曾经调试一块UFS 3.0板子,眼图开口偏左,怎么调CTLE都没用。后来发现是DCD引起的——TX的时钟buffer焊接不良,占空比漂到42%。换了个芯片就好了。所以,眼图不好先别急着动均衡,查查时钟。

2.4 眼图分析的“三个层次”

看眼图不能只看一张图。我习惯按以下步骤递进:

  1. 肉眼观察开口 —— 两秒内判断有没有明显塌陷、不对称、双线。
  2. 测量四个参数 —— 用示波器或BERT扫出眼高、眼宽、抖动、眼幅。对比spec。
  3. 分析抖动分解 —— 把总抖(TJ)拆成RJ和DJ,定位问题源头。

很多时候,到第二步就能判定合规。但调优时,必须走到第三步。

2.5 眼图与误码率的关系

眼图本质上是一个概率统计图。开口越小,误码率(BER)越高。UFS链路通常要求BER≤1e-12。什么意思?十亿个比特里最多只能错一个。

眼图的翼形部分,其实是RS(接收端灵敏度)的体现。如果能消掉部分抖动,眼宽增加,BER自然下降。嗯,这也是CTLE和DFE的作用所在——它们就是帮眼睛睁开。

眼图知识体系:定义 → 参数 → 抖动 → 分析流程 眼图 Eye Diagram 定义:波形叠加 四大参数 抖动 Jitter 横轴:时间 (UI) 纵轴:电压 (V) 眼高 → 垂直开口 眼宽 → 水平开口 眼幅 → 逻辑幅值 BER → 误码率目标 RJ (随机) DJ (确定性) ├─ DDJ (码间串扰) ├─ DCD (占空比失真) └─ PJ (周期性) 分析流程:肉眼观察 → 参数测量 → 抖动分解

2.6 小结