FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持

这篇具有很好参考价值的文章主要介绍了FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、前言

目前网上的fpga实现udp基本生态如下:
1:verilog编写的udp收发器,但不带ping功能,这样的代码功能正常也能用,但不带ping功能基本就是废物,在实际项目中不会用这样的代码,试想,多机互联,出现了问题,你的网卡都不带ping功能,连基本的问题排查机制都不具备,这样的代码谁敢用?
2:带ping功能的udp收发器,代码优秀也好用,但基本不开源,不会提供源码给你,这样的代码也有不足,那就是出了问题不知道怎么排查,毕竟你没有源码,无可奈何;
3:使用了Xilinx的三速网IP实现,这样的代码也很优秀,但还是那个问题,没有源码,且三速网IP需要licence,官方提供的licence有效期只有120天,其实三速网IP仅仅实现了rgmii到gmii再到axis的转换,完全可以不用这个ip;
本设计使用B50610作为网络PHY芯片,使用verilog代码设计UDP协议,并带有用户接口,使得用户无需关心复杂的UDP协议而只需关心简单的用户接口时序即可操作UDP收发,用户接口时序在顶层helai_udp_loop.v文件中有阐述,非常简单,通过一个fifo实现UDP数据的回环收发,并在电脑端使用网络调试助手进行UDP收发验证,在文章末尾有演示效果展示。

免责声明

本工程及其源码即有自己写的一部分,也有网络公开渠道获取的一部分(包括CSDN、Xilinx官网、Altera官网等等),若大佬们觉得有所冒犯,请私信批评教育;基于此,本工程及其源码仅限于读者或粉丝个人学习和研究,禁止用于商业用途,若由于读者或粉丝自身原因用于商业用途所导致的法律问题,与本博客及博主无关,请谨慎使用。。。

2、我这里已有的UDP方案

目前我这里有如下几种UDP方案和应用实例:
1、FPGA实现精简版UDP通信,数据回环例程,提供了Kintex7和Artix7的2套工程,实现了UDP数据回环测试,精简版UDP有ARP,没有ping功能,但资源占用很少,感兴趣的可以参考我之前的文章:点击查看
2、FPGA实现极简版UDP板间视频传输,根据精简版UDP修改而来,去掉了其中的ARP部分,使用网线在两块FPGA开发板之间传输OV5640摄像头视频,感兴趣的可以参考我之前的文章:点击查看
3、使用Xilinx官方的三速网IP实现UDP通信,缺点是需要调用XIlinx的三速网IP,且需要去官网申请licence,优点是数据传输快、传输数据量大,感兴趣的可以参考我之前的文章:点击查看
3、使用Xilinx官方的三速网IP实现UDP视频传输,网线传输采集的OV5640摄像头视频,在电脑端使用QT上位机接收图像并显示,感兴趣的可以参考我之前的文章:点击查看
4、使用Xilinx官方的三速网IP实现UDP视频传输,网线传输采集的SDI视频,在电脑端使用QT上位机接收图像并显示,感兴趣的可以参考我之前的文章:点击查看
5、纯verilog代码实现UDP通信,带ARP和ping功能,提供了数据回环例程,本设计也是根据这个代码移植而来,感兴趣的可以参考我之前的文章:点击查看

3、UDP实现

UDP设计思路和框架如下:FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持
框图收发流程很清晰,就不多说了。。。
下面直接介绍工程:
rgmii转gmii,用Xilinx官方源语实现,很简单,可以参考其他博文,其实网上的这块都是抄的Xilinx官方的例程,没什么可说的。。。
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持
rgmii转gmii后,数据已经是8位的并行数据了,再送udp模块处理进行收发,如下:
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持
udp模块从上层到下层结构如下:
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持

4、vivado工程1详解

工程介绍:
开发板:Xilinx Artix7开发板;
开发环境:vivado2019.1;
网络PHY:KSZ9031;
输入输出:UDP环出;
***这个工程的PHY工作在千兆网延时模式下,所以发送时钟125M相位不偏移。 ***
工程代码架构如下:
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持
发送时钟设置如下:
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持
代码层面体现如下:
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持
udp模块用户接口:
关于这部分后面找个时间专门写一篇文章并附上时序图;
FPGA资源消耗和功耗预估如下:
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持

5、vivado工程2详解

工程介绍:
开发板:Xilinx Artix7开发板;
开发环境:vivado2019.1;
网络PHY:RTL8211;
输入输出:UDP环出;
***这个工程的PHY工作在千兆网非延时模式下,所以发送时钟125M相位偏移90°。 ***
工程代码架构如下:
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持
发送时钟设置如下:
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持
代码层面体现如下:
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持
udp模块用户接口:
关于这部分后面找个时间专门写一篇文章并附上时序图;
FPGA资源消耗和功耗预估如下:
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持

6、上板调试验证并演示

FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持
板子上电下载bit后,先测试ping功能,如下:
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持
单次ping还不够,直接上连续ping,如下:
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持
然后是用网络调试助手进行数据收发测试,如下:
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持
既有手动收发测试,也有循环12小时的长时间收发测试,测试结果没有出现丢包的情况。。。

7、福利:工程代码的获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持
FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持文章来源地址https://www.toymoban.com/news/detail-474761.html

到了这里,关于FPGA纯verilog实现UDP通信,带ARP和Ping功能,提供2套工程源码和技术支持的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包