FPGA基于AXI 1G/2.5G Ethernet Subsystem实现UDP以太网通信,提供21套工程源码和技术支持

目录


FPGA基于AXI 1G/2.5G Ethernet Subsystem实现UDP以太网通信,提供21套工程源码和技术支持

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的转换;
4:使用FPGA的GTX资源利用SFP光口实现UDP,通信,这种方案不需要外接网络变压器即可完成,本方案就是此种设计;

工程概述

本设计调用Xilinx官方的AXI 1G/2.5G Ethernet Subsystem IP核实现以太网物理层+链路层功能,可替代传统的PHY芯片,比如RTL8211、B50610等,可简化硬件电路,节省板材物料,输出AXI4-Stream接口的MAC数据;调用千兆UDP协议栈实现实现以太网网络层,该UDP协议栈只是为了测试这个架构的功能,并不是整个工程的核心部分,所以只提供网表文件,不提供源码,但不影响使用,该协议栈带有用户接口,使得用户无需关心复杂的UDP协议而只需关心简单的用户接口时序即可操作UDP收发,非常简单;此外,本设计的重点在于AXI 1G/2.5G Ethernet Subsystem的逻辑共享方案,即多个AXI 1G/2.5G Ethernet Subsystem共享一对GT差分时钟,实现多个网卡的功能;本设计的功能测试有两个,一个是数据回环测试,另一个是网络测速,数据回环测试通过一个FIFO实现数据回环,网络测速通过FPGA不间断向PC发送数据,在PC端测试网速;针对目前市面上主流的FPGA,共移植了21套工程源码,详情如下:
在这里插入图片描述
现对上述21套工程源码解释如下:

工程源码1
开发板FPGA型号为Xilinx–>Artix7–>xc7a35tfgg484-2;使用1个AXI 1G/2.5G Ethernet Subsystem IP核实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTP高速接口资源;挂载1个千兆网UDP协议栈,输入输出接口为1路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP网卡;

工程源码2
开发板FPGA型号为Xilinx–>Kintex7–>xc7k325tffg900-2;使用1个AXI 1G/2.5G Ethernet Subsystem IP核实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载1个千兆网UDP协议栈,输入输出接口为1路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP网卡;

工程源码3
开发板FPGA型号为Xilinx–>Kintex7–>xc7k325tffg900-2;使用2个AXI 1G/2.5G Ethernet Subsystem IP核构成1主+1从的主从级联架构,实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载2个千兆网UDP协议栈,输入输出接口为2路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;

工程源码4
开发板FPGA型号为Xilinx–>Kintex7–>xc7k325tffg900-2;使用3个AXI 1G/2.5G Ethernet Subsystem IP核构成1主+2从的主从级联架构,实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载3个千兆网UDP协议栈,输入输出接口为3路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;

工程源码5
开发板FPGA型号为Xilinx–>Kintex7–>xc7k325tffg900-2;使用4个AXI 1G/2.5G Ethernet Subsystem IP核构成1主+3从的主从级联架构,实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载4个千兆网UDP协议栈,输入输出接口为4路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;

工程源码6
开发板FPGA型号为Xilinx–Zynq7100–xc7z100ffg900-2;使用1个AXI 1G/2.5G Ethernet Subsystem IP核实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载1个千兆网UDP协议栈,输入输出接口为1路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP网卡;

工程源码7
开发板FPGA型号为Xilinx–Zynq7100–xc7z100ffg900-2;使用2个AXI 1G/2.5G Ethernet Subsystem IP核构成1主+1从的主从级联架构,实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载2个千兆网UDP协议栈,输入输出接口为2路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;

工程源码8
开发板FPGA型号为Xilinx–Zynq7100–xc7z100ffg900-2;使用3个AXI 1G/2.5G Ethernet Subsystem IP核构成1主+2从的主从级联架构,实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载3个千兆网UDP协议栈,输入输出接口为3路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;

工程源码9
开发板FPGA型号为Xilinx–Zynq7100–xc7z100ffg900-2;使用4个AXI 1G/2.5G Ethernet Subsystem IP核构成1主+3从的主从级联架构,实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载4个千兆网UDP协议栈,输入输出接口为4路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;

工程源码10
开发板FPGA型号为Xilinx–Virtx7–xc7vx690tffg1761-3;使用1个AXI 1G/2.5G Ethernet Subsystem IP核实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载1个千兆网UDP协议栈,输入输出接口为1路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP网卡;

工程源码11
开发板FPGA型号为Xilinx–Virtx7–xc7vx690tffg1761-3;使用2个AXI 1G/2.5G Ethernet Subsystem IP核构成1主+1从的主从级联架构,实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载2个千兆网UDP协议栈,输入输出接口为2路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;

工程源码12
开发板FPGA型号为Xilinx–Virtx7–xc7vx690tffg1761-3;使用3个AXI 1G/2.5G Ethernet Subsystem IP核构成1主+2从的主从级联架构,实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载3个千兆网UDP协议栈,输入输出接口为3路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;

工程源码13
开发板FPGA型号为Xilinx–Virtx7–xc7vx690tffg1761-3;使用4个AXI 1G/2.5G Ethernet Subsystem IP核构成1主+3从的主从级联架构,实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载4个千兆网UDP协议栈,输入输出接口为4路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;

工程源码14
开发板FPGA型号为Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;使用1个AXI 1G/2.5G Ethernet Subsystem IP核实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载1个千兆网UDP协议栈,输入输出接口为1路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP网卡;

工程源码15
开发板FPGA型号为Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;使用2个AXI 1G/2.5G Ethernet Subsystem IP核构成1主+1从的主从级联架构,实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载2个千兆网UDP协议栈,输入输出接口为2路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;

工程源码16
开发板FPGA型号为Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;使用3个AXI 1G/2.5G Ethernet Subsystem IP核构成1主+2从的主从级联架构,实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载3个千兆网UDP协议栈,输入输出接口为3路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;

工程源码17
开发板FPGA型号为Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;使用4个AXI 1G/2.5G Ethernet Subsystem IP核构成1主+3从的主从级联架构,实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载4个千兆网UDP协议栈,输入输出接口为4路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;

工程源码18
开发板FPGA型号为Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;使用1个AXI 1G/2.5G Ethernet Subsystem IP核实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载1个千兆网UDP协议栈,输入输出接口为1路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP网卡;

工程源码19
开发板FPGA型号为Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;使用2个AXI 1G/2.5G Ethernet Subsystem IP核构成1主+1从的主从级联架构,实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载2个千兆网UDP协议栈,输入输出接口为2路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;

工程源码20
开发板FPGA型号为Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;使用3个AXI 1G/2.5G Ethernet Subsystem IP核构成1主+2从的主从级联架构,实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载3个千兆网UDP协议栈,输入输出接口为3路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;

工程源码21
开发板FPGA型号为Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;使用4个AXI 1G/2.5G Ethernet Subsystem IP核构成1主+3从的主从级联架构,实现以太网物理层+链路层功能,AXI 1G/2.5G Ethernet Subsystem使用GTX高速接口资源;挂载4个千兆网UDP协议栈,输入输出接口为4路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;

本文详细描述了FPGA基于AXI 1G/2.5G Ethernet Subsystem实现UDP以太网通信的设计方案,经过反复大量测试稳定可靠,可在项目中直接移植使用,工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字通信领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

免责声明

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

2、相关方案推荐

我这里已有的以太网方案

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

1G/2.5G Ethernet PCS/PMA or SGMII+Tri Mode Ethernet MAC方案

AXI 1G/2.5G Ethernet Subsystem方案是Xilinx将1G/2.5G Ethernet PCS/PMA or SGMII+Tri Mode Ethernet MAC的整合版本,关于1G/2.5G Ethernet PCS/PMA or SGMII+Tri Mode Ethernet MAC方案,请参考我之前的博客,博客链接如下:
直接点击前往

3、详细设计方案

设计原理框图

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

测试用PC端电脑

测试用PC端电脑要求如下:
有千兆网口及其驱动;
安装网络调试助手软件,软件已提供在资料包中;
普通的台式电脑或笔记本电脑均可;

SFP光口转RJ45电口

需要准备满足千兆传输要求的SFP光口转RJ45电口,某宝二三十块钱很便宜,大概长这样:
在这里插入图片描述

AXI 1G/2.5G Ethernet Subsystem 简介

AXI 1G/2.5G Ethernet Subsystem的权威官方手册为《pg138-axi-ethernet》,请自行下载阅读,该IP是Xilinx官方将1G/2.5G Ethernet PCS/PMA or SGMII和Tri Mode Ethernet MAC封装在一起组成的全新IP,目的是简化FPGA实现以太网物理层的设计难度,直接调用这一个IP即可使用,该IP展开后如下:
在这里插入图片描述
接收端:
数据首先经过1G/2.5G Ethernet PCS/PMA or SGMII解串,将串行数据解为并行数据;然后经过弹性Buffer做数据缓冲处理,主要是为了去频偏,使板与板之间的数据稳定,然后进行8b/10b解码,恢复正常数据;然后经过PCS接收同步器,对数据进行跨时钟处理,同步到GMII时序下然后输出给Tri Mode Ethernet MAC进行数据合适转换,最后以AXI4-Stream输出;

发送端:
发送端则简单得多,用户侧UDP MAC数据首先给到Tri Mode Ethernet MAC进行数据合适转换,以GMII数据输出给1G/2.5G Ethernet PCS/PMA or SGMII,后者进行以太网物理层处理,以差分信号输出;

AXI 1G/2.5G Ethernet Subsystem 配置

AXI 1G/2.5G Ethernet Subsystem配置为1G,如下:
在这里插入图片描述
AXI 1G/2.5G Ethernet Subsystem可运行于1G和2.5G线速率,对GT时钟有严格研究,按照官方数据手册,运行1G线速率时,GT差分时钟必须为125M,运行2.5G线速率时,GT差分时钟必须为312.5M,如下:
在这里插入图片描述

多个 AXI 1G/2.5G Ethernet Subsystem 主从级联使用

多个AXI 1G/2.5G Ethernet Subsystem 的主从搭配使用的应用场景是FPGA开发板充当多光口的网卡使用,即一个FPGA挂载多个光口,每一个光口相当于一个独立的网卡,有独立的IP地址和MAC地址,类似于交换机;主从搭配使用框架如下:
在这里插入图片描述
AXI 1G/2.5G Ethernet Subsystem可单独使用,当单独使用时,一个AXI 1G/2.5G Ethernet Subsystem单独占用一个GT高速接口资源,单独占用一对差分时钟资源;此时的IP配置如下:
在这里插入图片描述
AXI 1G/2.5G Ethernet Subsystem也可多个级联主从搭配使用,主从搭配使用时,一个AXI 1G/2.5G Ethernet Subsystem当做主IP,占用一个GT高速接口资源,单独占用一对差分时钟资源;其他AXI 1G/2.5G Ethernet Subsystem当做从IP,占用一个GT高速接口资源,但不占用差分时钟资源,而是使用主IP提供的参考时钟;此时的从IP配置如下:
在这里插入图片描述

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协议栈用户接口接收时序如下:
在这里插入图片描述

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 的转换;

UDP用户数据测试模块

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

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

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

IP地址、端口号的修改

顶层代码预留了IP地址、端口号的修改端口供用户自由修改,以工程5的4路光口为例,位置如下:
在这里插入图片描述

工程源码架构

21套工程的源码具有相似性,这里仅以工程3为例截图如下,其他工程与之类似:
在这里插入图片描述

4、vivado工程1详解:Artix7版本,单路1G/2.5G Ethernet架构

开发板FPGA型号:Xilinx–>Artix7–>xc7a35tfgg484-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:1路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:1路GTP;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

5、vivado工程2详解:Kintex7版本,单路1G/2.5G Ethernet架构

开发板FPGA型号:Xilinx–>Kintex7–>xc7k325tffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:1路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:1路GTX;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

6、vivado工程3详解:Kintex7版本,2路1G/2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx–>Kintex7–>xc7k325tffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:2路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:2路GTX;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

7、vivado工程4详解:Kintex7版本,3路1G/2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx–>Kintex7–>xc7k325tffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:3路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:3路GTX;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

8、vivado工程5详解:Kintex7版本,4路1G/2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx–>Kintex7–>xc7k325tffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:4路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:4路GTX;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

9、vivado工程6详解:Zynq7100版本,单路1G/2.5G Ethernet架构

开发板FPGA型号:Xilinx–Zynq7100–xc7z100ffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:1路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:1路GTX;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

10、vivado工程7详解:Zynq7100版本,2路1G/2.5G Ethernet架构

开发板FPGA型号:Xilinx–Zynq7100–xc7z100ffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:2路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:2路GTX;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

11、vivado工程8详解:Zynq7100版本,3路1G/2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx–Zynq7100–xc7z100ffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:3路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:3路GTX;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

12、vivado工程9详解:Zynq7100版本,4路1G/2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx–Zynq7100–xc7z100ffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:4路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:4路GTX;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

13、vivado工程10详解:Virtx7版本,单路1G/2.5G Ethernet架构

开发板FPGA型号:Xilinx–Virtx7–xc7vx690tffg1761-3;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:1路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:1路GTH;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

14、vivado工程11详解:Virtx7版本,2路1G/2.5G Ethernet架构

开发板FPGA型号:Xilinx–Virtx7–xc7vx690tffg1761-3;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:2路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:2路GTH;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

15、vivado工程12详解:Virtx7版本,3路1G/2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx–Virtx7–xc7vx690tffg1761-3;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:3路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:3路GTH;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

16、vivado工程13详解:Virtx7版本,4路1G/2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx–Virtx7–xc7vx690tffg1761-3;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:4路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:4路GTH;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

17、vivado工程14详解:KU060版本,单路1G/2.5G Ethernet架构

开发板FPGA型号:Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:1路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:1路GTH;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

18、vivado工程15详解:KU060版本,2路1G/2.5G Ethernet架构

开发板FPGA型号:Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:2路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:2路GTH;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

19、vivado工程16详解:KU060版本,3路1G/2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:3路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:3路GTH;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

20、vivado工程17详解:KU060版本,4路1G/2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:4路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:4路GTH;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

21、vivado工程18详解:KU5P版本,单路1G/2.5G Ethernet架构

开发板FPGA型号:Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:1路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:1路GTY;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

21、vivado工程19详解:KU5P版本,2路1G/2.5G Ethernet架构

开发板FPGA型号:Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:2路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:2路GTY;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

22、vivado工程20详解:KU5P版本,3路1G/2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:3路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:3路GTY;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

23、vivado工程21详解:KU5P版本,4路1G/2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:4路SFP,1G线速率;
PHY+MAC方案:Xilinx官方AXI 1G/2.5G Ethernet Subsystem方案;
PHY使用高速接口资源:4路GTY;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于AXI 1G/2.5G Ethernet Subsystem的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

24、工程移植说明

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软核;

25、上板调试验证并演示

准备工作

试验需要准备以下设备:
FPGA开发板,可以自行购买,也可以找本博主购买同款开发板;
测试电脑;
SFP转RJ45电口,千兆网线;
网络调试助手;
以工程源码2的开发板为例进行上板调试;
连接如下:
在这里插入图片描述
首先设置电脑端IP如下:
在这里插入图片描述
然后下载bit,如下:
在这里插入图片描述

ping测试

打开cdm,输入 ping 192.168.0.56,如下:
在这里插入图片描述

数据回环测试

打开网络调试助手并配置,如下:
在这里插入图片描述
单次发送数据测试结果如下:
在这里插入图片描述
循环发送数据测试结果如下,500毫秒时间间隔循环:可以看到,数据收发量超过30万字节,没有丢包,足以证明其稳定性;
在这里插入图片描述

网络速度测试

下载测速的bit,打开网络调试助手,选择暂停接收显示,如下:
在这里插入图片描述
然后打开电脑资源管理器,点击性能,找到以太网网卡选项,即可看到测速,测速如下:
在这里插入图片描述
注意!!!
注意!!!
注意!!!
在电脑上观察到的是开发板以太网网口的发送速率,这个测速只代表可能的最高的速度,不代表电脑真实的不丢包速度,UDP 的点到点不丢包速度和电脑的网卡、CPU 速度、内存速度、操作系统都有关系。

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

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
在这里插入图片描述
此外,有很多朋友给本博主提了很多意见和建议,希望能丰富服务内容和选项,因为不同朋友的需求不一样,所以本博主还提供以下服务:
在这里插入图片描述

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

9527华安

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

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

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

打赏作者

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

抵扣说明:

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

余额充值