10G以太网光口与高速串行接口的使用越来越普遍,本文拟通过一个简单的回环实验,来说明在常见的接口调试中需要注意的事项。各种Xilinx FPGA接口学习的秘诀:Example Design。欢迎探讨。
一、实验目的
为实现大容量交换机与高速率通信设备之间的高效数据传输,高速接口的理解与使用愈发显现出其重要地位。本实验设计中计划使用四个GTH高速串行接口,分别采用了10G以太网接口协议以及Aurora64b66b接口协议,实现交换板到测试设备的连接并通过光纤实现高速数据片外回环,以达到快速理解接口协议并能够熟练使用该两种高速接口实现数据收发的目的。
二、接口简介
1、 GT接口简介
应用在高速串行接口的数据收发。在A7系列芯片中叫GTP、在K7系列叫GTX、V7系列叫GTH,对于不同速度等级的高速通信的物理接口,原理基本一致。
1.1、收发器结构
对于每一个串行高速收发器,其分为两个子层:PCS(物理编码子层)和 PMA(物理媒体连接子层)。PCS 层主要进行数据编解码以及多通道的处理;PMA 层主要进行串并、并串转换,预加重、去加重,串行数据的发送、数据时钟的提取。可以使用ibert IP核对接口进行回环测试,确定该接口是否可以正常使用。
图1 GTX/GTH收发器结构框图GT接口发送端处理流程:首先用户逻辑数据经过8b/10b编码后,进入一个发送缓存区,该缓冲区主要是PMA子层和PCS子层两个时钟域的时钟隔离,解决两者时钟速率匹配和相位差异的问题,最后经过高速Serdes进行并串转换。接收端和发送端过程相反,具体实现可参考ug476_7Series_Transceivers进行学习。
1.2、GT时钟使用说明
7系列FPGA通常按照bank来分,对于GTX/GTH的bank,一般称为一个Quad,原因是Xilinx的7系列FPGA随着集成度的提高,其高速串行收发器不再独占一个单独的参考时钟,而是以Quad来对串行高速收发器进行分组,四个串行高速收发器和一个COMMON(QPLL)组成一个Quad,每一个串行高速收发器称为一个Channel,其内部结构如图2所示。
图2 GTX收发器在硬件上的配置从底层角度看,由于CPLL是每个Channel独有的,所以CPLL的所有接口都在Channel这个底层模块中。而QPLL是另外使用了一个叫common的底层模块。GTX中QPLL和CPLL,除了数目(每个Quad有一个QPLL四个CPLL)和归属(QPLL属于common,CPLL属于Channel)不同之外,最大的不同在于支持的最高线速率频率不同。CPLL最高只有6.xG,而QPLL可以超过10G(具体数值要根据器件的速度等级来查询DataSheet)。对于7系列的GTX来说,每个Quad有两个外部差分参考时钟源,每个外部参考时钟的输入必须经过IBUFDS_GTE2原语之后才能使用。7系列FPGA支持使用南北相邻Quad的参考时钟作为当前Quad的参考时钟,但是一个Quad的参考时钟源不能驱动超过3个Quad上的收发器(只能驱动当前Quad和南北方相邻两个Quad)。对于一个GTX Channel来说,可以独立选择该收发器的参考时钟,可以选择QPLL,也可以选择CPLL,需要注意的是,每一个Quad上只有一个QPLL资源,重复例化会导致布线报错。
1.3、GT的主从概念
在我们使用GT 接口IP核时(Aurora和10GEthernet也适用),常提到的主核与从核的说法并不准确,这实际上只是我们在配置IP核时的一个共享逻辑的选项,如图3所示:
图3 GT接口 IP核配置选项该说明中很清楚的表明,两个选项分别表示了收发器的QPLL、时钟和复位逻辑等是包含在内核本身还是示例设计(example design)中,为简单起见,我们常把共享逻辑包含在内核本身的IP称为主核,内核中不包含共享逻辑的IP称为从核,其结构如下图4和图5所示。从核与主核的区别是:我们可以在Example Design中修改共享逻辑。在实际的设计中,可以使用主核也可以使用从核,但要注意的是,若设计中使用了一个主核后,则其内部便使用了该Quad上的QPLL资源,在使用该Quad上的其他GTX接口时,不能再使用主核,也无需再给从核添加共享逻辑。
图4 共享逻辑在内核里
图5 共享逻辑在Example Design里
2、 Aurora接口简介
2.1、 概述
Aurora 协议是由Xilinx公司提供的一个开放、免费的链路层协议,可以用来进行点到点的串行数据传输,具有实现高性能数据传输系统的高效率和简单易用