赞
踩
目前网上的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官方的1G/2.5G Ethernet PCS/PMA or SGMII IP核实现以太网物理层,1G/2.5G Ethernet PCS/PMA or SGMII输出GMII接口的PHY数据,该IP可替代传统的PHY芯片,比如RTL8211、B50610等,可简化硬件电路,节省板材物料;调用Xilinx官方的Tri Mode Ethernet MAC IP核实现以太网MAC层,Tri Mode Ethernet MAC输出AXI4-Stream接口的MAC数据;调用千兆UDP协议栈实现实现以太网网络层,该UDP协议栈只是为了测试这个架构的功能,并不是整个工程的核心部分,所以只提供网表文件,不提供源码,但不影响使用,该协议栈带有用户接口,使得用户无需关心复杂的UDP协议而只需关心简单的用户接口时序即可操作UDP收发,非常简单;此外,本设计的重点在于1G/2.5G Ethernet PCS/PMA or SGMII的逻辑共享方案,即多个1G/2.5G Ethernet PCS/PMA or SGMII共享一对GT差分时钟,实现多个网卡的功能;本设计的功能测试有两个,一个是数据回环测试,另一个是网络测速,数据回环测试通过一个FIFO实现数据回环,网络测速通过FPGA不间断向PC发送数据,在PC端测试网速;针对目前市面上主流的FPGA,共移植了21套工程源码,详情如下:
现对上述21套工程源码解释如下:
工程源码1
开发板FPGA型号为Xilinx–>Artix7–>xc7a35tfgg484-2;使用1个1G/2.5G Ethernet PCS/PMA or SGMII IP核实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTP高速接口资源;使用1个Tri Mode Ethernet MAC IP核实现MAC功能,挂载1个千兆网UDP协议栈,输入输出接口为1路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP网卡;
工程源码2
开发板FPGA型号为Xilinx–>Kintex7–>xc7k325tffg900-2;使用1个1G/2.5G Ethernet PCS/PMA or SGMII IP核实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTX高速接口资源;使用1个Tri Mode Ethernet MAC IP核实现MAC功能,挂载1个千兆网UDP协议栈,输入输出接口为1路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP网卡;
工程源码3
开发板FPGA型号为Xilinx–>Kintex7–>xc7k325tffg900-2;使用2个1G/2.5G Ethernet PCS/PMA or SGMII IP核构成1主+1从的主从级联架构,实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTX高速接口资源;使用2个Tri Mode Ethernet MAC IP核实现MAC功能,挂载2个千兆网UDP协议栈,输入输出接口为2路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;
工程源码4
开发板FPGA型号为Xilinx–>Kintex7–>xc7k325tffg900-2;使用3个1G/2.5G Ethernet PCS/PMA or SGMII IP核构成1主+2从的主从级联架构,实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTX高速接口资源;使用3个Tri Mode Ethernet MAC IP核实现MAC功能,挂载3个千兆网UDP协议栈,输入输出接口为3路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;
工程源码5
开发板FPGA型号为Xilinx–>Kintex7–>xc7k325tffg900-2;使用4个1G/2.5G Ethernet PCS/PMA or SGMII IP核构成1主+3从的主从级联架构,实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTX高速接口资源;使用4个Tri Mode Ethernet MAC IP核实现MAC功能,挂载4个千兆网UDP协议栈,输入输出接口为4路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;
工程源码6
开发板FPGA型号为Xilinx–Zynq7100–xc7z100ffg900-2;使用1个1G/2.5G Ethernet PCS/PMA or SGMII IP核实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTX高速接口资源;使用1个Tri Mode Ethernet MAC IP核实现MAC功能,挂载1个千兆网UDP协议栈,输入输出接口为1路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP网卡;
工程源码7
开发板FPGA型号为Xilinx–Zynq7100–xc7z100ffg900-2;使用2个1G/2.5G Ethernet PCS/PMA or SGMII IP核构成1主+1从的主从级联架构,实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTX高速接口资源;使用2个Tri Mode Ethernet MAC IP核实现MAC功能,挂载2个千兆网UDP协议栈,输入输出接口为2路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;
工程源码8
开发板FPGA型号为Xilinx–Zynq7100–xc7z100ffg900-2;使用3个1G/2.5G Ethernet PCS/PMA or SGMII IP核构成1主+2从的主从级联架构,实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTX高速接口资源;使用3个Tri Mode Ethernet MAC IP核实现MAC功能,挂载3个千兆网UDP协议栈,输入输出接口为3路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;
工程源码9
开发板FPGA型号为Xilinx–Zynq7100–xc7z100ffg900-2;使用4个1G/2.5G Ethernet PCS/PMA or SGMII IP核构成1主+3从的主从级联架构,实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTX高速接口资源;使用4个Tri Mode Ethernet MAC IP核实现MAC功能,挂载4个千兆网UDP协议栈,输入输出接口为4路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;
工程源码10
开发板FPGA型号为Xilinx–Virtx7–xc7vx690tffg1761-3;使用1个1G/2.5G Ethernet PCS/PMA or SGMII IP核实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTH高速接口资源;使用1个Tri Mode Ethernet MAC IP核实现MAC功能,挂载1个千兆网UDP协议栈,输入输出接口为1路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP网卡;
工程源码11
开发板FPGA型号为Xilinx–Virtx7–xc7vx690tffg1761-3;使用2个1G/2.5G Ethernet PCS/PMA or SGMII IP核构成1主+1从的主从级联架构,实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTH高速接口资源;使用2个Tri Mode Ethernet MAC IP核实现MAC功能,挂载2个千兆网UDP协议栈,输入输出接口为2路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;
工程源码12
开发板FPGA型号为Xilinx–Virtx7–xc7vx690tffg1761-3;使用3个1G/2.5G Ethernet PCS/PMA or SGMII IP核构成1主+2从的主从级联架构,实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTH高速接口资源;使用3个Tri Mode Ethernet MAC IP核实现MAC功能,挂载3个千兆网UDP协议栈,输入输出接口为3路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;
工程源码13
开发板FPGA型号为Xilinx–Virtx7–xc7vx690tffg1761-3;使用4个1G/2.5G Ethernet PCS/PMA or SGMII IP核构成1主+3从的主从级联架构,实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTH高速接口资源;使用4个Tri Mode Ethernet MAC IP核实现MAC功能,挂载4个千兆网UDP协议栈,输入输出接口为4路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;
工程源码14
开发板FPGA型号为Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;使用1个1G/2.5G Ethernet PCS/PMA or SGMII IP核实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTH高速接口资源;使用1个Tri Mode Ethernet MAC IP核实现MAC功能,挂载1个千兆网UDP协议栈,输入输出接口为1路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP网卡;
工程源码15
开发板FPGA型号为Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;使用2个1G/2.5G Ethernet PCS/PMA or SGMII IP核构成1主+1从的主从级联架构,实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTH高速接口资源;使用2个Tri Mode Ethernet MAC IP核实现MAC功能,挂载2个千兆网UDP协议栈,输入输出接口为2路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;
工程源码16
开发板FPGA型号为Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;使用3个1G/2.5G Ethernet PCS/PMA or SGMII IP核构成1主+2从的主从级联架构,实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTH高速接口资源;使用3个Tri Mode Ethernet MAC IP核实现MAC功能,挂载3个千兆网UDP协议栈,输入输出接口为3路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;
工程源码17
开发板FPGA型号为Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;使用4个1G/2.5G Ethernet PCS/PMA or SGMII IP核构成1主+3从的主从级联架构,实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTH高速接口资源;使用4个Tri Mode Ethernet MAC IP核实现MAC功能,挂载4个千兆网UDP协议栈,输入输出接口为4路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;
工程源码18
开发板FPGA型号为Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;使用1个1G/2.5G Ethernet PCS/PMA or SGMII IP核实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTY高速接口资源;使用1个Tri Mode Ethernet MAC IP核实现MAC功能,挂载1个千兆网UDP协议栈,输入输出接口为1路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP网卡;
工程源码19
开发板FPGA型号为Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;使用2个1G/2.5G Ethernet PCS/PMA or SGMII IP核构成1主+1从的主从级联架构,实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTY高速接口资源;使用2个Tri Mode Ethernet MAC IP核实现MAC功能,挂载2个千兆网UDP协议栈,输入输出接口为2路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;
工程源码20
开发板FPGA型号为Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;使用3个1G/2.5G Ethernet PCS/PMA or SGMII IP核构成1主+2从的主从级联架构,实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTY高速接口资源;使用3个Tri Mode Ethernet MAC IP核实现MAC功能,挂载3个千兆网UDP协议栈,输入输出接口为3路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;
工程源码21
开发板FPGA型号为Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;使用4个1G/2.5G Ethernet PCS/PMA or SGMII IP核构成1主+3从的主从级联架构,实现PHY物理层功能,1G/2.5G Ethernet PCS/PMA or SGMII使用GTY高速接口资源;使用4个Tri Mode Ethernet MAC IP核实现MAC功能,挂载4个千兆网UDP协议栈,输入输出接口为4路SFP光口,功能是1G UDP网络通信;工程应用是FPGA的1G UDP多光口网卡或交换机;
本文详细描述了FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计方案,经过反复大量测试稳定可靠,可在项目中直接移植使用,工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字通信领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;
本工程及其源码即有自己写的一部分,也有网络公开渠道获取的一部分(包括CSDN、Xilinx官网、Altera官网等等),若大佬们觉得有所冒犯,请私信批评教育;基于此,本工程及其源码仅限于读者或粉丝个人学习和研究,禁止用于商业用途,若由于读者或粉丝自身原因用于商业用途所导致的法律问题,与本博客及博主无关,请谨慎使用。。。
目前我这里有大量UDP协议的工程源码,包括UDP数据回环,视频传输,AD采集传输等,也有TCP协议的工程,还有RDMA的NIC 10G 25G 100G网卡工程源码,对网络通信有需求的兄弟可以去看看:直接点击前往
其中千兆TCP协议的工程博客如下:
直接点击前往
设计原理框图如下:
测试用PC端电脑要求如下:
有千兆网口及其驱动;
安装网络调试助手软件,软件已提供在资料包中;
普通的台式电脑或笔记本电脑均可;
需要准备满足千兆传输要求的SFP光口转RJ45电口,某宝二三十块钱很便宜,大概长这样:
1G/2.5G Ethernet PCS/PMA or SGMII实现了类似于网络PHY芯片的功能,其功能框图如下:
接收端:
数据首先经过GT资源解串,将串行数据解为并行数据;然后经过弹性Buffer做数据缓冲处理,主要是为了去频偏,使板与板之间的数据稳定,然后进行8b/10b解码,恢复正常数据;然后经过PCS接收同步器,对数据进行跨时钟处理,同步到GMII时序下;最后将数据放入GMII总线下输出;
发送端:
发送端则简单得多,输入时序为GMII;然后进入PCS发送引擎;然后对数据进行8b/10b编码;最后放入GT串化后输出;
1G/2.5G Ethernet PCS/PMA or SGMII配置为1G,其与MAC的接口为GMII,配置如下:
1G/2.5G Ethernet PCS/PMA or SGMII可运行于1G和2.5G线速率,对GT时钟有严格研究,按照官方数据手册,运行1G线速率时,GT差分时钟必须为125M,运行2.5G线速率时,GT差分时钟必须为312.5M,如下:
多个1G/2.5G Ethernet PCS/PMA or SGMII 的主从搭配使用的应用场景是FPGA开发板充当多光口的网卡使用,即一个FPGA挂载多个光口,每一个光口相当于一个独立的网卡,有独立的IP地址和MAC地址,类似于交换机;主从搭配使用框架如下:
1G/2.5G Ethernet PCS/PMA or SGMII可单独使用,当单独使用时,一个1G/2.5G Ethernet PCS/PMA or SGMII单独占用一个GT高速接口资源,单独占用一对差分时钟资源;此时的IP配置如下:
1G/2.5G Ethernet PCS/PMA or SGMII也可多个级联主从搭配使用,主从搭配使用时,一个1G/2.5G Ethernet PCS/PMA or SGMII当做主IP,占用一个GT高速接口资源,单独占用一对差分时钟资源;其他1G/2.5G Ethernet PCS/PMA or SGMII当做从IP,占用一个GT高速接口资源,但不占用差分时钟资源,而是使用主IP提供的参考时钟;此时的从IP配置如下:
Tri Mode Ethernet MAC主要是为了适配1G/2.5G Ethernet PCS/PMA or SGMII,因为后者的输入接口是GMII,而Tri Mode Ethernet MAC的输入接口是AXIS,输出接口是GMII,Tri Mode Ethernet MAC配置如下:
本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协议栈用户接口接收时序如下:
这里对代码中用到的数据缓冲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用户数据测试模块集成了接收数据回环和数据测速功能,通过顶层参数选择,源码架构如下:
功能选择如下:
parameter SPEED_TEST_EN = 0 ;使用接收数据回环功能;
parameter SPEED_TEST_EN = 1 ;使用接收数据数据测速;
接收数据回环功能:
将接收数据送入缓冲FIFO,并通知UDP协议栈将数据读出,即形成发送=接收的自回环功能;该功能的作用是配合网络调试助手进行数据收发测试、数据丢包测试、数据正确性测试等;
数据数据测速:
FPGA自动循环向UDP协议栈发送累加的数据,数据内容从0开始累加,数据包长为1472,即形成连续发送数据功能;该功能的作用是配合PC端测试网络极限速率,打开电脑端的资源管理器,查看网卡,即可看到通信速率;
顶层代码预留了IP地址、端口号的修改端口供用户自由修改,以工程5的4路光口为例,位置如下:
21套工程的源码具有相似性,这里仅以工程3为例截图如下,其他工程与之类似:
开发板FPGA型号:Xilinx–>Artix7–>xc7a35tfgg484-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:1路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII方案;
PHY使用高速接口资源:1路GTP;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx–>Kintex7–>xc7k325tffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:1路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII方案;
PHY使用高速接口资源:1路GTX;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx–>Kintex7–>xc7k325tffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:2路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII主从级联方案;
PHY使用高速接口资源:2路GTX;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx–>Kintex7–>xc7k325tffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:3路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII主从级联方案;
PHY使用高速接口资源:3路GTX;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx–>Kintex7–>xc7k325tffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:4路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII主从级联方案;
PHY使用高速接口资源:4路GTX;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx–Zynq7100–xc7z100ffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:1路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII方案;
PHY使用高速接口资源:1路GTX;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx–Zynq7100–xc7z100ffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:2路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII主从级联方案;
PHY使用高速接口资源:2路GTX;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx–Zynq7100–xc7z100ffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:3路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII主从级联方案;
PHY使用高速接口资源:3路GTX;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx–Zynq7100–xc7z100ffg900-2;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:4路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII主从级联方案;
PHY使用高速接口资源:4路GTX;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx–Virtx7–xc7vx690tffg1761-3;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:1路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII方案;
PHY使用高速接口资源:1路GTH;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx–Virtx7–xc7vx690tffg1761-3;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:2路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII主从级联方案;
PHY使用高速接口资源:2路GTH;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx–Virtx7–xc7vx690tffg1761-3;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:3路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII主从级联方案;
PHY使用高速接口资源:3路GTH;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx–Virtx7–xc7vx690tffg1761-3;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:4路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII主从级联方案;
PHY使用高速接口资源:4路GTH;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:1路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII方案;
PHY使用高速接口资源:1路GTH;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:2路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII主从级联方案;
PHY使用高速接口资源:2路GTH;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:3路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII主从级联方案;
PHY使用高速接口资源:3路GTH;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:4路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII主从级联方案;
PHY使用高速接口资源:4路GTH;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:1路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII方案;
PHY使用高速接口资源:1路GTY;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:2路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII主从级联方案;
PHY使用高速接口资源:2路GTY;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:3路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII主从级联方案;
PHY使用高速接口资源:3路GTY;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
开发板FPGA型号:Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
开发环境:Vivado2019.1;
输入输出:以太网帧,UDP网络数据;
接口:4路SFP,1G线速率;
PHY方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII主从级联方案;
PHY使用高速接口资源:4路GTY;
MAC方案:Xilinx 官方Tri Mode Ethernet MAC方案;
协议层方案:1G UDP协议栈;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII的UDP以太网通信设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
1:如果你的vivado版本与本工程vivado版本一致,则直接打开工程;
2:如果你的vivado版本低于本工程vivado版本,则需要打开工程后,点击文件–>另存为;但此方法并不保险,最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本;
3:如果你的vivado版本高于本工程vivado版本,解决如下:
打开工程后会发现IP都被锁住了,如下:
此时需要升级IP,操作如下:
如果你的FPGA型号与我的不一致,则需要更改FPGA型号,操作如下:
更改FPGA型号后还需要升级IP,升级IP的方法前面已经讲述了;
1:由于每个板子的DDR不一定完全一样,所以MIG IP需要根据你自己的原理图进行配置,甚至可以直接删掉我这里原工程的MIG并重新添加IP,重新配置;
2:根据你自己的原理图修改引脚约束,在xdc文件中修改即可;
3:纯FPGA移植到Zynq需要在工程中添加zynq软核;
试验需要准备以下设备:
FPGA开发板,可以自行购买,也可以找本博主购买同款开发板;
测试电脑;
SFP转RJ45电口,千兆网线;
网络调试助手;
以工程源码2的开发板为例进行上板调试;
连接如下:
首先设置电脑端IP如下:
然后下载bit,如下:
打开cdm,输入 ping 192.168.0.56,如下:
打开网络调试助手并配置,如下:
单次发送数据测试结果如下:
循环发送数据测试结果如下,500毫秒时间间隔循环:可以看到,数据收发量超过30万字节,没有丢包,足以证明其稳定性;
下载测速的bit,打开网络调试助手,选择暂停接收显示,如下:
然后打开电脑资源管理器,点击性能,找到以太网网卡选项,即可看到测速,测速如下:
注意!!!
注意!!!
注意!!!
在电脑上观察到的是开发板以太网网口的发送速率,这个测速只代表可能的最高的速度,不代表电脑真实的不丢包速度,UDP 的点到点不丢包速度和电脑的网卡、CPU 速度、内存速度、操作系统都有关系。
福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
此外,有很多朋友给本博主提了很多意见和建议,希望能丰富服务内容和选项,因为不同朋友的需求不一样,所以本博主还提供以下服务:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。