二、眼图的基本测量参数:眼高、眼宽、抖动、占空比失真(DCD)

说到眼图,很多人第一反应就是那个张开的“眼睛”。但真正做验证的时候,我们看的可不是它好不好看。说白了,眼图就是信号质量的可视化窗口。

我刚开始做高速信号测试那会儿,光盯着眼图好不好看。结果被老工程师一句话点醒:“你光看形状有什么用?参数才是真家伙。”从那以后,我就养成了一个习惯——拿到眼图,先瞄四个核心参数:眼高、眼宽、抖动、DCD。

眼图四大核心参数:这是判断PHY输出信号质量的基本指标,缺一不可。

眼图基本参数关系图 眼图 Eye Diagram 信号质量可视化 眼高 垂直幅度裕量 眼宽 水平时间裕量 抖动 Jitter DCD 占空比失真 眼高、眼宽、抖动、DCD 四个参数共同决定信号质量,一个都不能少

2.1 眼高(Eye Height)

眼高,就是眼图在垂直方向上张开的幅度。你可以理解为“1”和“0”之间的电压差。

物理意义很简单:眼高越大,接收端区分“1”和“0”就越容易。这直接关系到信号的噪声裕量。

我之前测量一组DDR4信号时,发现眼高只有规范要求的60%。排查了半天,发现是驱动端输出幅度没调到位。嗯,这种情况在PHY验证里太常见了。

个人习惯:我一般会先看眼高,如果眼高不够,后面那些参数基本不用看了。信号幅度都起不来,谈什么时序裕量?

测量眼高时要注意:

  • 眼高通常用mV或V表示
  • 规范会给出最小眼高要求,比如PCIe要求眼高≥100mV
  • 眼高受串扰、损耗、驱动能力影响

别踩坑:眼高不够不一定全是幅度问题。我遇到过一种情况,眼高掉了一大截,结果是电源噪声耦合进来的。你想想看,电源纹波直接在眼图的垂直方向上叠加,这玩意儿最隐蔽。

2.2 眼宽(Eye Width)

眼宽是眼图在水平方向上的张开宽度,单位是秒(ps或ns)。

物理意义更直接:眼宽决定了接收端能在多大时间窗口内稳定采样。说白了,眼宽就是时序裕量。

眼宽的关键取决于抖动。抖动越大,眼图水平方向闭合得越厉害,眼宽自然就小。为什么会这样?因为抖动让信号的跳变位置不稳定,眼图的“眼皮”就塌下来了。

我记得有一次调试PCIe Gen3的PHY,眼宽始终差那么几个皮秒。后来发现是PLL的参考时钟抖动大。换了颗高精度晶振,眼宽马上合格了。

参数 物理意义 单位 典型测量方法
眼高 垂直信号幅度裕量 mV / V 眼图模板测试
眼宽 水平时间采样裕量 ps / ns 眼图模板测试
抖动 跳变位置不确定性 ps RMS 时间间隔误差测量
DCD 高/低脉冲宽度不对称 ps 或 % 占空比分析

2.3 抖动(Jitter)

抖动是个大话题,但基本概念其实不复杂。它就是信号跳变沿在时间轴上的不确定性,单位一般是ps RMS。

抖动又分两类:随机抖动(RJ)和确定性抖动(DJ)。RJ是随机的,没法彻底消除;DJ有确定来源,比如串扰、电源噪声、码间干扰。

我在项目里吃过这个亏:用示波器测抖动,结果测了半天,发现示波器本底抖动比信号抖动还大。那还测个什么劲?所以建议各位,测抖动前一定要确认示波器的抖动噪声本底。

核心观点:抖动好不好,看两个指标——总抖动(TJ)和均方根抖动(RJ RMS)。总抖动决定了眼宽的极限,RJ RMS影响系统的误码率。

测量抖动有标准方法:

  1. 使用示波器的TIE(时间间隔误差)测量功能
  2. 捕获足够多的波形(至少10000次以上)
  3. 分离RJ和DJ成分
  4. 计算总抖动(TJ)@ 1e-12 BER

我劝你小心:抖动分离是个技术活。RJ和DJ的分离算法不同,示波器软件算出来的结果有时候会偏乐观。我一般会再用第二种方法交叉验证,比如用频谱分析法看时钟抖动。

2.4 占空比失真(DCD)

DCD全称Duty Cycle Distortion,翻译过来就是占空比失真。说白了,就是信号高电平和低电平的持续时间不一样。

理想情况下,数字信号应该是50%占空比——高电平时间 = 低电平时间。但实际电路里,因为驱动器的上升时间和下降时间不一样,或者阈值电平有偏移,就会导致DCD。

DCD对眼图的影响很明显:它会让眼图的交叉点上移或下移,眼图看起来不对称。更严重的是,DCD会直接吃掉眼宽。

为什么会这样?因为DCD导致脉宽不对称,信号的有效位宽被压缩了。你想想看,本来每个UI是100ps,结果高电平只有45ps,低电平却有55ps。那高电平的眼宽自然就小了。

我常用的检查方法:把示波器的余辉模式打开,积累大量波形后看眼图的交叉点位置。如果交叉点不在50%电平位置,那基本就是DCD在作怪。

DCD的主要来源:

  • 驱动器上升/下降时间不匹配——最常见
  • 参考电压偏移——接收端阈值不对
  • 预加重/去加重设置不当——这我在SATA接口验证里遇到过
  • PCB走线的直流电阻不一致——比较少见但确实存在

我记得有一次测量高速串行链路,DCD总是超标。查了驱动器、查了电源、查了PCB,最后发现问题出在连接器上——连接器的阻抗不连续导致信号反射,反射回来的信号叠加在主信号上,硬生生把占空比拉偏了。

总结一下这四个参数的关系:

  • 眼高看垂直裕量,眼宽看水平裕量
  • 抖动直接决定眼宽,DCD影响眼宽和眼高
  • 四个参数相互关联,必须综合评估
  • 单个参数合格不代表信号质量好,全部合格才算

实际验证的时候,我会把眼高、眼宽、抖动、DCD当作四个维度来看。任何一个维度出了问题,PHY的输出信号质量都别想通过。

就拿我之前做的一个项目来说,眼高和眼宽都合格,抖动也不大,但就是DCD差了十几皮秒。结果接收端锁相环一直不稳定,误码率始终降不下去。换上另一个PHY芯片,DCD好了,问题马上解决。

所以各位记住:眼图的四个基本参数,一个都不能放水。