本文介绍Xilinx GT的一些概念,对GT没有概念但是有时间的童鞋推荐先看一下下文,补充一些基础概念。XTWL TPCL:Xilinx 7系列FPGA 高速收发器GTX/GTH的一些基本概念zhuanlan.zhihu.com
随着高速数据传输的普及,Serdes已经成为FPGA上重要的I/O接口。而线速率也不断的提高。更高的线速率也就带来了更大的通道衰减影响。通常,Serdes接收端需要打开内部的均衡来对高速串行信号进行处理,保证内部的有效信号能够等到放大而噪声可以被抑制,并最终恢复出正确的数据。
通常,高速信号到达接收端的Pin位置,称为远端;进入Pin后,被接收端的均衡处理之后的信号,称为近端。在一些均衡能力比较优秀的Serdes上(例如Xilinx的GTX/GTH),远端处的眼图(可以通过高速示波器进行测量)无法睁开,但是近端处的眼图可以完全睁开。这就是均衡器无法忽视的重要作用。
这也带来一个问题,就是如何测量眼图。针对远端眼图,可以通过高速示波器来进行测量。但是这个测量在很多情况下并不容易,比如没有足够高速的示波器,或者由于FPGA多为BGA封装导致Serdes的RX Pin没有合适的测试点来进行测试。而近端眼图,由于近端的定义就是在Serdes的PMA内部,所以没有使用高速示波器直接测量眼图的可能。那么如何评价近端眼图,就成了一个问题。
Xilinx 7系列(及以后)的GTX/GTH中提供了2D眼图测量的功能,通常称呼为2D eye scan,可以用来测量近端眼图。Xilinx提供的GT测试工具ibert中,就是利用这个功能进行眼图的测量。
关于GT的基本结构和eye scan的具体原理,由于文档已经做了充分的描述,这里就不重复赘述了。下文将会用简单通俗的语言来描述2D eye scan的基本原理,出发点是易于理解。所以在准确性和严谨程度上肯定有所欠缺,这里先说一声抱歉。
从字面分析,2D eye scan的意思就是二维眼图扫描。二维的意思自然是横纵两个坐标。所以眼图扫描的基本原理就是将二维眼图的最大范围坐标化,将眼图整体变为一个二维矩阵区域。
眼图扫描的过程就是依次遍历眼图的二位矩阵区域,并和眼图扫描的正中间区域做对比,记录错误值,然后依据错误值,用不同的颜色来绘制当前二位矩阵中某个点,最终组成一个眼图。
用更通俗的话来解释,就是眼图被划分为一个分辨率是N*M的图片。测量眼图的时候会依次遍历N*M个点,并和中心点的数据做对比。多次对比后记录值不一样的次数