3. 眼图基本原理:示波器采样、余辉累积与眼图形成

好,咱们直接切入正题。眼图这个东西,刚接触高速信号的人总觉得很玄乎。

一块示波器,抓几下波形,屏幕上就出现了一个“眼睛”。这眼睛是干什么的?

说白了,眼图不是测一个比特的信号质量。它是把成千上万个比特的信号,一层层叠在屏幕上,然后让你一眼看穿整体的信号质量。

3.1 示波器采样原理——它到底在干什么?

要理解眼图,得先搞懂示波器是怎么工作的。

你想想看,一个PCIe Gen3的信号,速率是8 GT/s。一个比特的宽度只有125 ps。

普通示波器呢?它用ADC去采样信号。每隔一定时间打一个点,把这个点的电压记下来。然后屏幕上显示出这些点连成的波形。

关键点: 采样不是连续的。示波器是根据时间戳,把离散的电压点拼凑出来的。

但在眼图模式下,不一样了。示波器不再去关心“当前采样点属于第几个比特”。它只关心:这个点在当前UI(Unit Interval,单位间隔)中的相对位置。

我记得刚开始做PCIe调试时,用了台旧示波器。那玩意儿采样率不够,测出来的眼图全是“虚影”。后来换了台高采样率的,才恍然大悟——原来眼图对采样率的要求极其苛刻。

我建议你,至少用5倍于信号速率的采样率。测PCIe Gen3,起码要40 GS/s的采样率。否则,眼图边缘会模糊不清,你会误判。

3.2 余辉累积——为什么眼睛会“长出来”?

光靠一次采样是不够的。

一次采样,只能看到一个比特的波形。但信号有随机抖动、有码间干扰、有噪声。

怎么办?

把很多次采样的结果,叠在一起显示。

示波器有一种模式叫“余辉模式”或“累积模式”。每次采到的波形,不是立刻消失,而是在屏幕上保持一段时间,亮度逐渐降低。

你想想看,如果在同一个位置,电平和时间都对齐得很好,那这个点就会“亮”起来,成为眼睛。如果某个位置总是跳来跳去,那个区域就比较暗,甚至看不到。

  • 亮区: 信号能量最集中的区域,这也是眼睛的“眼高”和“眼宽”所在。
  • 暗区: 边沿或噪声区域,信号很少停留在这里。

这个过程就像拍夜景长曝。你把相机架好,拍车流。车灯在道路上形成一道道亮线。信号也一样,大量比特叠加,就形成了眼图。

我个人习惯: 设置余辉时间来捕捉至少 1M 个比特。少于这个数,眼图可能被偶然噪声“污染”得不够真实。

3.3 眼图形成过程——一个形象的比喻

我来帮你拆解一下,一个完整的眼图是怎么形成的。

  1. 触发: 示波器根据时钟或数据信号,确定参考点。这不一定是真正的时钟边沿,有时候靠CDR(时钟数据恢复)内部恢复的时钟来触发。
  2. 采集: 连续采集成千上万个UI的波形。示波器把每个UI内的采样点,都映射到同一个时间窗口——就是当前的UI宽度。
  3. 叠加: 把这些UI波形,一行行叠在一起。示波器的屏幕上,像素点根据被命中的次数,刷新亮度。
  4. 显示: 最终,你会看到一个“眼睛”轮廓。眼图中心的开口,就是信号质量最好的区域。

你猜怎么着?我在实际测试中碰到过一次怪事。用同一个测试点,两台不同厂家的示波器,画出来的眼图不一样。后来发现,是其中一台示波器的触发模式里,没有开启“时钟恢复”,直接用数据信号的边沿触发了。结果眼图变形了。

警告: 眼图一定要配合正确的时钟恢复设置。如果触发时钟没恢复好,你会看到一个扭曲的眼睛,甚至误以为信号坏了。

为什么需要CDR?因为PCIe信号不是连续的时钟,它是数据。靠数据本身的边沿来恢复时钟,才能保证每个UI的时间对齐。

技术指标 数字采样模式 余辉累积模式(眼图模式)
显示内容 单次或连续波形 大量比特的统计叠加
时间对齐 依赖触发时间戳 依赖CDR恢复时钟
信息丰富度 有限,只能看偶发异常 统计分布,可看眼高眼宽抖动
典型用途 捕捉毛刺、边沿异常 合规性测试,批量评估

所以,眼图的形成,本质是一个“数据压缩”的过程。把时间域上很长的数据流,压成一个UI内的分布图。

眼图形成过程流程图:从信号采样到眼图结果 眼图形成流程 高速串行信号 PCIe Gen3/4/5 CDR时钟恢复 提取参考时钟 触发与采样 ADC转换(离散化) 归一化到1UI 时间轴对齐 余辉累积 大量比特波形叠加(百万级) 眼图结果 眼高、眼宽、抖动、信噪比 关键注意: CDR未开启或设置错误, 会导致眼图严重失真。

3.4 避坑指南:我做眼图测试踩过的坑

嗯,这里得好好聊一下,全是真金白银的经验。

  • 触发源选错了。 我刚开始做PCIe眼图,选错了触发源,用了个标准数据边沿。结果时钟没对齐,眼图看着永远不是一个对称的眼睛。用CDR恢复时钟触发吧。
  • 采样率不够。 我记得有一次,测试PCIe Gen4,用了20 GS/s的示波器。眼图边缘像糊了一样。后来换到50 GS/s,才算看到清晰的边沿。采样率至少5倍于信号速率,才够用。
  • 累积时间不够。 有些人做眼图,只看了几万个比特,就觉得够了。我建议至少看100万个比特以上。特别是测随机抖动,太少的数据量,你看不到真实的概率分布。
  • 余辉时间设置不对。 余辉时间越长,越能看到罕见的坏比特。余辉太短,你只看得到“平均水平”的眼图,会漏掉偶发性故障。
一个小技巧: 测眼图时,把示波器的余辉设置为“无限余辉”,然后盯着屏幕看5秒钟。你可能会看到一些突然出现的“小眼睛”或“毛刺眼”。这往往是信号完整性问题的早期警报。

总之,眼图形成的每一步,都值得你仔细检查设置。错了任何一步,你的眼图就废了。白测。