FPGA纯verilog实现10G万兆UDP协议栈,使用GTH、GTY高速接口10GBASE-R做物理层,提供12套工程源码和技术支持

文章介绍了使用纯Verilog编写的UDP协议栈在XilinxKintexUltraScaleFPGA上的实现,通过SFP光口和GTY资源实现XGMII接口,进行10G速率的UDP回环通信测试。设计具有高性能、高移植性,不依赖任何IP核,包括FIFO和RAM。提供了工程源码、上板调试步骤和验证结果,适用于学习、研究及项目开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录


FPGA纯verilog实现10G万兆UDP协议栈,使用GTH、GTY高速接口10GBASE-R做物理层,提供12套工程源码和技术支持

1、前言

Xilinx系列FPGA实现10G万兆UDP协议栈现状;

Xilinx系列FPGA实现10G万兆UDP协议栈首要的是解决以太网物理层方案,目前只有3种方案,第1种是使用GTX、GTH、GTY等高速接口的10GBASE-R编解码模式,该IP非常底层,输出串并转换后的并行数据,用户需要自己将并行数据转换为XGMII接口数据或者AXI4-Stream接口数据,使用该IP的优点是非常底层,可以提取到底层的协议字段,对于定制化更为方便,缺点是设计难度很大,需要设计者对10G-BASE-R协议内容和XGMII协议非常了解;第2种是使用10G Ethernet PCS/PMA,该IP较为底层,实现10G万兆UDP协议栈物理层功能,将以太网差分数据信号转换为XGMII协议的用户数据供FPGA使用,设计者需要将XGMII接口数据转换为AXI4-Stream之类的接口数据,使用该IP的优点是较为底层,可以提取到底层的协议字段,对于定制化更为方便,缺点是设计难度较大,需要设计者对10G-BASE-R协议内容有一定了解;第3种是使用10G Ethernet Subsystem,该IP在10G Ethernet PCS/PMA的基础上封装了MAC,实现10G万兆UDP协议栈物理层功能,将以太网差分数据信号转换为AXI4-Stream协议的用户数据供FPGA使用,使用该IP的优点是设计简单,设计者无需了解10G-BASE-R协议即可轻松使用,缺点只能使用较为上层的接口数据,不利于定制化方案;本设计直接上最高难度,使用Xilinx的UltraScale和UltraScale+系列FPGA的UltraScale-GTH和GTY高速接口的10GBASE-R编解码模式做以太网物理层方案,数据链路层和网络层使用verilog代码实现;

工程概述

本设计使用Xilinx系列FPGA实现10G万兆UDP协议栈,其中万兆以太网物理层使用Xilinx的UltraScale和UltraScale+系列FPGA的UltraScale-GTH和GTY高速接口的10GBASE-R编解码模式实现;本设计能实现电脑端网卡与FPGA开发板之间的双向通信,为了方便测试,设计了UDP数据回环功能;

数据回环功能流程如下:

电脑端网络调试助手发送测试数据或发起ping操作,然后电脑端操作系统的Socket实现发送数据的以太网帧组包;数据通过插在PC电脑主板上的10G网卡以光纤发送到FPGA开发板;FPGA开发板板载的SFP光口接收光纤数据发送给FPGA;然后调用Xilinx官方的UltraScale-GTH和GTY IP核实现万兆以太网物理层,并输出并行的PHY数据;然后使用纯verilog代码实现的PHY互转XGMII模块实现PHY数据的接口转换,并输出XGMII接口的PHY数据;然后使用纯verilog代码实现的XGMII互转AXI4-Stream模块实现MAC数据的接口转换,并输出AXI4-Stream接口的MAC数据;然后使用纯verilog代码实现的AXI4-Stream FIFO实现MAC数据缓冲,并解析出以太网帧的帧头部分字段;然后使用纯verilog代码实现的10G万兆UDP协议栈实现网络层,解析各种头部信息,并提取输出10G-UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到10G-UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据再进入AXI4-Stream FIFO实现MAC数据缓冲,并添加太网帧的帧头部分字段;然后数据再进入XGMII互转AXI4-Stream模块实现MAC数据的接口转换,并输出AXI4-Stream接口的XGMII数据;然后数据再进入PHY互转XGMII模块实现PHY数据的接口转换,并输出并行的PHY数据;然后数据再进入Xilinx官方的UltraScale-GTH和GTY IP核实现万兆以太网物理层,并输出差分光信号;然后由板载的SFP光口通过光纤发送到PC电脑主板的10G网卡;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察TCP数据回环的正确性;为了通用性和适应性,针对不同FPGA型号差异,一共移植了12套工程源码,详情如下:
在这里插入图片描述
这里说明一下提供的12套工程源码的作用和价值,如下:

工程源码1

开发板FPGA型号为Xilinx–Kintex-UltraScale–xcku040-ffva1156-2-i,使用Xilinx官方的UltraScale-GTH做以太网物理层,数据链路层和网络层使用verilog代码实现;工程实现了10G万兆UDP协议栈,并设计了UDP数据回环测试功能,可在FPGA和PC上位机之间实现双向10G万兆UDP通信;FPGA内部集成了1路10G万兆UDP协议栈,输出接口采用SFP+光口;该方案需要使用Xilinx的UltraScale-GTH高速接口资源;适用于Xilinx UltraScale系列FPGA移植;

工程源码2

开发板FPGA型号为Xilinx–Kintex-UltraScale–xcku040-ffva1156-2-i,使用2路Xilinx官方的UltraScale-GTH做以太网物理层,2路UltraScale-GTH构成主从关系,共享同一路差分时钟源;数据链路层和网络层使用verilog代码实现;工程实现了10G万兆UDP协议栈,并设计了UDP数据回环测试功能,可在FPGA和PC上位机之间实现双向10G万兆UDP通信;FPGA内部集成了2路10G万兆UDP协议栈,输出接口采用2路SFP+光口;该方案需要使用Xilinx的UltraScale-GTH高速接口资源;适用于Xilinx UltraScale系列FPGA移植;

工程源码3

开发板FPGA型号为Xilinx–Kintex-UltraScale–xcku040-ffva1156-2-i,使用3路Xilinx官方的UltraScale-GTH做以太网物理层,3路UltraScale-GTH构成主从关系,共享同一路差分时钟源;数据链路层和网络层使用verilog代码实现;工程实现了10G万兆UDP协议栈,并设计了UDP数据回环测试功能,可在FPGA和PC上位机之间实现双向10G万兆UDP通信;FPGA内部集成了3路10G万兆UDP协议栈,输出接口采用3路SFP+光口;该方案需要使用Xilinx的UltraScale-GTH高速接口资源;适用于Xilinx UltraScale系列FPGA移植;

工程源码4

开发板FPGA型号为Xilinx–Kintex-UltraScale–xcku040-ffva1156-2-i,使用4路Xilinx官方的UltraScale-GTH做以太网物理层,4路UltraScale-GTH构成主从关系,共享同一路差分时钟源;数据链路层和网络层使用verilog代码实现;工程实现了10G万兆UDP协议栈,并设计了UDP数据回环测试功能,可在FPGA和PC上位机之间实现双向10G万兆UDP通信;FPGA内部集成了4路10G万兆UDP协议栈,输出接口采用4路SFP+光口;该方案需要使用Xilinx的UltraScale-GTH高速接口资源;适用于Xilinx UltraScale系列FPGA移植;

工程源码5

开发板FPGA型号为Xilinx–Kintex UltraScale±-xcku5p-ffvb676-1-i,使用Xilinx官方的GTY做以太网物理层,数据链路层和网络层使用verilog代码实现;工程实现了10G万兆UDP协议栈,并设计了UDP数据回环测试功能,可在FPGA和PC上位机之间实现双向10G万兆UDP通信;FPGA内部集成了1路10G万兆UDP协议栈,输出接口采用SFP+光口;该方案需要使用Xilinx的GTY高速接口资源;适用于Xilinx UltraScale+系列FPGA移植;

工程源码6

开发板FPGA型号为Xilinx–Kintex UltraScale±-xcku5p-ffvb676-1-i,使用2路Xilinx官方的GTY做以太网物理层,2路GTY构成主从关系,共享同一路差分时钟源;数据链路层和网络层使用verilog代码实现;工程实现了10G万兆UDP协议栈,并设计了UDP数据回环测试功能,可在FPGA和PC上位机之间实现双向10G万兆UDP通信;FPGA内部集成了2路10G万兆UDP协议栈,输出接口采用2路SFP+光口;该方案需要使用Xilinx的GTY高速接口资源;适用于Xilinx UltraScale+系列FPGA移植;

工程源码7

开发板FPGA型号为Xilinx–Kintex UltraScale±-xcku5p-ffvb676-1-i,使用4路Xilinx官方的GTY做以太网物理层,4路GTY构成主从关系,共享同一路差分时钟源;数据链路层和网络层使用verilog代码实现;工程实现了10G万兆UDP协议栈,并设计了UDP数据回环测试功能,可在FPGA和PC上位机之间实现双向10G万兆UDP通信;FPGA内部集成了4路10G万兆UDP协议栈,输出接口采用1路QSFP28光口;该方案需要使用Xilinx的GTY高速接口资源;适用于Xilinx UltraScale+系列FPGA移植;

工程源码8

开发板FPGA型号为Xilinx–Virtex UltraScale±-xcvu37p-fsvh2892-2-e,使用4路Xilinx官方的GTY做以太网物理层,4路GTY构成主从关系,共享同一路差分时钟源;数据链路层和网络层使用verilog代码实现;工程实现了10G万兆UDP协议栈,并设计了UDP数据回环测试功能,可在FPGA和PC上位机之间实现双向10G万兆UDP通信;FPGA内部集成了4路10G万兆UDP协议栈,输出接口采用1路QSFP28光口;该方案需要使用Xilinx的GTY高速接口资源;适用于Xilinx UltraScale+系列FPGA移植;

工程源码9

开发板FPGA型号为Xilinx–>Zynq UltraScale±-xczu7ev-ffvc1156-2-e,使用Xilinx官方的UltraScale-GTH做以太网物理层,数据链路层和网络层使用verilog代码实现;工程实现了10G万兆UDP协议栈,并设计了UDP数据回环测试功能,可在FPGA和PC上位机之间实现双向10G万兆UDP通信;FPGA内部集成了1路10G万兆UDP协议栈,输出接口采用SFP+光口;该方案需要使用Xilinx的UltraScale-GTH高速接口资源;适用于Xilinx Zynq UltraScale+ MPSoc系列FPGA移植;

工程源码10

开发板FPGA型号为Xilinx–>Zynq UltraScale±-xczu7ev-ffvc1156-2-e,使用2路Xilinx官方的UltraScale-GTH做以太网物理层,2路UltraScale-GTH构成主从关系,共享同一路差分时钟源;数据链路层和网络层使用verilog代码实现;工程实现了10G万兆UDP协议栈,并设计了UDP数据回环测试功能,可在FPGA和PC上位机之间实现双向10G万兆UDP通信;FPGA内部集成了2路10G万兆UDP协议栈,输出接口采用2路SFP+光口;该方案需要使用Xilinx的UltraScale-GTH高速接口资源;适用于Xilinx Zynq UltraScale+ MPSoc系列FPGA移植;

工程源码11

开发板FPGA型号为Xilinx–>Zynq UltraScale±-xczu15eg-ffvb1156-2-i ,使用Xilinx官方的UltraScale-GTH做以太网物理层,数据链路层和网络层使用verilog代码实现;工程实现了10G万兆UDP协议栈,并设计了UDP数据回环测试功能,可在FPGA和PC上位机之间实现双向10G万兆UDP通信;FPGA内部集成了1路10G万兆UDP协议栈,输出接口采用SFP+光口;该方案需要使用Xilinx的UltraScale-GTH高速接口资源;适用于Xilinx Zynq UltraScale+ MPSoc系列FPGA移植;

工程源码12

开发板FPGA型号为Xilinx–>Zynq UltraScale±-xczu15eg-ffvb1156-2-i ,使用2路Xilinx官方的UltraScale-GTH做以太网物理层,2路UltraScale-GTH构成主从关系,共享同一路差分时钟源;数据链路层和网络层使用verilog代码实现;工程实现了10G万兆UDP协议栈,并设计了UDP数据回环测试功能,可在FPGA和PC上位机之间实现双向10G万兆UDP通信;FPGA内部集成了2路10G万兆UDP协议栈,输出接口采用2路SFP+光口;该方案需要使用Xilinx的UltraScale-GTH高速接口资源;适用于Xilinx Zynq UltraScale+ MPSoc系列FPGA移植;

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

免责声明

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

更新说明

这个UDP协议栈是真的好用,忍不住移植了多个平台的FPGA和多种型号的PHY,代码层面并没有更新,但增加了多种移植方案,数据总计多达7个,后续还将继续更新,敬请期待;

2、相关方案推荐

我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目

其实一直有朋友反馈,说我的博客文章太多了,乱花渐欲迷人,自己看得一头雾水,不方便快速定位找到自己想要的项目,所以本博文置顶,列出我目前已有的所有项目,并给出总目录,每个项目的文章链接,当然,本博文实时更新。。。以下是博客地址:
点击直接前往

我这里已有的以太网方案

目前我这里有大量UDP协议的工程源码,包括UDP数据回环,视频传输,AD采集传输等,也有TCP协议的工程,对网络通信有需求的兄弟可以去看看:直接点击前往

3、详细设计方案

设计架构框图

详细设计方案如下框图:
在这里插入图片描述

网络调试助手

这只是一个回环测试工具,常用的Win软件,用来测试UDP数据收发;网络调试助手我已放在了资料包中;

测试用10G 网卡

测试用10G 网卡要求如下:
必须支持10G速率;
必须是SFP光口;
必须安装好网卡驱动,驱动找卖家要;
我的网卡驱动安装后如下:
在这里插入图片描述

SFP光口和光纤

为了支持10G-UDP通信,SFP光口需要支持10GBASE-R,某宝几十块钱;我的FPGA开发板与10G 网卡连接如下:
在这里插入图片描述

UltraScale GTH/GTY IP核详解

本设计使用Xilinx官方的UltraScale GTH/GTY IP核实现以太网物理层,并输出并行的PHY数据;以2路UltraScale GTH使用为例,UltraScale GTH在工程源码中如下:
在这里插入图片描述
关于UltraScale GTH的使用详细细节和工程项目应用示例,请参考我之前的博客,博客链接如下:
点击直接前往
关于UltraScale GTY的使用详细细节和工程项目应用示例,请参考我之前的博客,博客链接如下:
点击直接前往

UltraScale GTH/GTY 配置和使用

UltraScale GTH/GTY配置非常简单,通过调用IP方式使用,这里只对重点配置讲解,UltraScale GTH IP核配置如下:
在这里插入图片描述
UltraScale GTY IP核配置如下:
在这里插入图片描述
IP主要的配置界面如上图,详细配置界面请参考工程;

UltraScale GTH/GTY 的多核使用

一个工程可调用多个UltraScale GTH/GTY,且共用一对差分时钟源,也就是UltraScale GTH/GTY的多核使用,构成级联和主从搭配,以工程4路UltraScale GTH使用为例,多核主从架构如下:
在这里插入图片描述
其中主UltraScale GTH/GTY的共享逻辑配置如下:
在这里插入图片描述
从UltraScale GTH/GTY的共享逻辑配置如下:
在这里插入图片描述
以工程4路UltraScale GTH使用为例,多核主从代码架构如下:
在这里插入图片描述

PHY互转XGMII模块

Xilinx官方的UltraScale-GTH和GTY IP核实现万兆以太网物理层输出并行的PHY数据后,使用纯verilog代码实现的PHY互转XGMII模块实现PHY数据的接口转换,并输出XGMII接口的PHY数据;模块代码架构如下:
在这里插入图片描述

XGMII互转AXI4-Stream模块

PHY互转XGMII模块接收后的XGMII接口数据,送入纯verilog代码实现XGMII互转AXI4-Stream模块实现MAC数据的接口转换,并输出AXI4-Stream接口的MAC数据,并解析出以太网帧的帧头部分字段;模块代码架构如下:
在这里插入图片描述

AXI4-Stream FIFO 缓冲

然后使用纯verilog代码实现AXI4-Stream FIFO实现MAC数据缓冲,并解析出以太网帧的帧头部分字段;模块代码架构如下:
在这里插入图片描述

10G万兆UDP协议栈

10G-UDP协议栈的功能就是用verilog硬件描述语言完成标准UDP协议;大体上由ARP、IP、UDP几个层次构成;它具有如下功能:
支持动态ARP;剧透完整的以太网网络层功能;但没有ICMP功能,不支持巨型帧;
10G万兆UDP协议栈源码架构如下:
在这里插入图片描述

动态ARP

动态ARP层完成ARP协议内容的数据收发,对于接收端来说是数据帧解包,从以太网数据帧中提取ARP数据段的有效数据,对于发送端来说是数据帧组包,将用户端发来的有效数据封装成ARP协议的数据帧,作为以太网数据帧的ARP数据段;代码中设置了ARP动态缓存,即arp_cache,与千兆UDP 协议栈不同的是,10G-UDP 高速协议栈的用户接口数据位宽为64bit;动态ARP层代码架构如下:
在这里插入图片描述

IP层

IP层完成IP协议内容的数据收发,对于接收端来说是数据帧解包,从以太网数据帧中提取IP数据段的有效数据,对于发送端来说是数据帧组包,将用户端发来的有效数据封装成IP协议的数据帧,作为以太网数据帧的IP数据段;IP层与动态ARP层是数据交互的,模块相互包含,代码架构如下;
在这里插入图片描述

IP与ARP仲裁模块

IP与ARP仲裁模块代码架构如下:
在这里插入图片描述

UDP层

UDP层完成UDP协议内容的数据收发,对于接收端来说是数据帧解包,从以太网数据帧中提取UDP数据段的有效数据,对于发送端来说是数据帧组包,将用户端发来的有效数据封装成UDP协议的数据帧,作为以太网数据帧的UDP数据段;IP层与动态ARP层是数据交互的,模块相互包含,代码架构无法明显划分;UDP层会对UDP数据做前后检验;UDP层代码架构如下:
在这里插入图片描述
UDP协议栈是直接与用户逻辑数据对接的接口,所以对于FPGA开发者而言,只要知道了UDP协议栈的数据接口,就能在用户侧编写与之对接的时序来控制数据收发,UDP协议栈的接口时序为AXI4-Stream,时序如下:
在这里插入图片描述

数据回环FIFO

AXI4-Stream数据回环FIFO将UDP接收的数据缓存一下再发出去,功能非常简单,FIFO用纯verilog代码实现,代码架构如下:
在这里插入图片描述

IP地址修改

FPGA与PC通信而言,FPGA作为UDP服务器,PC作为UDP客户端,需要在FPGA代码里设置MAC、IP等配置信息,这是UDP通信的重要信息,开发者至少需要知道该部分代码的位置,甚至根据自己的需要修改,以使用1路UltraScale GTH/GTY为例,代码的位置如下:
在这里插入图片描述
以使用4路UltraScale GTH/GTY为例,代码的位置如下:
在这里插入图片描述

工程源码架构

本设计提供12套工程源码,以工程源码1为例,工程源码架构如下:
在这里插入图片描述

4、工程源码1详解:KU040,单核GTH应用,1路SFP版本

开发板FPGA型号:Xilinx–Kintex-UltraScale–xcku040-ffva1156-2-i;
开发环境:Vivado2019.1;
以太网物理层方案:Xilinx–UltraScale GTH方案;
以太网传输层协议:10G-UDP协议栈;
输入输出接口:1路SFP光口,10G线速率;
FPGA使用高速接口:1路GTH高速接口,10G线速率;
实现功能:FPGA实现10G-UDP协议栈;
工程作用:此工程目的是让读者掌握FPGA实现10G-UDP协议栈的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

5、工程源码2详解:KU040,双核GTH应用,2路SFP版本

开发板FPGA型号:Xilinx–Kintex-UltraScale–xcku040-ffva1156-2-i;
开发环境:Vivado2019.1;
以太网物理层方案:Xilinx–UltraScale GTH方案;
以太网传输层协议:10G-UDP协议栈;
输入输出接口:2路SFP光口,10G线速率;
FPGA使用高速接口:2路GTH高速接口,1主+1从架构,10G线速率;
实现功能:FPGA实现10G-UDP协议栈;
工程作用:此工程目的是让读者掌握FPGA实现10G-UDP协议栈的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

6、工程源码3详解:KU040,三核GTH应用,3路SFP版本

开发板FPGA型号:Xilinx–Kintex-UltraScale–xcku040-ffva1156-2-i;
开发环境:Vivado2019.1;
以太网物理层方案:Xilinx–UltraScale GTH方案;
以太网传输层协议:10G-UDP协议栈;
输入输出接口:3路SFP光口,10G线速率;
FPGA使用高速接口:3路GTH高速接口,1主+2从架构,10G线速率;
实现功能:FPGA实现10G-UDP协议栈;
工程作用:此工程目的是让读者掌握FPGA实现10G-UDP协议栈的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

7、工程源码4详解:KU040,四核GTH应用,4路SFP版本

开发板FPGA型号:Xilinx–Kintex-UltraScale–xcku040-ffva1156-2-i;
开发环境:Vivado2019.1;
以太网物理层方案:Xilinx–UltraScale GTH方案;
以太网传输层协议:10G-UDP协议栈;
输入输出接口:4路SFP光口,10G线速率;
FPGA使用高速接口:4路GTH高速接口,1主+3从架构,10G线速率;
实现功能:FPGA实现10G-UDP协议栈;
工程作用:此工程目的是让读者掌握FPGA实现10G-UDP协议栈的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

8、工程源码5详解:KU5P,单核GTY应用,1路SFP版本

开发板FPGA型号:Xilinx–Kintex UltraScale±-xcku5p-ffvb676-1-i;
开发环境:Vivado2019.1;
以太网物理层方案:Xilinx–UltraScale GTY方案;
以太网传输层协议:10G-UDP协议栈;
输入输出接口:1路SFP光口,10G线速率;
FPGA使用高速接口:1路GTY高速接口,10G线速率;
实现功能:FPGA实现10G-UDP协议栈;
工程作用:此工程目的是让读者掌握FPGA实现10G-UDP协议栈的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

9、工程源码6详解:KU5P,双核GTY应用,2路SFP版本

开发板FPGA型号:Xilinx–Kintex UltraScale±-xcku5p-ffvb676-1-i;
开发环境:Vivado2019.1;
以太网物理层方案:Xilinx–UltraScale GTY方案;
以太网传输层协议:10G-UDP协议栈;
输入输出接口:2路SFP光口,10G线速率;
FPGA使用高速接口:2路GTY高速接口,1主+1从架构,10G线速率;
实现功能:FPGA实现10G-UDP协议栈;
工程作用:此工程目的是让读者掌握FPGA实现10G-UDP协议栈的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

10、工程源码7详解:KU5P,四核GTY应用,1路QSFP版本

开发板FPGA型号:Xilinx–Kintex UltraScale±-xcku5p-ffvb676-1-i;
开发环境:Vivado2019.1;
以太网物理层方案:Xilinx–UltraScale GTY方案;
以太网传输层协议:10G-UDP协议栈;
输入输出接口:1路QSFP光口,10G线速率;
FPGA使用高速接口:4路GTY高速接口,1主+3从架构,10G线速率;
实现功能:FPGA实现10G-UDP协议栈;
工程作用:此工程目的是让读者掌握FPGA实现10G-UDP协议栈的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

11、工程源码8详解:VU37P,四核GTY应用,1路QSFP版本

开发板FPGA型号:Xilinx–Virtex UltraScale±-xcvu37p-fsvh2892-2-e;
开发环境:Vivado2019.1;
以太网物理层方案:Xilinx–UltraScale GTY方案;
以太网传输层协议:10G-UDP协议栈;
输入输出接口:1路QSFP光口,10G线速率;
FPGA使用高速接口:4路GTY高速接口,1主+3从架构,10G线速率;
实现功能:FPGA实现10G-UDP协议栈;
工程作用:此工程目的是让读者掌握FPGA实现10G-UDP协议栈的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

12、工程源码9详解:ZU7EV,单核GTH应用,1路SFP版本

开发板FPGA型号:Xilinx–Zynq UltraScale±-xczu7ev-ffvc1156-2-e;
开发环境:Vivado2019.1;
以太网物理层方案:Xilinx–UltraScale GTH方案;
以太网传输层协议:10G-UDP协议栈;
输入输出接口:1路SFP光口,10G线速率;
FPGA使用高速接口:1路GTH高速接口,10G线速率;
实现功能:FPGA实现10G-UDP协议栈;
工程作用:此工程目的是让读者掌握FPGA实现10G-UDP协议栈的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

13、工程源码10详解:ZU7EV,双核GTH应用,2路SFP版本

开发板FPGA型号:Xilinx–Zynq UltraScale±-xczu7ev-ffvc1156-2-e;
开发环境:Vivado2019.1;
以太网物理层方案:Xilinx–UltraScale GTH方案;
以太网传输层协议:10G-UDP协议栈;
输入输出接口:2路SFP光口,10G线速率;
FPGA使用高速接口:2路GTH高速接口,1主+1从架构,10G线速率;
实现功能:FPGA实现10G-UDP协议栈;
工程作用:此工程目的是让读者掌握FPGA实现10G-UDP协议栈的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

14、工程源码11详解:ZU15EG,单核GTH应用,1路SFP版本

开发板FPGA型号:Xilinx–Zynq UltraScale±-xczu15eg-ffvb1156-2-i;
开发环境:Vivado2019.1;
以太网物理层方案:Xilinx–UltraScale GTH方案;
以太网传输层协议:10G-UDP协议栈;
输入输出接口:1路SFP光口,10G线速率;
FPGA使用高速接口:1路GTH高速接口,10G线速率;
实现功能:FPGA实现10G-UDP协议栈;
工程作用:此工程目的是让读者掌握FPGA实现10G-UDP协议栈的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

15、工程源码12详解:ZU15EG,双核GTH应用,2路SFP版本

开发板FPGA型号:Xilinx–Zynq UltraScale±-xczu15eg-ffvb1156-2-i;
开发环境:Vivado2019.1;
以太网物理层方案:Xilinx–UltraScale GTH方案;
以太网传输层协议:10G-UDP协议栈;
输入输出接口:2路SFP光口,10G线速率;
FPGA使用高速接口:2路GTH高速接口,1主+1从架构,10G线速率;
实现功能:FPGA实现10G-UDP协议栈;
工程作用:此工程目的是让读者掌握FPGA实现10G-UDP协议栈的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

16、工程移植说明

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

17、上板调试验证并演示

准备工作

需要准备以下物品:
1:FPGA开发板;
2:光纤;
3:10G网卡一张;
4:上位机电脑,台式或笔记本;
5:网络调试助手;
以vivado工程3为例进行上板调试;
连接如下,然后上电下载bit:
在这里插入图片描述
首先设置电脑端IP如下:
在这里插入图片描述

UDP数据回环测试

打开网络调试助手并配置,如下:
在这里插入图片描述
单次发送数据测试结果如下:
在这里插入图片描述
循环发送数据测试结果如下,1秒时间间隔循环:
在这里插入图片描述

动态ARP测试

打开cmd,输入 arp -a查看电脑的arp缓存表,如下:
在这里插入图片描述

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

9527华安

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

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

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

打赏作者

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

抵扣说明:

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

余额充值