目录

  • 1、前言
  • 2、我这里已有的UDP方案
  • 3、米联客UDP协议栈
  • 4、详细设计方案
  • 5、Tri Mode Ethernet MAC的使用
  • 6、vivado工程1详解
  • 7、vivado工程2详解
  • 8、vivado工程3详解
  • 9、上板调试验证并演示
  • 10、福利:工程代码的获取

1、前言

目前网上的fpga实现udp基本生态如下:
1:verilog编写的udp收发器,但不带ping功能,这样的代码功能正常也能用,但不带ping功能基本就是废物,在实际项目中不会用这样的代码,试想,多机互联,出现了问题,你的网卡都不带ping功能,连基本的问题排查机制都不具备,这样的代码谁敢用?
2:带ping功能的udp收发器,代码优秀也好用,但基本不开源,不会提供源码给你,这样的代码也有不足,那就是出了问题不知道怎么排查,毕竟你没有源码,无可奈何;
3:使用了Xilinx的Tri Mode Ethernet MAC三速网IP实现,这样的代码也很优秀,但还是那个问题,没有源码,且三速网IP需要licence,三速网IP实现了rgmii到gmii再到axis的转换,本设计基于此方案;

本设计调用Xilinx的Tri Mode Ethernet MAC三速网IP,使用米联客的UDP协议栈实现UDP通信,该协议栈目前并不开源,只提供网表文件,但不影响使用,该协议栈带有用户接口,使得用户无需关心复杂的UDP协议而只需关心简单的用户接口时序即可操作UDP收发,非常简单;本设计通过一个fifo实现UDP数据的回环收发,并在电脑端使用网络调试助手进行UDP收发验证;

本设计可以配置为UDP的服务器或者客户端,默认配置为服务器,可在顶层代码中通过`define实现配置,本设计经过反复大量测试稳定可靠,可在项目中直接移植使用,工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字通信领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

2、我这里已有的UDP方案

目前我这里有如下几种UDP方案和应用实例:
我的博客主页有个FPGA以太网通信专栏,专栏是免费的,里面有很多FPGA实现的UDP应用,对网络通信有需求的兄弟可以去看看:直接点击前往

3、米联客UDP协议栈

本设计调用Xilinx的Tri Mode Ethernet MAC三速网IP,使用米联客的UDP协议栈实现UDP通信,该协议栈目前并不开源,只提供网表文件,但不影响使用,该协议栈带有用户接口,使得用户无需关心复杂的UDP协议而只需关心简单的用户接口时序即可操作UDP收发,非常简单;
协议栈架构如下:

协议栈性能表现如下:
1:支持 UDP 接收校验和检验功能,暂不支持 UDP 发送校验和生成;
2:支持 IP 首部校验和的生成和校验,同时支持 ICMP 协议中的 PING 功能,可接收并响应同一个子网内部设备的 PING 请求;
3:可自动发起或响应同一个子网内设备的 ARP 请求,ARP 收发完全自适应。ARP 表可保存同一个子网内部256 个 IP 和 MAC 地址对;
4:支持 ARP 超时机制,可检测所需发送数据包的目的 IP 地址是否可达;
5:协议栈发送带宽利用率可达 93%,高发送带宽下,内部仲裁机制保证 PING 和 ARP 功能不受任何影响;
6:发送过程不会造成丢包;
7:提供64bit位宽AXI4-Stream形式的MAC接口,可与Xilinx官方的千兆以太网IP核Tri Mode Ethernet MAC,以及万兆以太网 IP 核 10 Gigabit Ethernet Subsystem、10 Gigabit Ethernet MAC 配合使用;
有了此协议栈,我们无需关心复杂的UDP协议的实现了,直接调用接口即可使用。。。

4、详细设计方案

详细设计方案如下:

UDP协议栈加上了FIFO以缓冲数据;
调用Tri Mode Ethernet MAC实现MAC层的数据转换;
共提供了3套工程实现UDP通信,只是使用的PHY不同,分别是RTL8211、
B50610、88E1518;
在电脑端使用网络调试助手测试数据收发、对包情况,还有连续ping、网络带宽延迟等测试;

5、Tri Mode Ethernet MAC的使用




IP使用逻辑实现的AXI Lite接口配置,具体参考代码;
IP配置很简单,配置完成即可使用;

6、vivado工程1详解

开发板:Xilinx Artix7-35T;
开发环境:Vivado2020.2;
网络PHY:RTL8211延时模式;
输入\输出:UDP网络通信;
测试项:数据收发、连续ping、网络测速;
工程代码架构如下:

本设计可以配置为UDP的服务器或者客户端,默认配置为服务器,可在顶层代码中通过`define实现配置,如下:

开发板IP和远端IP可自由修改,master_ch.v和slaver_ch.v文件修改位置如下:

7、vivado工程2详解

开发板:Xilinx Kintex7-35T;
开发环境:Vivado2020.2;
网络PHY:B50610延时模式;
输入\输出:UDP网络通信;
测试项:数据收发、连续ping、网络测速;
工程详情与vivado工程1一致;

8、vivado工程3详解

开发板:Xilinx Kintex7-35T;
开发环境:Vivado2020.2;
网络PHY:88E1518延时模式;
输入\输出:UDP网络通信;
测试项:数据收发、连续ping、网络测速;
工程详情与vivado工程1一致;

9、上板调试验证并演示


以工程2的Kintex7-35T开发板为例进行测试;
板子上电下载bit后,先测试ping功能,如下:

单次ping还不够,直接上连续ping,如下:

然后是用网络调试助手进行数据收发测试,如下:

既有手动收发测试,也有循环12小时的长时间收发测试,测试结果没有出现丢包的情况。。。
测速如下:

在电脑上观察开发板以太网网口的发送速率,这个测速只代表可能的最高的速度,不代表电脑真实的不丢包速度,UDP 的点到点不丢包速度和电脑的网卡、CPU 速度、内存速度、操作系统都有关系。。。

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

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:

UDP协议栈网表文件位置:

FPGA基于Tri Mode Ethernet MAC实现UDP通信 提供3套工程源码和技术支持相关推荐

  1. FPGA USB FX2 ov5640摄像头视频采集 驱动CY7C68013A实现 提供2套工程源码和技术支持

    目录 1.前言 2.我这儿已有的 FPGA USB 通信方案 3.CY7C68013A芯片解读和硬件设计 FX2 简介 SlaveFIFO模式及其配置 4.工程详细设计方案 5.vivado工程 6. ...

  2. FPGA HLS双线性插值图像缩放视频拼接,上板验证稳定通过,提供3套工程源码和技术支持

    目录 1.前言 2.HLS实现双线性插值图像缩放 3.vivado工程1:1080P缩小720P 4.vivado工程2:1080P缩小后mixer二分频 5.上板调试验证并演示 6.福利:工程代码的 ...

  3. FPGA纯verilog实现视频拼接,纯逻辑资源搭建,提供4套工程源码和技术支持

    目录 1.本方案的实用价值 2.总体设计方案 3.视频拼接方案算法 4.工程1:单路视频输出 5.工程2:2路视频拼接输出 6.工程3:3路视频拼接输出 7.工程4:4路视频拼接输出 8.上板调试验证 ...

  4. FPGA采集IT6802视频HDMI输出,提供两套工程源码和技术支持

    IT6802是宝岛台湾联阳半导体设计生产的HDMI接受芯片,数据手册有49页,编程手册79页,想要看懂并操作还是有难度的,所以直接上干货. 开发板:Kintex7板子: 开发环境:vivado2019 ...

  5. FPGA实现GTX视频传输,全网最细讲解,提供2套工程源码和技术支持

    目录 1.前言: 2.工程整体框架: 3.GTX IP 配置及细节讲解 4.GTX收发数据编解码讲解 5.工程1介绍:OV5640转GTX 6.工程2介绍:HDMI转GTX 7.上板调试 8.福利领取 ...

  6. FPGA采集AD7606全网最细讲解 提供串行和并行2套工程源码和技术支持

    目录 1.前言 2.AD7606数据手册解读 输入信号采集范围 输出模式选择 过采样率设置 3.AD7606串行输出采集 4.AD7606并行输出采集 5.vivado仿真 6.上板调试验证 7.福利 ...

  7. FPGA基于SFP光口实现1G千兆网UDP通信 1G/2.5G Ethernet PCS/PMA or SGMII替代网络PHY芯片 提供工程源码和技术支持

    目录 1.前言 2.我这里已有的UDP方案 3.详细设计方案 4.vivado工程详解 5.上板调试验证并演示 6.福利:工程代码的获取 1.前言 目前网上的fpga实现udp基本生态如下: 1:ve ...

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

    目录 1.前言 2.我这里已有的UDP方案 3.详细设计方案 4.vivado工程详解 5.上板调试验证并演示 6.福利:工程代码的获取 1.前言 目前网上的fpga实现udp基本生态如下: 1:ve ...

  9. FPGA基于GS2971/GS2972实现SDI视频收发 提供工程源码和技术支持

    目录 1.前言 2.我目前已有的SDI编解码方案 3.GS2971/GS2972芯片解读 GS2971解读 GS2972解读 4.详细设计方案 5.vivado工程1解读 硬件逻辑工程 软件SDK工程 ...

最新文章

  1. linux系统管理及vim
  2. [Cocos2d-x For WP8]ActionManager动作管理
  3. Java项目导出源代码jar包在Eclipse中查看中文注释乱码的问题
  4. CSP认证201612-4 压缩编码[C++题解]:区间dp、huffman树、石子合并
  5. DL之CNN:基于CNN-RNN(GRU,2)算法(keras+tensorflow)实现不定长文本识别
  6. 放个手机在单位自动打卡_1秒识别打卡,无感知考勤系统重磅来袭!
  7. SQL中Truncate的用法
  8. C#数组原来这么简单,你学废了吗?
  9. 作为一个算法攻城狮,你训练的算法翻车了该怎么办?
  10. Spring整合SequoiaDB SQL
  11. 表生成器@ TableGenerator
  12. Codeforce 1600Difficulty Graphs 20 questions
  13. 由矢量电子海图构建海底 TINDEM方法研究
  14. 多路增广 Dinic算法
  15. linux复制dos命令,Linux mcopy复制MSDOS格式档案命令详解
  16. 高防服务器有哪些优势
  17. Maven手动添加dependency(以Oracle JDBC为例)
  18. 灵玖软件:NLPIR大数据语义智能为企业“画像”
  19. Android接入穿山甲SDK并实现开屏广告
  20. 服务器绑定网站域名,服务器网站绑定域名

热门文章

  1. 我的世界java18w50a_Minecraft我的世界Java版18w47a更新发布
  2. 学习Python编程基础学习笔记(5.模块和包)
  3. 详解Hexo搭建博客的底层原理
  4. 生产者-消费者问题 ——by一宇 2021-01-04
  5. Discuz!教程之Discuz!X2.5版本安装一些插件显示500错误,或页面打不开的问题修复
  6. iverilog Makefile 阅读
  7. 效率高低有方法 数据挖掘十大经典算法
  8. 机器视觉(MV) vs 计算机视觉(CV)
  9. 大数据分析工程师证书_大数据分析工程师面试集锦4Hive
  10. 无人驾驶感知篇之传感器标定(一)