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

这篇具有很好参考价值的文章主要介绍了《FPGA调试记录》Xilinx 7series FPGA 万兆网UDP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 简介

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

2 硬件部分

2.1 开发板

开发板随意,只要带光口就可以。我使用的是米联客 MK7325FA开发板。(最好测试一下GTX的眼图,防止自己制板的不确定性)
fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp

2.2 万兆网卡

一定要选择可靠的厂家。各家质量参差不齐,我初次使用也不太清楚具体区别。最好选择主控芯片是intel 82599的网卡,支持PCIE3.0 X8。
fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp
fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp

2.3 光模块

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

2.4 光纤

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

3 实现

3.1 搭建 10g Ethernet Subsystem

3.1.1 Ethernet Standard

fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp
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

fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp
1、勾选AXI4_lite接口,用于配置MAC和访问MAC的状态。时钟建议100MHz。
2、失能流控功能。

3.1.3 PCS/PMA Options

fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp
设置DRP时钟为100MHz。其他的默认即可。

3.1.4 IEEE 1588 Options

fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp

不使用1588协议功能。

3.1.5 Shared Logic

fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp
Include Shared Logic in core。

3.2 10G Ethernet Subsystem架构

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

3.3 例化IPCORE
fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp
fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp

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的相关信号! ==
fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp

3.4 UDP

这部分就不细说了,有空再细说这部分。我使用的协议栈是在Git_hub上down下来后再自己修改了部分逻辑的。只提供接口,如果想了解内部逻辑的请私信我。(By the Way:源码在哪我已经提到过了,实在找不到的可以私信我)。
fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp

3.5 工程整体架构

4 测试

4.1 发送速率测试

fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp
fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp
实现一边发送数据,一边不间断ping包应答。实测udp发送数据速率可达9.7Gbps。

4.2 回环数据测试

fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp
实现数据回环且不间断ping包应答。

5 更新

  • 20221102 更新
    == 修改了UDP协议栈数据缓存架构,现在支持巨帧模式,UDP单包payload最大支持4KB~ ==
    == UDP发送速率稍微提升了一点,现在稳定在9.9Gbps~ ==
    fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp
    fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp
    fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp
  • 20221104 更新
    == 优化了发送端fifo架构,一定程度上缓解了UDP发送时丢包的问题。~ ==

通过光纤实现板上两个SFP+接口互联,将SFPA作为UDP发送端,SFPB作为UDP接收端。
一次触发连续不间断发送200_0000个数据包。
fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp
SFPB对应的端口可以正常接收200_0000个数据包,并能正常解出UDP数据包。
fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp
测试工程架构如下
fpga 万兆网udp,FPGA接口调试,fpga开发,网络,udp文章来源地址https://www.toymoban.com/news/detail-778275.html

到了这里,关于《FPGA调试记录》Xilinx 7series FPGA 万兆网UDP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA基于SFP光口实现10G万兆网UDP通信 10G Ethernet Subsystem替代网络PHY芯片 提供工程源码和技术支持

    目前网上的fpga实现udp基本生态如下: 1:verilog编写的udp收发器,但不带ping功能,这样的代码功能正常也能用,但不带ping功能基本就是废物,在实际项目中不会用这样的代码,试想,多机互联,出现了问题,你的网卡都不带ping功能,连基本的问题排查机制都不具备,这样的代

    2024年02月01日
    浏览(48)
  • FPGA纯vhdl实现XGMII接口10G万兆网UDP协议 配合10G Ethernet PCS/PMA使用 提供工程源码和技术支持

    目前网上的fpga实现udp基本生态如下: 1:verilog编写的udp收发器,但不带ping功能,这样的代码功能正常也能用,但不带ping功能基本就是废物,在实际项目中不会用这样的代码,试想,多机互联,出现了问题,你的网卡都不带ping功能,连基本的问题排查机制都不具备,这样的代

    2024年02月09日
    浏览(51)
  • FPGA纯vhdl实现XGMII接口10G万兆网UDP协议DMA传输 配合10G Ethernet PCS/PMA使用 提供工程源码和技术支持

    目前网上的fpga实现udp基本生态如下: 1:verilog编写的udp收发器,但不带ping功能,这样的代码功能正常也能用,但不带ping功能基本就是废物,在实际项目中不会用这样的代码,试想,多机互联,出现了问题,你的网卡都不带ping功能,连基本的问题排查机制都不具备,这样的代

    2024年02月08日
    浏览(45)
  • 【FPGA】Xilinx Cordic IP 内核使用记录(输入输出数据格式介绍)及实验仿真

    Rotate 实现的功能是坐标的旋转。 输入 X, Y, Phase 输出X’, Y’ 具体实现的功能对应的数学表达形式如下: 在做FFT 复乘旋转因子时也可以用这个IP核的Rotate功能来实现。旋转因子-旋转! Translation 实现的功能是求模,以及向量的夹角 输入 X, Y 输出X’ and Phase 具体实现的功能对应

    2024年02月07日
    浏览(48)
  • FPGA串口(RS422)调试笔记:理解串口通信与调试记录

    探索FPGA串口(RS422)通信的调试过程与记录,包括串口通信概念解析、调试步骤、代码示例以及数据拼接方法。记录调试中遇到的问题与解决方案,展示对串口通信功能的实现与乐趣体验。

    2023年04月08日
    浏览(40)
  • FPGA调试问题记录(软件无线电)

    一、Vivado报错 【labtools 27-3403】 原因:JTAG频率过高。 解决:连接调试器时降低JTAG频率。 【DRC REQP-1619】 原因:没接管脚,造成没有IOB来驱动GT。 【DRC REQP-1712】 输入信号clk不是来自普通的单端时钟信号。 解决: 方法1.IP核中将PLL的clk_in1的source参数修改为Global buffer。 方法2

    2024年02月14日
    浏览(42)
  • 基于FPGA的1080P 60Hz BT1120接口调试过程记录

    这个BT1120接口是在1080P 60Hz的视频中验证的,其它频率的视频使用时要修改对应的参数。另外由于接口代码里面例化了一个深度位512的FIFO(quartus),所以在做仿真测试时需要quartus和modelsim联合仿真。 bt1120接口最重要的部分是结束码和起始码(FF 00 00 XYZ) 前面3字节的FF 00 00 是

    2024年02月16日
    浏览(59)
  • Xilinx 7系列 FPGA硬件知识系列(八)——Xilinx FPGA的复位

    目录  概要  Xilinx复位准则 全局复位主要由以下三种方式实现 高时钟频率下的复位时序全局复位对时序的要求真的很关键吗? 独热码状态机的复位        FPGA配置 Xilinx白皮书WP272《Get Smart About Reset: Think Local, Not Global》详细讲述了FPGA的全局复位。在数字系统设计中,我们

    2024年03月11日
    浏览(72)
  • 基于xilinx k7 325t实现的千兆网udp协议

    基于xilinx k7 325t实现的千兆网udp协议,只需要设置好IP,端口,就可以直接给数据,基本等同于透传,可以不用管底层协议。 可以 # FPGA 实现udp模块说明 ## udp_protocol_top gig_ethernet_pcs_pma有脚本生成,任何版本vivado都可以支持,注释里面有对重要信号的说明,默认是1000M,100M需要改内部

    2024年04月11日
    浏览(36)
  • FPGA学习_Xilinx7系列FPGA基本结构

    参考:https://xilinx.eetrend.com/content/2019/100042384.html xilinx7系列FPGA主要包括:Spartan®-7、Artix®-7、Kintex®-7、Virtex®-7。其性能/密度/价格也随着系列的不同而提升。 Spartan7 系列拥有最低的价格、最低的功耗、最小的尺寸以及最低的设计难度,一些低端应用中极为合适。 Artix7 系列相

    2024年04月09日
    浏览(87)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包