3. 眼图测试标准

做眼图测试这么多年,我最深的感受就是:没有标准,眼图就是一张好看的波形图而已。你测出来的眼图再漂亮,如果不跟协议规定的模板去比对,那就没法判断芯片到底合不合格。这一章我们就来说说USB、PCIe、Ethernet这几个主流协议的眼图模板长什么样,以及我们在ATE上怎么去卡它们。

常见协议眼图模板知识体系 眼图测试标准 USB 2.0 / 3.x / Type-C PCIe Gen1 ~ Gen6 Ethernet 100BASE / 1000BASE / 10GBASE 六边形模板 USB 2.0 / 1000BASE-T 矩形/菱形模板 PCIe / USB 3.x 多边形模板 10GBASE-KR / XAUI ATE测试核心:模板加载 → 眼图捕获 → 违规判定 关键参数:数据速率 | 模板坐标 | 采样点 | 电压阈值

3.1 眼图模板到底是个什么东西?

说白了,眼图模板就是协议规定的“禁区”。它用几条折线在眼图上圈出一块区域,告诉你的信号不能掉进去。如果你的眼图碰到了模板的边,或者更惨——直接穿进去了,那就算违规。

我记得刚入行时带我的老工程师说过一句话:“模板就是法律,没有例外。”嗯,后来我发现其实轻微违规在一些非消费级产品里也能通融,但那是另一个话题了。咱们做ATE测试,得严格按规范来。

实用技巧:大多数ATE测试机的眼图模板是用坐标点定义的。你只需要把协议规定的模板坐标写进测试程序,机器会自动判断眼图有没有越过红线。不用自己画图。

3.2 USB的眼图模板

USB协议大家最熟,但它的眼图要求其实一直在变。USB 2.0和USB 3.x的模板差别非常大。

USB 2.0:经典的六边形模板

USB 2.0的模板是个六边形,分为发送端和接收端两个版本。发送端模板更严格一些。核心参数有:

  • 数据速率:480 Mbps
  • 电压范围:0V 到 +3.6V(差分电压)
  • 模板开口:水平和垂直方向都有具体坐标
  • Jitter要求:总抖动不超过某个值

这里要注意的是,USB 2.0的模板会在眼图的中心位置留一个“安全区”。也就是说,眼图睁得再大也没用,必须落在安全区里才合格。我在项目中遇到过一颗芯片,眼图特别漂亮,结果一跑模板就报警。仔细一查,原来是共模电压偏了,导致整个眼图往上漂了一点点。

避坑提醒:我曾经因为ATE测试机的电压刻度设置不当,导致模板坐标换算出错。USB 2.0的模板坐标通常是归一化的,需要根据实际测试条件缩放。千万别直接用原始坐标怼上去。

USB 3.x:矩形+菱形模板

到了USB 3.0(5 Gbps)和USB 3.1(10 Gbps),模板形状变成了更复杂的矩形和菱形组合。原因很简单——高速信号对抖动和噪声更敏感,模板的“安全区”需要更多维度来约束。

USB 3.x的模板通常包含:

  • 数据速率:5 Gbps / 10 Gbps
  • 电压摆幅:一般160 mV到1.2 V(差分)
  • 模板形状:中心菱形 + 两侧矩形
  • 眼高/眼宽:明确规定最小值

3.3 PCIe的眼图模板

PCIe的模板相比USB要“宽容”一些,但要求更细致。PCIe从Gen1到Gen6,模板越来越严格。

PCIe版本 数据速率 模板形状 眼高最小值 眼宽最小值
Gen1 2.5 GT/s 矩形 200 mV 0.4 UI
Gen2 5.0 GT/s 矩形 100 mV 0.35 UI
Gen3 8.0 GT/s 菱形+矩形 80 mV 0.3 UI
Gen4 16.0 GT/s 菱形+矩形 70 mV 0.25 UI

你仔细看这个表,会发现从Gen2到Gen3,眼高的要求直接腰斩了。为什么?因为速率翻倍,信号损耗变大了,模板必须跟着调整。我建议做ATE测试时,先把PCle的预加重和去加重参数调对,否则眼图模板过不了。

PCIe模板的特殊之处

PCIe的模板不仅关心眼图的中心区域,还关心眼图的“肩部”。说白了,就是信号上升沿和下降沿的过渡区域也不能乱跑。PCIe规范会给出一个“模板掩码”,这个掩码把你眼图的所有区域都定义了违规区。

我记得有个项目,PCIe Gen3的芯片眼高测出来78 mV,差一点点就达标。我本来想妥协,但客户坚持要过。后来发现是DC偏置电阻的问题,换了个电阻就好了。嗯,有时候小细节决定成败。

关键知识点:PCIe Gen3及更高版本使用“模板误码率”来评估,而不只是看眼图有没有碰到模板。这是因为更高速度下,模板边缘的BER(误码率)要求在1E-12甚至1E-15。如果你只测到1E-6,那模板再漂亮也没用。

3.4 Ethernet的眼图模板

Ethernet的协议家族太庞大了,咱们挑几个最常用的来说。

100BASE-TX / 1000BASE-T

100BASE-TX(100 Mbps)的眼图模板比较简单,基本沿用了经典的六边形模板。而1000BASE-T(千兆以太网)用了PAM-5编码,眼图分了5个电平,模板也变得复杂了。

这里有个坑:1000BASE-T的模板要求你的信号必须在每个电平上都满足模板,而不是只看中间电平。我遇到过一颗芯片,中间电平的眼图特别漂亮,但靠近顶部的电平眼图塌了。结果一跑模板就报错。

10GBASE-KR / 10GBASE-SR

10G以太网的模板是真正的“多边形”模板,坐标点可以多达几十个。它的模板形状有点像一把梳子,分成很多个小眼图。

做ATE测试时,你需要在每个子眼上单独跑模板。说白了,一个眼图要过10次甚至更多模板检查。我建议用ATE测试机的“批量模板”功能,一次跑完所有子眼,不要手动逐个去测。

效率提升:在ATE上做Ethernet眼图模板测试时,可以先跑一个快速扫描(比如只测中心子眼),发现疑似违规再全量扫描。这样可以省下大量测试时间。

3.5 模板测试的通用做法

不管你是测USB、PCIe还是Ethernet,在ATE上做模板测试的流程都差不多:

  1. 加载模板定义:从协议规范中提取模板坐标
  2. 设置测试条件:数据速率、电压范围、采样点
  3. 捕获眼图:ATE测试机内部的采样器去采集波形
  4. 运行模板比对:把波形和模板做逻辑运算
  5. 判定结果:合格 / 不合格 / 临界

这五个步骤看着简单,但每步都有陷阱。我吃过最大的亏就是第三步——采样点设置太多或太少。采样点太少,眼图分辨率不够,模板比对不准确;采样点太多,测试时间翻倍。我个人的习惯是先用500个采样点做快速扫描,发现问题再加到2000个点做精细判断。

3.6 非标信号怎么办?

这一章节讲的是标准协议,但现实工作中总会遇到“非标信号”。比如某芯片公司自己定义了一个私有协议,没有模板参考。怎么办?

  • 方法一:找规格书里的眼图要求,自己画模板
  • 方法二:用ATE测试机的“自适应模板”功能
  • 方法三:直接量眼高、眼宽、抖动值,不跑模板

我个人推荐方法三。因为非标协议的模板往往没有经过充分验证,你硬套模板反而可能误判。直接测几个关键参数,简单粗暴,也能说明问题。

记住一条铁律:模板是手段,不是目的。你的最终目标是确保通信质量,不是让眼图“看起来”完美。有时候眼图碰了模板边,但实际通信没丢包,你就要去分析是模板太严了,还是真有问题。

这一章的内容就到这里。眼图模板看起来是死板的几何图形,但它背后隐藏着大量的信号完整性知识和协议设计理念。你掌握了模板的来龙去脉,ATE测试才能真正做到心中有数。