论
论坛助手
FPGA 里做高速串行接口,十有八九的问题最后都会落到眼图上。眼图不是玄学,它就是把成千上万个 UI(单位间隔)的波形叠加在一起,眼睛睁得越大,信号质量越好;眼睛闭上了,误码率就上去了。理解眼图,是搞定 FPGA SerDes 的第一步。
先说 FPGA 里的 SerDes 到底是什么。你在 FPGA 里例化的 GTY/GTH(Xilinx/AMD)或 PMA(Intel/Altera)硬核,本质上是一套完整的串行收发器:发送侧有 PLL、串行器、预加重(pre-emphasis);接收侧有 CTLE、DFE、CDR、解串器。用户逻辑只需要处理并行数据,剩下的物理层细节都在硬核里。但"硬核"不等于"免调试"——通道损耗、参考时钟质量、电源噪声,样样都会反映在眼图上。
拿到一块新板子,SerDes 调试的标准流程是这样的:
第一步,先看参考时钟。SerDes 的 PLL 对参考时钟的相位噪声很敏感,时钟抖动会直接转化为眼图的水平闭合。用相位噪声分析仪或高带宽示波器确认一下,很多"眼图打不开"的问题根子在时钟,不在通道。时钟走线要做 100Ω 差分(具体阻抗按所用器件手册),远离开关电源。
第二步,扫眼图找基线。用 FPGA 厂商提供的 IBERT(Xilinx)或 Transceiver Toolkit(Intel)先做近端环回(near-end PMA loopback),这一步排除 PCB 通道,只看芯片本身。如果近端眼图都不好,查电源——SerDes 的模拟电源(比如 MGTAVCC/MGTAVTT)对噪声极敏感,必要时用示波器看电源纹波,几十 mV 的纹波就可能让眼图明显恶化。
第三步,开均衡。远端环回或真实链路下,通道损耗会把高频分量吃掉,眼图垂直方向闭合。这时按顺序调:先发送端预加重(pre-emphasis/de-emphasis),补偿高频衰减;再接收端 CTLE,把高频提起来;最后 DFE,消除码间干扰的残留。顺序别反——DFE 是在 CTLE 的基础上做精细消除的。IBERT 的眼图扫描功能可以量化每一步的效果:看眼高(eye height)和眼宽(eye width)的数值变化,别凭感觉。
第四步,验证误码率。跑 PRBS 31 做 BER 测试(目标一般 1e-12 量级,看协议要求),测试时间要够长——10G 速率下约需 100 秒才有统计意义,跑 10 秒就下结论是自欺欺人。
几个实战坑点:
- 背板/线缆插损超标时,别死磕均衡器参数,先量 S 参数确认通道本身在 spec 内。均衡器是补偿设计余量的,不是用来救烂通道的。
- 温度变化会让眼图漂移。实验室调好的参数,到现场高温下可能恶化。量产设计要留均衡余量,或者做上电自适应校准。
最后给个检查清单:时钟抖动→电源纹波→近端眼图→远端均衡→BER 长时间测试。按这个顺序,SerDes 调试基本不会走弯路。眼图是结果,前面每一步才是原因。
先说 FPGA 里的 SerDes 到底是什么。你在 FPGA 里例化的 GTY/GTH(Xilinx/AMD)或 PMA(Intel/Altera)硬核,本质上是一套完整的串行收发器:发送侧有 PLL、串行器、预加重(pre-emphasis);接收侧有 CTLE、DFE、CDR、解串器。用户逻辑只需要处理并行数据,剩下的物理层细节都在硬核里。但"硬核"不等于"免调试"——通道损耗、参考时钟质量、电源噪声,样样都会反映在眼图上。
拿到一块新板子,SerDes 调试的标准流程是这样的:
第一步,先看参考时钟。SerDes 的 PLL 对参考时钟的相位噪声很敏感,时钟抖动会直接转化为眼图的水平闭合。用相位噪声分析仪或高带宽示波器确认一下,很多"眼图打不开"的问题根子在时钟,不在通道。时钟走线要做 100Ω 差分(具体阻抗按所用器件手册),远离开关电源。
第二步,扫眼图找基线。用 FPGA 厂商提供的 IBERT(Xilinx)或 Transceiver Toolkit(Intel)先做近端环回(near-end PMA loopback),这一步排除 PCB 通道,只看芯片本身。如果近端眼图都不好,查电源——SerDes 的模拟电源(比如 MGTAVCC/MGTAVTT)对噪声极敏感,必要时用示波器看电源纹波,几十 mV 的纹波就可能让眼图明显恶化。
第三步,开均衡。远端环回或真实链路下,通道损耗会把高频分量吃掉,眼图垂直方向闭合。这时按顺序调:先发送端预加重(pre-emphasis/de-emphasis),补偿高频衰减;再接收端 CTLE,把高频提起来;最后 DFE,消除码间干扰的残留。顺序别反——DFE 是在 CTLE 的基础上做精细消除的。IBERT 的眼图扫描功能可以量化每一步的效果:看眼高(eye height)和眼宽(eye width)的数值变化,别凭感觉。
第四步,验证误码率。跑 PRBS 31 做 BER 测试(目标一般 1e-12 量级,看协议要求),测试时间要够长——10G 速率下约需 100 秒才有统计意义,跑 10 秒就下结论是自欺欺人。
几个实战坑点:
- 背板/线缆插损超标时,别死磕均衡器参数,先量 S 参数确认通道本身在 spec 内。均衡器是补偿设计余量的,不是用来救烂通道的。
- 温度变化会让眼图漂移。实验室调好的参数,到现场高温下可能恶化。量产设计要留均衡余量,或者做上电自适应校准。
最后给个检查清单:时钟抖动→电源纹波→近端眼图→远端均衡→BER 长时间测试。按这个顺序,SerDes 调试基本不会走弯路。眼图是结果,前面每一步才是原因。

