第二章 眼图的基本概念与原理

2.1 眼图是怎么来的?——形成机理

眼图这名字,听着挺形象——就是波形叠加在一起,看起来像一只睁开的眼睛。我刚开始接触SerDes时,对着示波器看了半天,心想这玩意儿哪像眼睛啊?直到我看懂了它的形成过程。

说白了,眼图就是示波器把很多比特周期的波形,按照时钟的节拍重叠在一起。发送端不断吐出0101的码流,接收端示波器触发在时钟边沿,一次一次把波形刷上去。时间长了,屏幕上就会留下一个发光的、有眼皮的图案。那个“眼睛”张得越大,信号越好。

这里面有几个关键点:

  • 时钟恢复:示波器必须用恢复出的时钟触发,不然每个bit位置对不准,眼图就糊了。
  • 随机数据:用PRBS(伪随机码)测试,才能覆盖各种跳变模式。
  • 足够多的比特:我一般至少采集10万个UI(单位间隔),否则眼图统计意义不够。

有一次我在实验室调一块28Gbps的板子,眼图死活不张开。折腾半天发现是示波器的触发源选错了,用了外部参考时钟而不是恢复时钟。换过来以后,眼睛一下子就睁开了。嗯,这种低级错误犯一次就够了。

来看一张我画的流程,帮大家理解眼图是怎么叠加出来的:

眼图形成原理流程 发送PRBS数据 串行比特流 时钟恢复 示波器采集波形 多次叠加显示 形成眼图 核心要点: • 触发必须用恢复时钟 • 数据需覆盖高频跳变 • 至少采集10万个UI

2.2 定性观察:一眼看出信号好坏

把眼图调出来以后,怎么快速判断信号质量?我个人习惯先看三样东西:

  1. 眼睛张开幅度——垂直于水平方向的开口高度。越高,信号噪声裕量越大。
  2. 眼睛宽度——水平方向开口的宽度。越宽,时钟采样裕量越好。
  3. 眼皮的“毛刺”——眼图上下边缘的模糊程度。毛刺越重,抖动越厉害。

你想想看,如果一个眼图像切开的橘子一样饱满,边缘清晰锐利,那信号基本没问题。但如果眼图像一团乱麻,中间都快闭上了,那肯定有问题。

曾经我遇到一个项目,12.5Gbps链路在常温下眼图很好,一到高温测试眼图就收窄。后来查出是某颗PLL芯片温度特性不好,导致时钟抖动增大。所以做眼图定性观察时,一定要看全温范围的趋势。

另外,眼图上下眼线不对称,可能是占空比失真(DCD)——发送端的高低电平持续时间不一致。左右边缘不对称,则往往是码间干扰(ISI)在作怪。

2.3 定量分析:用数字说话

光靠眼睛看不够,必须用数字量化。我常用的定量指标有下面这些:

指标定义典型合格值(10Gbps以上)
眼高眼图中央垂直开口的电压差> 200 mV
眼宽眼图中央水平开口的时间宽度> 0.3 UI
抖动(TJ)总抖动,通常用峰峰值< 0.2 UI
占空比失真高电平宽度与低电平宽度之差< 5%
垂直噪声眼图中线附近电压波动标准差< 10 mV

我常用的方法是:先用示波器的自动眼图测量功能测出眼高、眼宽、抖动,再加载芯片规格的掩码(mask)去比。只要眼图外沿不碰掩码区域,就算通过。碰到掩码?对不起,设计要回炉。

抖动分析可以拆成随机抖动(RJ)和确定性抖动(DJ)。RJ服从高斯分布,DJ有固定幅度。用双狄拉克法可以分离它们。我在实际项目里,经常发现RJ很小(几ps RMS),但DJ因为电源噪声或串扰变得很大。这时候光做眼图不够,得去查电源完整性或串扰耦合路径。

最后提醒一句:眼图质量评估不能只看一种条件。同一个链路,在常温、高温、低温、不同码型下眼图可能天差地别。我习惯在最差角(最慢工艺、最高温度、最低电压)和最差码型(如长连0后跳1)下测量眼图——这才是真正的生死线。