fpga光口数据传输,10g以太网电口
chanong
|当使用GT接口IP核(也适用于Aurora和10GEthernet)时,通常所说的主核和从核并不准确。如图3所示,这实际上只是配置IP核时的共享逻辑选项。展示:
图3 GT 接口IP 核配置选项
描述清楚地表明,这两个选项分别指示收发器的QPLL、时钟和复位逻辑是否包含在内核本身中或示例设计中。为了简单起见,共享逻辑通常包含在核心中。核内不包含共享逻辑的IP称为主核,核内不包含共享逻辑的IP称为从核,其结构如下图4和图5所示。从核和主核之间的区别在于共享逻辑可以在示例设计中修改。在实际设计中,您可以使用主核或从核,但请记住,当设计使用主核时,Quad 上的QPLL 资源将在内部使用。当使用其他GTX接口时,主核不再可用,无需向从核添加共享逻辑。
图4 内核中的共享逻辑
图5 示例设计中的共享逻辑
2.Aurora界面概述
2.1. 概述
Aurora协议是Xilinx公司推出的一种开放、免费的链路层协议,可用于点对点的串行数据传输,具有高效、易用的特点,适用于高性能数据传输系统。本设计中使用的Aurora 64b66b 协议是一种可扩展的轻量级链路层协议,可用于单通道或多通道串行数据通信,单通道能够在64 位总线宽度上传输数据和串行数据。马苏。差分数据信号。
2.2. 信号连接
如上一节所述,对于高速串行收发器,每个四路中只能使用一个QPLL (GTE2_COMMON)。生成Aurora 从核并打开其示例设计后,这部分共享逻辑位于其gt_common_support 模块中,该模块生成gt_qpllclk_quad2_out 和gt_qpllrefclk_quad2_out 等信号以供IP 核使用。当生成Aurora主核时,这部分逻辑包含在IP核中,并且QPLL从IP核输出,如下所示:输出信号。如果您的设计需要两个或更多GTX 接口,则此共享逻辑生成的信号必须输出到需要使用它们的所有IP 核。以主核+从核为例,下图展示了其部分信号的连接方式。
图6 Aurora64b66b主核与从核连接关系
当使用两个从核时,上图中连接的信号是在示例设计的共享逻辑中生成的,并且必须手动输入到每个接口IP 中。
2.3. 时序逻辑
2.3.1. 建立链接
当Aurora 通道链路初始化时,lane_up 信号被设置以指示接口已准备好接收数据。当channel_up拉高时,表示接口可以发送数据。一般来说,如果两个信号都被设置,则认为接口已初始化并且可以开始传输数据。
2.3.2. 数据传输
下图显示了Aurora 接口内的数据传输格式。
图7 发送端数据流格式
在图7 中,s_axi_tx_tready 信号被拉高,表示数据已准备好传输。该信号由链路内的时钟补偿机制确定,不受人为控制。这意味着当s_axi_tx_tvalid和s_axi_tx_tvalid和s_axi_tx_tready信号设置为1时,总线数据在该时钟周期内成功传输。
图8 接收端数据流格式
图8中,m_axi_rx_tvalid表示当前总线上的数据有效。
2.4. 接口的硬件实现
SERDES 是串行器/解串器。它是主流的时分复用(TDM)和点对点(P2P)串行通信技术。即多个低速并行信号在发送端转换为高速串行信号,通过传输介质(连接器、铜线或光纤),最后再次转换高速串行信号。在接收端接收低速并行信号。这种点对点串行通信技术通过充分利用传输介质的通道容量、减少所需的传输通道和器件引脚数量、提高信号传输速度,大大降低了通信成本。
使用SERDES的优点是不仅可以最大化传输线路数量,而且还支持板对板传输和光纤传输。无论采用哪种连接方式,都必须使用XILINX的GTP/GTX高速串行传输接口。该接口的物理实现是SERDERS,物理层编码可以是Aurora 8B10B或Aurora 64B66B,应用层可以选择其他协议或不使用它们。
3. 10G以太网接口
参见本公众号上一篇文章:10G以太网接口的FPGA实现——你需要的一切都在这里。
3.1. 概述
10G 以太网包括10GBASE-X、10GBASE-R 和10GBASE-W。 10GBASE-X 采用超小型封装,每个发射器/接收器对以3.125Gbit/s 的速度运行(流传输速度为2.5Gbit/s)。 10GBASE-R 是一种串行接口,使用64B/66B 编码(而不是千兆位以太网中使用的8B/10B),数据流为10.000 Gbit/s。 10GBASE-W 是SONET OC-192 兼容的WAN 接口,数据流为9.585 Gbit/s。本设计采用Xilinx官方开源IP核10G以太网子系统的10GBASE-R模式以太网光接口。
3.2. 时钟相关
FPGA 内的时钟布局分为四个主要部分:
(a) 传入的差分参考时钟经过专用参考时钟缓冲器(IBUFDS_GTE2)成为单端时钟refclk,该时钟被分成两个通道,一个连接到正交锁相环(QPLL),一个连接到QPLL (正交相位锁相环)。其他时钟经过BUFG后转换为全局时钟coreclk,我们继续将coreclk分为两个通道。一个通道用作10G MAC 核XGMII 接口的收发器时钟(xgmii_rx_clk 和xgmii_tx_clk),另一通道用于驱动10G 以太网PCS/PMA IP 核内的用户侧逻辑。
(b) QPLL输出的两个时钟qplloutclk和qplloutrefclk是高性能时钟,主要供IP核的GTH收发器使用,其中qplloutclk驱动GTH中的发送器的串行信号及其频率直接使用。是5.15625GHz。 qploutrefclk用于驱动GTH中的一些逻辑模块,频率为156.25MHz。
(c) txoutclk 是10G 以太网PCS/PMA IP 生成的322.26MHz 时钟。该时钟在BUFG 之后被分成两个通道。其中,txusrclk用于驱动IP核内部的GTH 32位总线数据,txusrclk2用于驱动IP核和内部PCS层的一些模块。
(d) 在我们实验室内部开发的交换板(芯片型号xc7vx690tffg1761-2)中,25MHz晶体振荡器生成系统时钟并将其输入到FPGA内的PLL(锁相环)模块。以25MHz时钟作为驱动时钟,生成156.25MHz用户时钟并发送给10G MAC核用户侧。
3.3. IP核配置
Vivado 10G 以太网IP 核的配置接口有: 该IP 核符合IEEE802.3-2008 标准,包含MDIO(PHY 管理接口)、可配置FCS 处理机制和流量控制等功能。 MAC和PHY之间的接口采用标准XGMII接口,发送和接收数据位宽为64位,频率为156.25MHz。 MAC核与用户之间的接口为AXI4_STREAM,数据位宽为64位,工作频率为156.25MHz。在“共享逻辑”选项卡中,选择在示例设计中包含共享逻辑,即来自核心模式。
图9 IP核配置界面
共享逻辑包括连接到GT_COMMON 模块的差分输入时钟缓冲器,四核上最多四个10G 以太网子系统内核可以共享此逻辑。
使用时钟缓冲器(BUFG_GT) 从收发器差分参考时钟创建coreclk/coreclk_out。 coreclk/coreclk_out 的频率与差分时钟源的频率相同。共享逻辑中的最后一个BUFG_GT 源自GT_CHANNEL 的TXOUTCLK,并连接到GT_CHANNEL 以提供收发器TX 用户时钟(TXUSRCLK 和TXUSERCLK2)。使用64 位数据路径时,该时钟的频率为156.25 MHz;使用32 位数据路径时,该时钟的频率为312.5 MHz。请注意,直接连接到IP核的用户数据必须与coreclk匹配,但即使本地用户时钟频率与coreclk的频率156.25MHz相同,也可能由于原点以外的点而发生相移,请注意这可能会发生。 FIFO 执行跨时钟域处理。
3.4. 信号连接
以1个主核+2个从核为例,下图展示了部分信号的连接方式。
图10 10G以太网主核与从核信号连接
当使用两个从核时,上图中连接的信号是在示例设计的共享逻辑中生成的,并且必须手动输入到每个接口IP 中。
3.5. 数据传输
3.5.1. 建立链接
当10G以太网通道链路初始化时,core_ready信号被置位,表明接口已完成初始化并可以开始传输数据。
3.5.2. 数据格式
下图所示为10G以太网接口用户侧使用的AXI-Stream总线数据格式。
图11 AXI-Stream总线信号时序关系
3.6. 接口的硬件实现
在长距离连接场景中,必须使用光纤通信解决方案,因为铜线无法支持如此长距离和大容量的数据通信。为了实现该方案,需要使用光模块。
光模块是进行光电和电光转换的光电器件。光模块的发送端将电信号转换为光信号,接收端将光信号转换为电信号。光模块按实现类型分类,常见的有SFP、SFP+、XFP。该光模块的接口完全兼容XILINX GTP/GTX IO,接口电路如下图所示。
图12 XILINX FPGA与光模块连接电路图
光模块的种类有很多,这里只介绍项目中常用的三种。
1)SFP光模块
SFP光模块是一种小型可插拔光模块,目前最高速率达到10.3G(市场基本为1.25G),通常采用LC跳线连接。 SFP光模块主要由激光器组成。 SFP分类可分为速率分类、波长分类、模式分类。 SFP光模块包括100M SFP、千兆SFP、BIDI SFP、CWDM SFP和DWDM SFP。
2)SFP+光模块
SFP+光模块外观与SFP光模块相同,传输速度可达10G,常用于中短距离传输。 SFP+光模块是可热插拔、独立于通信协议的光模块。
3)XFP光模块
XFP光模块是可热插拔、独立于通信协议的光模块。速度最高可达10G,但尺寸比SFP/SFP+光模块要大。
通过对比分析,我们发现SFP+光模块比XFP更紧凑,速度比SFP更快,是长距离光纤传输更好的解决方案。
本设计中,10G以太网接口采用SFP+光模块,在硬件上实现光电转换。
3.框架结构分析
1、以太网帧结构
这部分内容也可以在本公众号之前的文章中找到:你见过物理层以太网帧长什么样吗?
目前,以太网帧主要有两种格式:Ethernet II (DIX 2.0) 和IEEE 802.3。本设计采用Ethernet II帧结构,帧格式如图13所示。
图13 以太网II帧格式
每个字段的详细说明如下:
根据上述设计架构,本设计的数据流程如下:
图18 数据处理流程
5、主模块仿真RTL级验证
1. 10G以太网接口功能验证
当您在10G以太网接口1的发送侧写入64位固定帧时,接口将其转换为差分信号输出并在差分侧循环,从而将接口1发送的差分信号输出到接口2。输入接收方。接收器恢复。并行数据与数据源数据进行比较。仿真结果如下。
图27 10G以太网接口仿真验证结果
core_ready信号拉高后,向接口1的发送侧pkt_tx_*写入数据,连接接口1和接口2的差分侧,并通过接口2的接收侧pkt_rx_*监视恢复的以太网帧。
2.Aurora64B66B接口功能验证
Aurora64B66B在接口1的发送侧写入64位固定帧,接口将其转换为差分信号并输出,在差分侧循环,接口1发送的差分信号进入接口2的接收侧。会这样做。它从接收器恢复并行信号,并将数据与数据源数据进行比较。仿真结果如下。
图28 Aurora64B66B接口仿真验证结果
6.板级验证
1. 验证环境
图31 板级验证环境
图32 连接测试中心
本实验选用本实验室自行开发的转接板(芯片型号为xc7vx690tffg1761-2)。交换板有6个GTH光口。在本设计中,我们选择四个光口进行测试。左侧的端口1 和4 是10G 以太网接口。光纤连接到测试中心,如图32 所示。端口2和端口3为Aurora64B66B接口,采用光纤实现外环连接。
2. 测试流程配置
在Testcenter 支持软件中配置业务流程时,如图33 所示配置以太网帧的有效负载,以直观地验证设计功能。即添加自定义标头。
图33 测试中心以太网帧有效负载配置
3. 验证结果
图34 并行12通道数据
图35 Testcenter软件对发送和接收业务流进行统计比较
通过Xilinx ILA 捕获一些信号。从图34中我们可以看到,该设计成功提取了以太网帧的有效负载字段,并从中解析出12个并行通道数据。前60字节与6.2配置字段相同。这个设计特点得到了很好的实现。在图35 中,对Testcenter 接收到的数据帧进行计数并与发送的数据帧进行比较。这表明该设计不存在帧丢失或错误。
七、附录
这是实现此设计的另一种方法:
在上一章中,我们提到了GTquad中QPLL资源的问题,即一个quad中只能使用一个QPLL。因此,本设计采用四个GTH接口来共享共享逻辑,其QPLL时钟信号驱动两个10G以太网接口和两个Aurora64B66B接口。对于初学者来说,组织GT 时钟和使用QPLL 可能很困难,但最简单的方法是将四个接口分别放入两个四元组中。这意味着两个GT 接口均共享QPLL 资源,直接使用一主一主。 Xilinx官方文档中描述的1-slave模式,尽可能简化了代码,大大降低了调试难度。
本实验选用的交换板具有标准的FMC扩展端口和丰富的GT资源。 FMC扩展板与交换板的连接如下图所示。扩展板的差分端口通过同轴电缆连接以提供外部连接。戒指。
图36 FMC 扩展板正面和背面
图37 同轴电缆
图38 交换板上的FMC 扩展端口
图39 使用同轴电缆实现外圈
图40 扩展板连接到交换板
完整的文本。








