0


《FPGA调试记录》Xilinx 7series FPGA 万兆网UDP

1 简介

第一次在Xilinx 7series FPGA上实现万兆网UDP设计。具体的实现思路参考米联客的实现方案,但是由于米联客的udp协议栈只提供了网表文件,所以对于他们的内容没有深究,只是用来作为前期链路通断的验证方案。
建议初次上板实现时最好先想办法验证一下硬件,防止硬件有问题导致网络连接不通。

2 硬件部分

2.1 开发板

开发板随意,只要带光口就可以。我使用的是米联客 MK7325FA开发板。(最好测试一下GTX的眼图,防止自己制板的不确定性)
在这里插入图片描述

2.2 万兆网卡

一定要选择可靠的厂家。各家质量参差不齐,我初次使用也不太清楚具体区别。最好选择主控芯片是intel 82599的网卡,支持PCIE3.0 X8。
在这里插入图片描述
在这里插入图片描述

2.3 光模块

SFP + 单模多模都可以。建议多模,单模的贵 =.=

2.4 光纤

要与光模块匹配,单模的光模块一定要买单模的光纤。

3 实现

3.1 搭建 10g Ethernet Subsystem

3.1.1 Ethernet Standard

在这里插入图片描述
1、PCS/PMA Standard 要选择BASE_R,具体BASE_R和BASE_KR有什么区别我没有深究,但是BASE_KR的lic是要收费的。
2、AXI4-Stream datapath width:选择64bit(8Bytes)。

3.1.2 MAC Options

在这里插入图片描述
1、勾选AXI4_lite接口,用于配置MAC和访问MAC的状态。时钟建议100MHz。
2、失能流控功能。

3.1.3 PCS/PMA Options

在这里插入图片描述
设置DRP时钟为100MHz。其他的默认即可。

3.1.4 IEEE 1588 Options

在这里插入图片描述

不使用1588协议功能。

3.1.5 Shared Logic

在这里插入图片描述
Include Shared Logic in core。

3.2 10G Ethernet Subsystem架构

在这里插入图片描述
接收数据简单来说就是光信号经光模块转换后的电信号经过xilinx FPGA的GT口进入PCS/PMA。PCS/PMA负责将信号进行数字化,并进行同步和解扰,进经过64b66b译码后送给MAC。PCS/PMA和MAC之间通过XGMII进行数据交换。
在这里插入图片描述
MAC 数据分为AXI4_stream和AXI4_lite两部分。AXI4_stream的数据就是以太网帧数据。AXI4_lite是配置MAC的工作方式和状态获取的接口。

3.3 例化IPCORE
在这里插入图片描述
在这里插入图片描述

3.3.1 接口

clk_in:输入, 156.25MHz。
reset : 输入,高有效,与clk_in同步。
refclk_p、refclk_n: GT bank参考时钟输入,156.25MHz.
sfp_tx_dis:输出,光模块发送失能,高有效。
sfp_linkup:输出,用于监测光模块与开发板是否连接。
s_axis:MAC核发送数据接口(MAC_tx)。
m_axis:MAC核接收数据接口(MAC_rx)。

3.3.2 复位

== 一定要等待PCS/PMA复位完成后再复位MAC的相关信号! ==
在这里插入图片描述

3.4 UDP

这部分就不细说了,有空再细说这部分。我使用的协议栈是在Git_hub上down下来后再自己修改了部分逻辑的。只提供接口,如果想了解内部逻辑的可以圈我。
在这里插入图片描述

3.5 工程整体架构在这里插入图片描述

4 测试

4.1 发送速率测试

在这里插入图片描述
在这里插入图片描述
实现一边发送数据,一边不间断ping包应答。实测udp发送数据速率可达9.7Gbps。

4.2 回环数据测试

在这里插入图片描述
实现数据回环且不间断ping包应答。

5 更新

  • 20221102 更新 == 修改了UDP协议栈数据缓存架构,现在支持巨帧模式,UDP单包payload最大支持4KB~ == == UDP发送速率稍微提升了一点,现在稳定在9.9Gbps~ ==请添加图片描述请添加图片描述请添加图片描述
  • 20221104 更新 == 优化了发送端fifo架构,一定程度上缓解了UDP发送时丢包的问题。~ ==

通过光纤实现板上两个SFP+接口互联,将SFPA作为UDP发送端,SFPB作为UDP接收端。
一次触发连续不间断发送200_0000个数据包。
在这里插入图片描述
SFPB对应的端口可以正常接收200_0000个数据包,并能正常解出UDP数据包。
在这里插入图片描述
测试工程架构如下
在这里插入图片描述

标签: fpga开发 网络 udp

本文转载自: https://blog.csdn.net/qq_32353821/article/details/127627148
版权归原作者 精神小伙qaq 所有, 如有侵权,请联系我们删除。

“《FPGA调试记录》Xilinx 7series FPGA 万兆网UDP”的评论:

还没有评论