眼图参数定义:眼高、眼宽、抖动、上升时间、下降时间
眼图这玩意儿,说白了就是高速信号的“心电图”。它的形状、开口大小,直接告诉你信号质量行不行。我刚开始接触HS400的时候,觉得眼图就是看个“眼睛”睁得大不大。后来被折腾了几次才明白,每个参数都有它的脾气。
这一章咱们把眼图的核心参数掰开揉碎了聊。眼高、眼宽、抖动、上升时间、下降时间——你只要搞懂这五个,就抓住了信号完整性的命门。
眼高(Eye Height)
眼高,就是眼图垂直方向上的开口幅度。它反映的是接收端能分辨“0”和“1”的电压裕量。简单说,眼高越大,抗噪声能力越强,误码率越低。
我习惯用示波器的直方图功能测量眼高。取眼图中央20%~80%的水平区域,做垂直方向上的统计平均值。举个例子,HS400的信号标准是3.3V,实测眼高只有400mV,这信号基本就废了。
有一次我在项目里测一块FPGA的HS400输出,眼高从500mV掉到300mV。排查了很久,原来是电源纹波太大,把电平拖到了地上。你想想看,电源不干净,眼高第一个遭殃。
眼宽(Eye Width)
眼宽是眼图水平方向上的开口大小。它代表接收端能正确采样数据的时间窗口。单位通常是皮秒(ps)。眼宽小了,时钟抖动一碰就误码。
眼宽怎么测?在眼图中央20%~80%的垂直区域内,统计水平方向上的时间分布,取6σ。这里的σ是随机抖动的均方根值——别怕,后面会细讲。
我个人经验:眼宽不能小于0.4个UI(Unit Interval)。HS400的速率是400Mbps,UI=2.5ns,那眼宽至少得有1ns。低于这个数,你的板子基本就得返工了。
抖动(Jitter)
抖动是信号边沿在时间轴上的随机偏离。它分两类:
- 随机抖动(RJ):由热噪声、散粒噪声等产生,服从高斯分布。它没法彻底消除,只能通过设计控制幅度。
- 确定性抖动(DJ):由串扰、码间干扰、电源噪声引起,有明确的规律。比如周期抖动、数据相关抖动(DDJ)。
总抖动(TJ) = DJ + 2 × A × RJ(A是误码率对应的峰峰值因子,常见用14.069配合10−12误码率)。
上升时间 / 下降时间(Rise Time / Fall Time)
上升时间指信号从20%幅度到80%幅度所需的时间;下降时间反之。它俩直接决定了眼图的梯形过渡带有多宽。
你可能会问:过渡带宽了会怎样?过渡带会吃掉部分眼宽。而且如果上升时间和下降时间不对称,眼图就会上下歪斜,产生占空比失真。
我的建议:上升/下降时间控制在0.2~0.35个UI之间。拿HS400来说(UI=2.5ns),Rise Time最好在500ps~875ps。太快了会过冲,太慢了眼宽不够。
| 参数 | 定义 | 典型HS400指标 | 主要敏感因素 |
|---|---|---|---|
| 眼高 | 垂直开口幅度 | ≥ 450 mV | 电源噪声、阻抗匹配 |
| 眼宽 | 水平开口时间窗口 | ≥ 800 ps | 抖动、码间干扰 |
| 抖动(TJ) | 边沿时间偏移 | ≤ 150 ps | 串扰、时钟相位噪声 |
| 上升时间 | 20%→80%跳变时间 | 500~875 ps | 驱动能力、负载电容 |
| 下降时间 | 80%→20%跳变时间 | 500~875 ps | 同上 |
参数之间的“你推我搡”
实际调试中,这些参数不是孤立的。举个例子:你费劲把上升时间缩短了,但下降时间没跟着变,结果占空比失真变大,眼宽反而缩小了。我遇到过这种事——调了一个通宵,最后发现是输出驱动器的上拉和下拉强度不匹配。
还有个常见组合:电源噪声大 → 眼高降低 → 抖动增加 → 眼宽收窄。你只盯着一个参数修,永远找不到根因。我的做法是:先拿长伪随机码测全参数,然后做百毫秒级的累加图,看哪些参数在同一时间点异常。
好了,这一章就到这里。记住这五个数字,它们就是你的“眼图体检报告单”。下次测HS400,别只盯着“眼睛”好不好看,把参数一个一个拉出来过一遍,毛病就藏不住了。