FPGA基于Tri Mode Ethernet MAC实现UDP网络通信,提供11套工程源码和技术支持

本文介绍了基于FPGA实现UDP通信的详细设计方案,包括使用Xilinx的TriModeEthernetMACIP和UDP协议栈,提供了针对不同PHY的Vivado工程源码,并分享了工程移植与调试经验。设计支持UDP服务器和客户端模式,具有数据回环功能,并通过网络调试助手验证了其稳定性与可靠性。
摘要由CSDN通过智能技术生成


FPGA基于Tri Mode Ethernet MAC实现UDP网络通信,提供11套工程源码和技术支持

1、前言

目前网上的fpga实现udp基本生态如下:
1:verilog编写的精简版udp收发器,不带ping功能,这样的代码功能正常也能用,但不带ping功能基本就是废物,在实际项目中不会用这样的代码,试想,多机互联,出现了问题,你的网卡都不带ping功能,连基本的问题排查机制都不具备,这样的代码谁敢用?
2:带ping功能的完整版udp收发器,代码优秀也好用,但基本不开源,不会提供源码给你,这样的代码也有不足,那就是出了问题不知道怎么排查,毕竟你没有源码,无可奈何;

FPGA实现UDP网络通信现状;
Xilinx系列FPGA实现UDP网络通信主要有两种方案,其一是使用PHY芯片实现物理层功能,比如常见的RTL8211、B50610等芯片,UDP协议栈部分很简单,可使用verilog代码直接实现;其二是使用Xilinx官方的IP核实现物理层功能,比如常见的1G/2.5G Ethernet PCS/PMA or SGMII、AXI 1G/2.5G Ethernet Subsystem、10G/25G Ethernet Subsystem、10G Ethernet Subsystem等,UDP协议栈部分很简单,可使用verilog代码直接实现;本设计使用PHY芯片方案实现物理层功能;

工程概述

本设计的核心是调用Xilinx的Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换;
本设计能实现电脑端网卡与FPGA开发板之间的双向通信,为了方便测试,设计了UDP数据回环和网络测速两个功能;

UDP数据回环功能如下:
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的PHY芯片实现以太网物理层功能,将差分数据转换为并行RGMII接口数据;再调用Xilinx的Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换,即将RGMII接口数据转换为AXI4-Stream接口数据;然后MAC数据经过数据缓冲FIFO组实现数据位宽转换和跨时钟域转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换,即将AXI4-Stream接口数据转换为RGMII接口数据;然后数据进入板载PHY芯片实现以太网物理层,输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;

网络测速功能如下:
PGA自动循环产生从0开始的累加数作为UDP发送数据,发送数据然后进入UDP协议栈实现以太网帧组包,即加上各种头部信息和校验,每包数据长度为1472;然后数据进入Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换,即将AXI4-Stream接口数据转换为RGMII接口数据;然后数据进入板载PHY芯片实现以太网物理层,输出差分信号,并通过网线发送到电脑端;然后打开电脑端的资源管理器,查看网卡,即可看到通信速率;

针对目前市面上主流的FPGA和PHY芯片信号,本工程共移植了11套工程,具体如下:
在这里插入图片描述
现对上述11套工程源码做如下解释,方便读者理解:

工程源码1

开发板FPGA型号为Xilinx–>Artix7-35T–xc7a35tfgg484-2;板载PHY芯片型号为RTL8211E,PHY工作于延时模式,输出RGMII接口数据,调用Xilinx的Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换,以太网传输层为千兆UDP协议,可实现基于FPGA的UDP网络通信,该工程适用于Xilinx 7系列FPGA;

工程源码2

开发板FPGA型号为Xilinx–>Artix7-35T–xc7a35tfgg484-2;板载PHY芯片型号为KSZ9031,PHY工作于延时模式,输出RGMII接口数据,调用Xilinx的Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换,以太网传输层为千兆UDP协议,可实现基于FPGA的UDP网络通信,该工程适用于Xilinx 7系列FPGA;

工程源码3

开发板FPGA型号为Xilinx–>Artix7-100T–xc7a100tfgg484-2;板载PHY芯片型号为B50610,PHY工作于延时模式,输出RGMII接口数据,调用Xilinx的Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换,以太网传输层为千兆UDP协议,可实现基于FPGA的UDP网络通信,该工程适用于Xilinx 7系列FPGA;

工程源码4

开发板FPGA型号为Xilinx–>Kintex7-325T–xc7k325tffg676-2;板载PHY芯片型号为B50610,PHY工作于延时模式,输出RGMII接口数据,调用Xilinx的Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换,以太网传输层为千兆UDP协议,可实现基于FPGA的UDP网络通信,该工程适用于Xilinx 7系列FPGA;

工程源码5

开发板FPGA型号为Xilinx–>Kintex7-325T–xc7k325tffg900-2;板载PHY芯片型号为RTL8211F,PHY工作于延时模式,输出RGMII接口数据,调用Xilinx的Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换,以太网传输层为千兆UDP协议,可实现基于FPGA的UDP网络通信,该工程适用于Xilinx 7系列FPGA;

工程源码6

开发板FPGA型号为Xilinx–>Zynq7020—xc7z020clg400-2;板载PHY芯片型号为B50610,PHY工作于延时模式,输出RGMII接口数据,调用Xilinx的Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换,以太网传输层为千兆UDP协议,可实现基于FPGA的UDP网络通信,该工程适用于Xilinx Zynq7000系列FPGA;

工程源码7

开发板FPGA型号为Xilinx–>Zynq7020—xc7z020clg400-2;板载PHY芯片型号为KSZ9031,PHY工作于延时模式,输出RGMII接口数据,调用Xilinx的Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换,以太网传输层为千兆UDP协议,可实现基于FPGA的UDP网络通信,该工程适用于Xilinx Zynq7000系列FPGA;

工程源码8

开发板FPGA型号为Xilinx–>Zynq7100—xc7z100ffg900-2;板载PHY芯片型号为KSZ9031,PHY工作于延时模式,输出RGMII接口数据,调用Xilinx的Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换,以太网传输层为千兆UDP协议,可实现基于FPGA的UDP网络通信,该工程适用于Xilinx Zynq7000系列FPGA;

工程源码9

开发板FPGA型号为Xilinx–>Kintex UltraScale–xcku060-ffva1156-2-i;板载PHY芯片型号为RTL8211F,PHY工作于延时模式,输出RGMII接口数据,调用Xilinx的Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换,以太网传输层为千兆UDP协议,可实现基于FPGA的UDP网络通信,该工程适用于Xilinx UltraScale系列FPGA;

工程源码10

开发板FPGA型号为Xilinx–>Kintex UltraScale±-xcku3p-ffva676-2-i;板载PHY芯片型号为RTL8211F,PHY工作于延时模式,输出RGMII接口数据,调用Xilinx的Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换,以太网传输层为千兆UDP协议,可实现基于FPGA的UDP网络通信,该工程适用于Xilinx UltraScale+系列FPGA;

工程源码11

开发板FPGA型号为Xilinx- Zynq UltraScale+MPSoCs–xczu4ev-sfvc784-2-i;板载PHY芯片型号为RTL8211F,PHY工作于延时模式,输出RGMII接口数据,调用Xilinx的Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换,以太网传输层为千兆UDP协议,可实现基于FPGA的UDP网络通信,该工程适用于Xilinx UltraScale+MPSoCs系列FPGA;

本文详细描述了FPGA基于Tri Mode Ethernet MAC实现UDP网络通信的设计方案,工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的高速接口领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

免责声明

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

2、相关方案推荐

我已有的PCIE方案

我的主页有PCIE通信专栏,该专栏基于XDMA的轮询模式实现与QT上位机的数据交互,既有基于RIFFA实现的PCIE方案,也有基于XDMA实现的PCIE方案;既有简单的数据交互、测速,也有应用级别的图像采集传输,以下是专栏地址:
点击直接前往
此外,我的主页有中断模式的PCIE通信专栏,该专栏基于XDMA的中断模式实现与QT上位机的数据交互,以下是专栏地址:
点击直接前往
此外,还有基于RIFFA架构的PCIE通信专栏,以下是专栏地址:
点击直接前往

我这里已有的以太网方案

目前我这里有大量UDP协议的工程源码,包括UDP数据回环,视频传输,AD采集传输等,也有TCP协议的工程,还有RDMA的NIC 10G 25G 100G网卡工程源码,对网络通信有需求的兄弟可以去看看:
直接点击前往
其中千兆TCP协议的工程博客如下:
直接点击前往

3、工程详细设计方案

工程设计原理框图

工程设计原理框图如下:
在这里插入图片描述

电脑端网络调试助手

电脑端网络调试助手很简单,几乎干这一行的都用过,为Windows版本.exe文件,无需安装直接使用,界面如下:
在这里插入图片描述
这个软件使用教程可自行百度,如果连这个都不会用,说明。。。

PHY芯片

本例程提供11套vivado工程源码,分别用到了RTL8211、KSZ9031、B50610等市面上主流的PHY型号,通过这些型号PHY的使用,你将能学会其他型号PHY的使用,因为很多都是兼容的,比如RTL8211兼容YT8531,B50610兼容88E1518等;此外,还提供了PHY的参考原理图,一并放在了资料包中;

Tri Mode Ethernet MAC 使用教程

本设计的核心是调用Xilinx的Tri Mode Ethernet MAC IP核实现以太网物理层的数据接口转换;所以重点讲讲Tri Mode Ethernet MAC这个IP,IP调用如下:
在这里插入图片描述
Tri Mode Ethernet MAC并不能直接使用,而是需要配合对应的PHY芯片的RGMII时序图做针对性修改,需要修改IP内部源码,这部分操作比较复杂,我专门写了《Tri Mode Ethernet MAC移植使用教程》文档,并放在了资料包中;

此外,Tri Mode Ethernet MAC还需要AXI4-Lite接口的配置才能工作,工程中如下:
在这里插入图片描述

MAC数据缓冲FIFO组

这里对代码中用到的数据缓冲FIFO组做如下解释:
由于 UDP IP 协议栈的 AXI-Stream 数据接口位宽为 64bit,而 Tri Mode Ethernet MAC 的 AXI-Stream数据接口位宽为 8bit。因此,要将 UDP IP 协议栈与 Tri Mode Ethernet MAC 之间通过 AXI-Stream 接口互联,需要进行时钟域和数据位宽的转换。实现方案如下图所示:
在这里插入图片描述
收发路径(本设计只用到了发送)都使用了2个AXI-Stream DATA FIFO,通过其中1个FIFO实现异步时钟域的转换,1个FIFO实
现数据缓冲和同步Packet mode功能;由于千兆速率下Tri Mode Ethernet MAC的AXI-Stream数据接口同步时钟信号为125MHz,此时,UDP协议栈64bit的AXI-Stream数据接口同步时钟信号应该为125MHz/(64/8)=15.625MHz,因此,异步
AXI-Stream DATA FIFO两端的时钟分别为125MHz(8bit),15.625MHz(64bit);UDP IP协议栈的AXI-Stream接口经过FIFO时钟域转换后,还需要进行数据数据位宽转换,数据位宽的转换通过AXI4-Stream Data Width Converter完成,在接收路径中,进行 8bit 到 64bit 的转换;在发送路径中,进行 64bit 到 8bit 的转换;MAC数据缓冲FIFO组代码架构如下:
在这里插入图片描述

UDP协议栈

本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协议的实现了,直接调用接口即可使用。。。
本UDP协议栈用户接口发送时序如下:
在这里插入图片描述
本UDP协议栈用户接口接收时序如下:
在这里插入图片描述

UDP用户数据测试模块

UDP用户数据测试模块集成了UDP数据回环和网络测速功能,通过顶层参数选择,源码架构如下:
在这里插入图片描述
UDP用户数据测试模块顶层接口如下:
在这里插入图片描述
功能选择如下:
parameter SPEED_TEST_EN = 0 ;使用UDP数据回环功能;
parameter SPEED_TEST_EN = 1 ;使用网络测速测速;

UDP数据回环功能:
将接收数据送入缓冲FIFO,并通知UDP协议栈将数据读出,即形成发送=接收的自回环功能;该功能的作用是配合网络调试助手进行数据收发测试、数据丢包测试、数据正确性测试等;

网络测速功能:
FPGA自动循环向UDP协议栈发送累加的数据,数据内容从0开始累加,数据包长为1472,即形成连续发送数据功能;该功能的作用是配合PC端测试网络极限速率,打开电脑端的资源管理器,查看网卡,即可看到通信速率;

IP地址、端口号的修改

工程留出了IP地址、端口号的修改端口供用户自由修改,位置在顶层模块如下:
在这里插入图片描述

工程源码架构

提供11套工程源码,以工程源码1为例,综合后的工程源码架构如下:
在这里插入图片描述

4、vivado工程源码1详解–>Artix7-35T,RTL8211E做PHY

开发板FPGA型号:Xilinx–Artix7–xc7a100tfgg484-2;
FPGA开发环境:Vivado2019.1;
以太网物理层方案:RTL8211E芯片,延时模式,RGMII接口;
FPGA端MAC方案:Xilinx官方Tri Mode Ethernet MAC IP核,固定千兆模式;
以太网传输层协议:UDP协议,千兆速率;
实现功能:FPGA基于Tri Mode Ethernet MAC实现UDP网络通信;
工程作用:此工程目的是让读者掌握FPGA基于Tri Mode Ethernet MAC实现UDP网络通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

5、vivado工程源码2详解–>Artix7-35T,KSZ9031做PHY

开发板FPGA型号:Xilinx–Artix7–xc7a100tfgg484-2;
FPGA开发环境:Vivado2019.1;
以太网物理层方案:KSZ9031芯片,延时模式,RGMII接口;
FPGA端MAC方案:Xilinx官方Tri Mode Ethernet MAC IP核,固定千兆模式;
以太网传输层协议:UDP协议,千兆速率;
实现功能:FPGA基于Tri Mode Ethernet MAC实现UDP网络通信;
工程作用:此工程目的是让读者掌握FPGA基于Tri Mode Ethernet MAC实现UDP网络通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

6、vivado工程源码3详解–>Artix7-100T,B50610做PHY

开发板FPGA型号:Xilinx–Artix7–xc7a100tfgg484-2;
FPGA开发环境:Vivado2019.1;
以太网物理层方案:B50610芯片,延时模式,RGMII接口;
FPGA端MAC方案:Xilinx官方Tri Mode Ethernet MAC IP核,固定千兆模式;
以太网传输层协议:UDP协议,千兆速率;
实现功能:FPGA基于Tri Mode Ethernet MAC实现UDP网络通信;
工程作用:此工程目的是让读者掌握FPGA基于Tri Mode Ethernet MAC实现UDP网络通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

7、vivado工程源码4详解–>Kintex7-325T,B50610做PHY

开发板FPGA型号:Xilinx–>Kintex7-325T–xc7k325tffg676-2;
FPGA开发环境:Vivado2019.1;
以太网物理层方案:B50610芯片,延时模式,RGMII接口;
FPGA端MAC方案:Xilinx官方Tri Mode Ethernet MAC IP核,固定千兆模式;
以太网传输层协议:UDP协议,千兆速率;
实现功能:FPGA基于Tri Mode Ethernet MAC实现UDP网络通信;
工程作用:此工程目的是让读者掌握FPGA基于Tri Mode Ethernet MAC实现UDP网络通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

8、vivado工程源码5详解–>Kintex7-325T,RTL8211F做PHY

开发板FPGA型号:Xilinx–>Kintex7-325T–xc7k325tffg900-2;
FPGA开发环境:Vivado2019.1;
以太网物理层方案:RTL8211F芯片,延时模式,RGMII接口;
FPGA端MAC方案:Xilinx官方Tri Mode Ethernet MAC IP核,固定千兆模式;
以太网传输层协议:UDP协议,千兆速率;
实现功能:FPGA基于Tri Mode Ethernet MAC实现UDP网络通信;
工程作用:此工程目的是让读者掌握FPGA基于Tri Mode Ethernet MAC实现UDP网络通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

9、vivado工程源码6详解–>Zynq7020,B50610做PHY

开发板FPGA型号:Xilinx–>Zynq7020—xc7z020clg400-2;
FPGA开发环境:Vivado2019.1;
以太网物理层方案:B50610芯片,延时模式,RGMII接口;
FPGA端MAC方案:Xilinx官方Tri Mode Ethernet MAC IP核,固定千兆模式;
以太网传输层协议:UDP协议,千兆速率;
实现功能:FPGA基于Tri Mode Ethernet MAC实现UDP网络通信;
工程作用:此工程目的是让读者掌握FPGA基于Tri Mode Ethernet MAC实现UDP网络通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

10、vivado工程源码7详解–>Zynq7020,KSZ9031做PHY

开发板FPGA型号:Xilinx–>Zynq7020—xc7z020clg400-2;
FPGA开发环境:Vivado2019.1;
以太网物理层方案:KSZ9031芯片,延时模式,RGMII接口;
FPGA端MAC方案:Xilinx官方Tri Mode Ethernet MAC IP核,固定千兆模式;
以太网传输层协议:UDP协议,千兆速率;
实现功能:FPGA基于Tri Mode Ethernet MAC实现UDP网络通信;
工程作用:此工程目的是让读者掌握FPGA基于Tri Mode Ethernet MAC实现UDP网络通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

11、vivado工程源码8详解–>Zynq7100,RTL8211E做PHY

开发板FPGA型号:Xilinx–>Zynq7100—xc7z100ffg900-2;
FPGA开发环境:Vivado2019.1;
以太网物理层方案:RTL8211E芯片,延时模式,RGMII接口;
FPGA端MAC方案:Xilinx官方Tri Mode Ethernet MAC IP核,固定千兆模式;
以太网传输层协议:UDP协议,千兆速率;
实现功能:FPGA基于Tri Mode Ethernet MAC实现UDP网络通信;
工程作用:此工程目的是让读者掌握FPGA基于Tri Mode Ethernet MAC实现UDP网络通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

12、vivado工程源码9详解–>KU060,RTL8211F做PHY

开发板FPGA型号:Xilinx–>Kintex UltraScale–xcku060-ffva1156-2-i;
FPGA开发环境:Vivado2019.1;
以太网物理层方案:RTL8211F芯片,延时模式,RGMII接口;
FPGA端MAC方案:Xilinx官方Tri Mode Ethernet MAC IP核,固定千兆模式;
以太网传输层协议:UDP协议,千兆速率;
实现功能:FPGA基于Tri Mode Ethernet MAC实现UDP网络通信;
工程作用:此工程目的是让读者掌握FPGA基于Tri Mode Ethernet MAC实现UDP网络通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

13、vivado工程源码10详解–>KU3P,RTL8211F做PHY

开发板FPGA型号:Xilinx–>Kintex UltraScale±-xcku3p-ffva676-2-i;
FPGA开发环境:Vivado2019.1;
以太网物理层方案:RTL8211F芯片,延时模式,RGMII接口;
FPGA端MAC方案:Xilinx官方Tri Mode Ethernet MAC IP核,固定千兆模式;
以太网传输层协议:UDP协议,千兆速率;
实现功能:FPGA基于Tri Mode Ethernet MAC实现UDP网络通信;
工程作用:此工程目的是让读者掌握FPGA基于Tri Mode Ethernet MAC实现UDP网络通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

14、vivado工程源码11详解–>ZU4EV,RTL8211F做PHY

开发板FPGA型号:Xilinx- Zynq UltraScale+MPSoCs–xczu4ev-sfvc784-2-i;
FPGA开发环境:Vivado2019.1;
以太网物理层方案:RTL8211F芯片,延时模式,RGMII接口;
FPGA端MAC方案:Xilinx官方Tri Mode Ethernet MAC IP核,固定千兆模式;
以太网传输层协议:UDP协议,千兆速率;
实现功能:FPGA基于Tri Mode Ethernet MAC实现UDP网络通信;
工程作用:此工程目的是让读者掌握FPGA基于Tri Mode Ethernet MAC实现UDP网络通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

15、工程移植说明

vivado版本不一致处理

1:如果你的vivado版本与本工程vivado版本一致,则直接打开工程;
2:如果你的vivado版本低于本工程vivado版本,则需要打开工程后,点击文件–>另存为;但此方法并不保险,最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本;
在这里插入图片描述
3:如果你的vivado版本高于本工程vivado版本,解决如下:
在这里插入图片描述
打开工程后会发现IP都被锁住了,如下:
在这里插入图片描述
此时需要升级IP,操作如下:
在这里插入图片描述
在这里插入图片描述

FPGA型号不一致处理

如果你的FPGA型号与我的不一致,则需要更改FPGA型号,操作如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更改FPGA型号后还需要升级IP,升级IP的方法前面已经讲述了;

其他注意事项

1:由于每个板子的DDR不一定完全一样,所以MIG IP需要根据你自己的原理图进行配置,甚至可以直接删掉我这里原工程的MIG并重新添加IP,重新配置;
2:根据你自己的原理图修改引脚约束,在xdc文件中修改即可;
3:纯FPGA移植到Zynq需要在工程中添加zynq软核;

16、上板调试验证并演示

准备工作

需要准备的器材如下:
FPGA开发板,没有开发板可以找本博提供;
网线;
电脑主机;
我的开发板了连接如下:
在这里插入图片描述
然后将电脑端IP地址设置为如下:
在这里插入图片描述
然后下载bit或者固化bin文件,即可开始测试;

ping测试

打开电脑CMD,输入ping指令;
单次ping测试如下:
在这里插入图片描述
连续ping测试如下:
在这里插入图片描述

ARP测试

打开电脑CMD,输入ARP指令;如下:
在这里插入图片描述

UDP数据回环测试

打开电脑端网络调试助手,测试如下:
在这里插入图片描述
在这里插入图片描述

网络测速

在电脑的任务栏右击鼠标–>任务管理器–>性能,找到网卡,如下:
在这里插入图片描述
注意,这个测速只代表可能的最高的速度,不代表电脑真实的不丢包速度,UDP 的点到点不丢包速度和电脑的网卡、CPU 速度、内存速度、操作系统都有关系。。。

综合测试视频演示

上述测试视频演示如下:

淘宝-千兆UDP

17、工程代码的获取

代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:文章末尾名片。
网盘资料如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

9527华安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值