FPGA纯verilog实现 2.5G UDP协议栈,基于1G/2.5G Ethernet PCS/PMA or SGMII,提供14套工程源码和技术支持

FPGA纯verilog实现 2.5G UDP协议栈,基于1G/2.5G Ethernet PCS/PMA or SGMII,提供14套工程源码和技术支持

目录

FPGA纯verilog实现 2.5G UDP协议栈,基于1G/2.5G Ethernet PCS/PMA or SGMII,提供14套工程源码和技术支持

FPGA-2.5G-UDP

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代码直接实现;本设计使用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能;

工程概述

本设计FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现2.5G UDP以太网通信,能实现电脑端网卡与FPGA开发板之间的双向通信,为了方便测试,设计了UDP数据回环和网络测速两个功能;

UDP数据回环功能如下:
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;

网络测速功能如下:
PGA自动循环产生从0开始的累加数作为UDP用户发送数据,发送数据然后进入UDP协议栈实现以太网帧组包,即加上各种头部信息和校验,每包数据长度为1472;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;然后打开电脑端的资源管理器,查看网卡,即可看到通信速率;
针对目前市面上主流的FPGA应用,本工程共移植了14套工程,具体如下:

在这里插入图片描述


现对上述14套工程源码解释如下:

工程源码1

开发板FPGA型号为Xilinx–Artix7–35T–xc7a35tfgg484-2;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用1路1G/2.5G Ethernet PCS/PMA or SGMII IP核,使用1路SFP光口,在FPGA内部实现了1路2.5G UDP网卡,适用于Xilinx 7系列FPGA实现以太网应用;

工程源码2

开发板FPGA型号为Xilinx–Artix7–35T–xc7a35tfgg484-2;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用2路1G/2.5G Ethernet PCS/PMA or SGMII IP核,形成1主+1从的级联使用,2路IP核共享GT BANK参考时钟,使用2路SFP光口,在FPGA内部实现了2路2.5G UDP网卡,以此技术方案可扩展至多路,适用于Xilinx 7系列FPGA实现多路以太网应用;

工程源码3

开发板FPGA型号为Xilinx–Kintex7–325T-xc7k325tffg900-2;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用1路1G/2.5G Ethernet PCS/PMA or SGMII IP核,使用1路SFP光口,在FPGA内部实现了1路2.5G UDP网卡,适用于Xilinx 7系列FPGA实现以太网应用;

工程源码4

开发板FPGA型号为Xilinx–Kintex7–325T-xc7k325tffg900-2;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用2路1G/2.5G Ethernet PCS/PMA or SGMII IP核,形成1主+1从的级联使用,2路IP核共享GT BANK参考时钟,使用2路SFP光口,在FPGA内部实现了2路2.5G UDP网卡,以此技术方案可扩展至多路,适用于Xilinx 7系列FPGA实现多路以太网应用;

工程源码5

开发板FPGA型号为Xilinx–>Zynq7100—xc7z100ffg900-2;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用1路1G/2.5G Ethernet PCS/PMA or SGMII IP核,使用1路SFP光口,在FPGA内部实现了1路2.5G UDP网卡,适用于Xilinx Zynq7000系列FPGA实现以太网应用;

工程源码6

开发板FPGA型号为Xilinx–>Zynq7100—xc7z100ffg900-2;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用2路1G/2.5G Ethernet PCS/PMA or SGMII IP核,形成1主+1从的级联使用,2路IP核共享GT BANK参考时钟,使用2路SFP光口,在FPGA内部实现了2路2.5G UDP网卡,以此技术方案可扩展至多路,适用于Xilinx Zynq7000系列FPGA实现多路以太网应用;

工程源码7

开发板FPGA型号为Xilinx–Virtex7–xc7vx690tffg1761-3;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用1路1G/2.5G Ethernet PCS/PMA or SGMII IP核,使用1路SFP光口,在FPGA内部实现了1路2.5G UDP网卡,适用于Xilinx 7系列FPGA实现以太网应用;

工程源码8

开发板FPGA型号为Xilinx–Virtex7–xc7vx690tffg1761-3;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用2路1G/2.5G Ethernet PCS/PMA or SGMII IP核,形成1主+1从的级联使用,2路IP核共享GT BANK参考时钟,使用2路SFP光口,在FPGA内部实现了2路2.5G UDP网卡,以此技术方案可扩展至多路,适用于Xilinx 7系列FPGA实现多路以太网应用;

工程源码9

开发板FPGA型号为Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用1路1G/2.5G Ethernet PCS/PMA or SGMII IP核,使用1路SFP光口,在FPGA内部实现了1路2.5G UDP网卡,适用于Xilinx UltraScale系列FPGA实现以太网应用;

工程源码10

开发板FPGA型号为Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用2路1G/2.5G Ethernet PCS/PMA or SGMII IP核,形成1主+1从的级联使用,2路IP核共享GT BANK参考时钟,使用2路SFP光口,在FPGA内部实现了2路2.5G UDP网卡,以此技术方案可扩展至多路,适用于Xilinx UltraScale系列FPGA实现多路以太网应用;

工程源码11

开发板FPGA型号为Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用1路1G/2.5G Ethernet PCS/PMA or SGMII IP核,使用1路SFP光口,在FPGA内部实现了1路2.5G UDP网卡,适用于Xilinx UltraScale+系列FPGA实现以太网应用;

工程源码12

开发板FPGA型号为Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用2路1G/2.5G Ethernet PCS/PMA or SGMII IP核,形成1主+1从的级联使用,2路IP核共享GT BANK参考时钟,使用2路SFP光口,在FPGA内部实现了2路2.5G UDP网卡,以此技术方案可扩展至多路,适用于Xilinx UltraScale+系列FPGA实现多路以太网应用;

工程源码13

开发板FPGA型号为Xilinx-- Zynq UltraScale±xczu9eg-ffvb1156-2-i;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用1路1G/2.5G Ethernet PCS/PMA or SGMII IP核,使用1路SFP光口,在FPGA内部实现了1路2.5G UDP网卡,适用于Xilinx UltraScale+MPSoCs系列FPGA实现以太网应用;

工程源码14

开发板FPGA型号为Xilinx-- Zynq UltraScale±xczu9eg-ffvb1156-2-i;
电脑端网络调试助手发送测试数据,然后电脑端操作系统的Socket实现发送数据的以太网帧组包,然后发送给电脑端网卡后通过网线连接到FPGA开发板的RJ45网口;然后差分网络数据进入FPGA开发板板载的SFP光口或PHY芯片后进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现高速串行接口到GMII接口的转换;然后数据进入UDP协议栈实现以太网帧解包,解析各种头部信息,并提取输出UDP报文的有效数据段;有效数据再经过回环FIFO后回灌到UDP协议栈实现以太网帧组包,即加上各种头部信息和校验;然后数据进入高速收发器BANK,调用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII方案实现物理层功能,即实现GMII接口到高速串行接口的转换;然后数据进入板载SFP光口或PHY芯片输出差分信号,并通过网线发送到电脑端;电脑端操作系统的Socket实现接收数据以太网解包,然后数据给网络调试助手显示;网络调试助手同时显示发送和接收数据,以此观察UDP数据回环的正确性;
本设计调用2路1G/2.5G Ethernet PCS/PMA or SGMII IP核,形成1主+1从的级联使用,2路IP核共享GT BANK参考时钟,使用2路SFP光口,在FPGA内部实现了2路2.5G UDP网卡,以此技术方案可扩展至多路,适用于Xilinx UltraScale+MPSoCs系列FPGA实现多路以太网应用;

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

免责声明

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

2、相关方案推荐

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

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

我这里已有的以太网方案

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

本设计用到的UDP协议栈在RGMII接口PHY芯片上的应用方案

本设计用Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII实现物理层,或者针对于直连FPGA GT高速收发器BANK的SGMII接口的PHY,其中用到的UDP协议栈,在RGMII接口的PHY芯片上也有应用,之前写过一篇博客,对RGMII接口的PHY芯片上使用本博客UDP协议栈有需求的兄弟可以去看看:
直接点击前往

本设计用在1G/2.5G Ethernet PCS/PMA or SGMII中的1G应用

本设计基于Xilinx的1G/2.5G Ethernet PCS/PMA or SGMII实现2.5G UDP协议栈,但1G/2.5G Ethernet PCS/PMA or SGMII也可以配置为1G模式,对1G模式有应用需求的用户,可以参考我之前的博客,链接如下:
直接点击前往

3、详细设计方案

设计原理框图

设计原理框图如下:

在这里插入图片描述

电脑端网络调试助手

电脑端网络调试助手很简单,几乎干这一行的都用过,为Windows版本.exe文件,无需安装直接使用,界面如下:

在这里插入图片描述


这个软件使用教程可自行百度,如果连这个都不会用,说明。。。

PHY(SGMII)或SFP光口转RJ45电口

在准备SFP光口转RJ45电口前,请确认你的电脑网卡支持2.5G速率,如下:

在这里插入图片描述


本设计适用于以下两种物理接口:
1:、FPGA开发板无需网络PHY芯片,而使用光口做UDP以太网通信,此时的物理接口为SFP光口,进而需要SFP光口转RJ45电口实现与PC的网络连接,SFP光口转RJ45电口某宝几十块钱很便宜,大概长这样:

在这里插入图片描述


光电转换口必须要支持2.5G,如下:

在这里插入图片描述


2、FPGA开发板有网络PHY芯片,且PHY必须为SGMII模式且必须连接到了FPGA高速收发器BANK,典型的PHY芯片有88E1111、DP83867ISRGZ、RTL8211B等型号,此时直接用网线即可实现与PC的网络连接。

1G/2.5G Ethernet PCS/PMA or SGMII 简介

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/2.5G Ethernet PCS/PMA or SGMII配置为2.5G,其与MAC的接口为GMII,配置如下:

在这里插入图片描述


核心配置如下:

在这里插入图片描述


无PHY,使用光口做网络通信时,配置为2500BASEX;
有PHY、且为SGMII接口、且直连FPGA 高速收发器BANK时,配置为2.5G SGMII模式;

1G/2.5G Ethernet PCS/PMA or SGMII可运行于1G和2.5G线速率,对GT时钟有严格研究,按照官方数据手册,对于Xilinx 7系列FPGA而言,运行1G线速率时,GT差分时钟必须为125M,运行2.5G线速率时,GT差分时钟必须为312.5M,如下:

在这里插入图片描述


对于Xilinx UltraScale和UltraScale+系列FPGA而言,无论配置为1G或2.5G模式,GT差分时钟没有特性要求,可以使125M或者156.25M等等。

多个1G/2.5G Ethernet PCS/PMA or SGMII 主从级联使用

多个1G/2.5G Ethernet PCS/PMA or SGMII 的主从搭配使用的应用场景是FPGA开发板充当多光口的网卡使用,即一个FPGA挂载多个光口,每一个光口相当于一个独立的网卡,有独立的IP地址和MAC地址,类似于交换机;主从搭配使用框架如下:

在这里插入图片描述


主从级联使用时,多个1G/2.5G Ethernet PCS/PMA or SGMIIIP核共享1路GT BANK参考时钟;

2.5G UDP协议栈

2.5G UDP协议栈是以太网的协议层,由纯verilog代码实现,具有动态ARP、ICMP功能,占用逻辑资源少,性能不错,设计精简等特点,代码有详细中文注释,这里就不过多赘述,模块代码架构如下:

在这里插入图片描述

2.5G UDP数据回环+测速

2.5G UDP数据回环使用FIFO缓存用户接收数据后转发给发送接口,功能简单,不多赘述
测速则是FPGA向PC端单向发送数据,PGA自动循环产生从0开始的累加数作为UDP用户发送数据
代码架构如下:

在这里插入图片描述

IP地址、端口号的修改

工程留出了IP地址、端口号的修改端口供用户自由修改,位置在顶层模块如下:

在这里插入图片描述


多路网卡工程时如下:

在这里插入图片描述

工程源码架构

提供14套工程源码,以工程源码1为例,工程源码架构如下,此工程仅用1路Ethernet:

在这里插入图片描述


提供14套工程源码,以工程源码2为例,工程源码架构如下,此工程使用2路Ethernet:

在这里插入图片描述

4、vivado工程1详解:Artix7-35T,单核2.5G Ethernet架构

开发板FPGA型号:Xilinx–>Artix7–>xc7a35tfgg484-2;
FPGA开发环境:Vivado2019.1;
以太网物理接口:1路SFP光口;
以太网物理层方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII IP核;
使用高速收发器类型:GTP;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

5、vivado工程2详解:Artix7-35T,双核2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx–>Artix7–>xc7a35tfgg484-2;
FPGA开发环境:Vivado2019.1;
以太网物理接口:2路SFP光口;
以太网物理层方案:2路1G/2.5G Ethernet PCS/PMA or SGMII IP核主从级联方案;
使用高速收发器类型:GTP;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

6、vivado工程3详解:Kintex7-325T,单核2.5G Ethernet架构

开发板FPGA型号:Xilinx–>Kintex7–>xc7k325tffg900-2;
FPGA开发环境:Vivado2019.1;
以太网物理接口:1路SFP光口;
以太网物理层方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII IP核;
使用高速收发器类型:GTX;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

7、vivado工程4详解:Kintex7-325T,双核2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx–>Kintex7–>xc7k325tffg900-2;
FPGA开发环境:Vivado2019.1;
以太网物理接口:2路SFP光口;
以太网物理层方案:2路1G/2.5G Ethernet PCS/PMA or SGMII IP核主从级联方案;
使用高速收发器类型:GTX;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

8、vivado工程5详解:Zynq7100,单核2.5G Ethernet架构

开发板FPGA型号:Xilinx–Zynq7100–xc7z100ffg900-2;
FPGA开发环境:Vivado2019.1;
以太网物理接口:1路SFP光口;
以太网物理层方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII IP核;
使用高速收发器类型:GTX;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

9、vivado工程6详解:Zynq7100,双核2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx–Zynq7100–xc7z100ffg900-2;
FPGA开发环境:Vivado2019.1;
以太网物理接口:2路SFP光口;
以太网物理层方案:2路1G/2.5G Ethernet PCS/PMA or SGMII IP核主从级联方案;
使用高速收发器类型:GTX;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

10、vivado工程7详解:Virtex7-690T,单核2.5G Ethernet架构

开发板FPGA型号:Xilinx–Virtex7–xc7vx690tffg1761-3;
FPGA开发环境:Vivado2019.1;
以太网物理接口:1路SFP光口;
以太网物理层方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII IP核;
使用高速收发器类型:GTH;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

11、vivado工程8详解:Virtex7-690T,双核2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx–Virtex7–xc7vx690tffg1761-3;
FPGA开发环境:Vivado2019.1;
以太网物理接口:2路SFP光口;
以太网物理层方案:2路1G/2.5G Ethernet PCS/PMA or SGMII IP核主从级联方案;
使用高速收发器类型:GTH;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

12、vivado工程9详解:KU060,单核2.5G Ethernet架构

开发板FPGA型号:Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
FPGA开发环境:Vivado2019.1;
以太网物理接口:1路SFP光口;
以太网物理层方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII IP核;
使用高速收发器类型:GTH;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

13、vivado工程10详解:KU060,双核2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx-- Kintex UltraScale–xcku060-ffva1156-2-i;
FPGA开发环境:Vivado2019.1;
以太网物理接口:2路SFP光口;
以太网物理层方案:2路1G/2.5G Ethernet PCS/PMA or SGMII IP核主从级联方案;
使用高速收发器类型:GTH;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

14、vivado工程11详解:KU5P,单核2.5G Ethernet架构

开发板FPGA型号:Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
FPGA开发环境:Vivado2019.1;
以太网物理接口:1路SFP光口;
以太网物理层方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII IP核;
使用高速收发器类型:GTY;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

15、vivado工程12详解:KU5P,双核2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx-- Kintex UltraScale±-xcku5p-ffvb676-1-i;
FPGA开发环境:Vivado2019.1;
以太网物理接口:2路SFP光口;
以太网物理层方案:2路1G/2.5G Ethernet PCS/PMA or SGMII IP核主从级联方案;
使用高速收发器类型:GTY;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

15、vivado工程13详解:ZU9EG,单核2.5G Ethernet架构

开发板FPGA型号:Xilinx-- Zynq UltraScale±xczu9eg-ffvb1156-2-i;
FPGA开发环境:Vivado2019.1;
以太网物理接口:1路SFP光口;
以太网物理层方案:Xilinx官方1G/2.5G Ethernet PCS/PMA or SGMII IP核;
使用高速收发器类型:GTH;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

16、vivado工程14详解:ZU9EG,双核2.5G Ethernet主从级联架构

开发板FPGA型号:Xilinx-- Zynq UltraScale±xczu9eg-ffvb1156-2-i;
FPGA开发环境:Vivado2019.1;
以太网物理接口:2路SFP光口;
以太网物理层方案:2路1G/2.5G Ethernet PCS/PMA or SGMII IP核主从级联方案;
使用高速收发器类型:GTH;
以太网MAC方案:纯verilog方案;
以太网协议层方案:纯verilog的UDP/IP协议栈,2.5G 网速率;
以太网测试功能:数据收发回环测试+FPGA向PC单发测速;
工程目的:让读者掌握FPGA基于1G/2.5G Ethernet PCS/PMA or SGMII实现UDP以太网通信的设计能力,以便能够移植和设计自己的项目;
工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:

在这里插入图片描述

17、工程移植说明

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

18、上板调试验证并演示

准备工作

试验需要准备以下设备:
FPGA开发板,可以自行购买,也可以找本博主购买同款开发板;
测试电脑;
2.5GSFP转RJ45电口,2.5G网线;
网络调试助手;
以工程源码1的开发板为例进行上板调试;
连接如下:

在这里插入图片描述


然后将电脑端IP地址设置为如下:

在这里插入图片描述


然后下载bit或者固化bin文件,即可开始测试;

ping测试

打开电脑CMD,输入ping指令;
单次ping测试如下:

在这里插入图片描述


连续ping测试如下:

在这里插入图片描述

ARP测试

打开电脑CMD,输入ARP指令;如下:

在这里插入图片描述

UDP数据回环测试

打开电脑端网络调试助手,测试如下:

在这里插入图片描述


在这里插入图片描述

网络测速

首先关闭网络调试助手;
然后配置电脑网卡,开启巨型帧之类的,把网卡配置为最佳性能;
然后打开vivado加载的VIO,然后将VIO设置为1,开启数据发送,如下:

在这里插入图片描述


然后在电脑的任务栏右击鼠标–>任务管理器–>性能,找到网卡,如下:

在这里插入图片描述


注意,这个测速只代表可能的最高的速度,不代表电脑真实的不丢包速度,UDP 的点到点不丢包速度和电脑的网卡、CPU 速度、内存速度、操作系统都有关系。。。

综合测试效果演示

综合测试效果演示如下:

FPGA-2.5G-UDP

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

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

在这里插入图片描述


此外,有很多朋友给本博主提了很多意见和建议,希望能丰富服务内容和选项,因为不同朋友的需求不一样,所以本博主还提供以下服务:

在这里插入图片描述

Read more

AI 智能编码工具:重塑开发效率的革命,从 GitHub Copilot 到国产新秀的全面解析

AI 智能编码工具:重塑开发效率的革命,从 GitHub Copilot 到国产新秀的全面解析

目录 引言 一、主流智能编码工具深度测评:从功能到实战 1. GitHub Copilot:AI 编码的 “开山鼻祖” 核心特性与实战代码 优缺点总结 2. Baidu Comate:文心大模型加持的 “国产之光” 核心特性与实战代码 优缺点总结 3. 通义灵码:阿里云的 “企业级编码助手” 核心特性与实战代码 优缺点总结 引言 作为一名拥有 8 年开发经验的程序员,我曾无数次在深夜对着屏幕反复调试重复代码,也因记不清框架语法而频繁切换浏览器查询文档。直到 2021 年 GitHub Copilot 问世,我才第一次感受到:AI 不仅能辅助编码,更能彻底改变开发模式。如今,智能编码工具已从 “尝鲜选项” 变为 “必备工具”,它们像经验丰富的结对编程伙伴,能精准补全代码、生成测试用例、

本地部署AI绘画就这么简单,麦橘超然实操笔记

本地部署AI绘画就这么简单,麦橘超然实操笔记 1. 开门见山:不用折腾显卡,8GB显存也能跑出专业级画质 你是不是也试过下载一堆AI绘画工具,结果刚点开就弹出“CUDA out of memory”?或者被复杂的环境配置、模型下载、依赖冲突搞得头大,最后连第一张图都没生成出来?别急,这次真不一样。 麦橘超然 - Flux 离线图像生成控制台,不是又一个需要你手动编译、调参、查报错的实验项目。它是一套开箱即用、专为中低显存设备打磨的完整方案——模型已打包进镜像,代码已写好,连端口转发都给你配好了命令行模板。你只需要三步:复制脚本、运行命令、打开浏览器,就能在自己的电脑或远程服务器上,亲手生成一张赛博朋克雨夜街景。 它背后用的是当前图像生成领域最前沿的 Flux.1 架构,但做了关键改造:DiT主干网络用 float8 量化压缩,文本编码器和VAE保持高保真精度,再配合 CPU 卸载机制,把原本动辄12GB显存的模型,硬生生压进6–

【如何使用vscode+github copilot会更加省额度】

【如何使用vscode+github copilot会更加省额度】

这是一份为您定制的 VS Code + GitHub Copilot ($100/年个人版) 深度使用与省流指南。 如果您目前订阅的是 100美元/年(约10美元/月)的 GitHub Copilot Individual (现通常称为 Pro 版),虽然基础代码补全通常是无限制的,但在使用高级大模型(Premium Models,如 Claude 3.5/4.5 Sonnet, GPT-4o 等)进行对话 (Chat) 时,是存在“高级请求额度 (Premium Requests Limit)”或动态计算系统的。一旦超标,要么会被限速,要么只能降级使用基础模型。 以下是详细的收费标准说明与极端的“省流”实操指南。 📘 GitHub Copilot

AI绘画建筑设计提示词:从基础到高级的完整创作指南

AI绘画建筑设计提示词:从基础到高级的完整创作指南

一、核心逻辑:高质量建筑提示词的 7 大组成部分 AI 对建筑的理解需要 “分层引导”,一个完整的提示词通常包含 7 个关键模块,你可根据需求灵活组合或删减,基础逻辑为:先明确 “画什么”,再定义 “怎么画”,最后优化 “画得好”。具体结构如下: [主体/建筑类型] + [风格/建筑师参考] + [环境/场景设定] + [细节与材质] + [构图与视角] + [灯光与氛围] + [画质/技术参数] 这一结构能让 AI 清晰捕捉设计核心,避免因信息模糊导致的 “偏离预期”,是高效创作的基础框架。 二、分模块详解:建筑提示词词汇库与应用技巧 1. 主体 / 建筑类型:明确 “画什么” 的核心 这是提示词的 “根基”,需精准定义建筑的功能与形态,避免笼统表述。