跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言

FPGA 纯 Verilog 实现 2.5G UDP 协议栈,基于 1G/2.5G Ethernet PCS/PMA or SGMII

基于 Xilinx 1G/2.5G Ethernet PCS/PMA or SGMII IP 核,使用纯 Verilog 实现的 2.5G UDP 协议栈方案。支持 Artix7、Kintex7、Zynq7000、Virtex7 及 UltraScale 系列 FPGA,涵盖单核与双核级联架构。功能包括 UDP 数据回环、网络测速、ICMP Ping 及 ARP 解析。提供了 Vivado 版本兼容处理、引脚约束修改及工程移植说明,适用于医疗、军工等数字通信领域的项目开发。

黑客帝国发布于 2026/4/6更新于 2026/9/1179 浏览
FPGA 纯 Verilog 实现 2.5G UDP 协议栈,基于 1G/2.5G Ethernet PCS/PMA or SGMII

FPGA 纯 Verilog 实现 2.5G UDP 协议栈

1、前言

目前 FPGA 实现 UDP 网络通信主要有两种方案:

  1. 使用 PHY 芯片实现物理层功能,UDP 协议栈部分使用 Verilog 代码直接实现。
  2. 使用 Xilinx 官方 IP 核实现物理层功能(如 1G/2.5G Ethernet PCS/PMA or SGMII),UDP 协议栈部分使用 Verilog 代码直接实现。

本设计采用 Xilinx 的 1G/2.5G Ethernet PCS/PMA or SGMII 方案实现物理层功能。

2、工程概述

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

UDP 数据回环功能

电脑端发送测试数据,通过网线连接到 FPGA 开发板的网口。差分网络数据进入 FPGA 高速收发器 BANK,调用 1G/2.5G Ethernet PCS/PMA or SGMII 方案实现物理层功能(高速串行接口到 GMII 接口的转换)。数据进入 UDP 协议栈解包,提取有效数据段后经过回环 FIFO 回灌到 UDP 协议栈组包,再经物理层转换输出至电脑端。电脑端操作系统 Socket 解包后显示,以此观察 UDP 数据回环的正确性。

网络测速功能

FPGA 自动循环产生从 0 开始的累加数作为 UDP 用户发送数据,每包数据长度为 1472。数据经 UDP 协议栈组包及物理层转换后发送到电脑端,通过资源管理器查看网卡通信速率。

本工程共移植了 14 套工程,覆盖多种 FPGA 型号及单核/双核架构。

3、详细设计方案

设计原理框图

设计包含高速收发器、PCS/PMA 模块、UDP/IP 协议栈及回环逻辑。

物理接口说明

本设计适用于以下两种物理接口:

  1. SFP 光口:FPGA 开发板无需网络 PHY 芯片,使用光口做 UDP 以太网通信。需配合 2.5G SFP 转 RJ45 电口实现与 PC 的网络连接。
  2. SGMII PHY 芯片:FPGA 开发板有网络 PHY 芯片(如 88E1111、DP83867ISRGZ、RTL8211B 等),且 PHY 为 SGMII 模式直连 FPGA 高速收发器 BANK,直接用网线即可连接。

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

该 IP 核实现了类似于网络 PHY 芯片的功能。

  • 接收端:GT 资源解串 -> 弹性 Buffer -> 8b/10b 解码 -> PCS 接收同步器 -> GMII 总线输出。
  • 发送端:GMII 输入 -> PCS 发送引擎 -> 8b/10b 编码 -> GT 串化输出。

配置说明

  • 2.5G 配置:无 PHY 使用光口时配置为 2500BASEX;有 PHY 且为 SGMII 接口时配置为 2.5G SGMII 模式。
  • 时钟要求:Xilinx 7 系列运行 1G 线速率时 GT 差分时钟必须为 125M,运行 2.5G 线速率时必须为 312.5M。UltraScale 和 UltraScale+ 系列对 GT 差分时钟无严格特性要求。

多路级联使用

多个 1G/2.5G Ethernet PCS/PMA or SGMII 的主从搭配使用可实现多光口网卡功能。主从级联使用时,多个 IP 核共享 1 路 GT BANK 参考时钟。

2.5G UDP 协议栈

由纯 Verilog 代码实现,具有动态 ARP、ICMP 功能,占用逻辑资源少,性能不错,代码有详细中文注释。

工程源码架构

提供 14 套工程源码,涵盖单路和双路 Ethernet 架构。

4、支持平台列表

本工程共移植了 14 套工程,具体如下:

序号FPGA 型号架构接口
1Artix7-35T (xc7a35tfgg484-2)单核1 路 SFP
2Artix7-35T (xc7a35tfgg484-2)双核级联2 路 SFP
3Kintex7-325T (xc7k325tffg900-2)单核1 路 SFP
4Kintex7-325T (xc7k325tffg900-2)双核级联2 路 SFP
5Zynq7100 (xc7z100ffg900-2)单核1 路 SFP
6Zynq7100 (xc7z100ffg900-2)双核级联2 路 SFP
7Virtex7-690T (xc7vx690tffg1761-3)单核1 路 SFP
8Virtex7-690T (xc7vx690tffg1761-3)双核级联2 路 SFP
9Kintex UltraScale (xcku060-ffva1156-2-i)单核1 路 SFP
10Kintex UltraScale (xcku060-ffva1156-2-i)双核级联2 路 SFP
11Kintex UltraScale+ (xcku5p-ffvb676-1-i)单核1 路 SFP
12Kintex UltraScale+ (xcku5p-ffvb676-1-i)双核级联2 路 SFP
13Zynq UltraScale+ MPSoC (xczu9eg-ffvb1156-2-i)单核1 路 SFP
14Zynq UltraScale+ MPSoC (xczu9eg-ffvb1156-2-i)双核级联2 路 SFP

所有工程均使用 Vivado2019.1 环境,支持数据收发回环测试及 FPGA 向 PC 单发测速。

5、工程移植说明

Vivado 版本不一致处理

  1. 若版本一致,直接打开工程。
  2. 若版本低于本工程,建议升级 Vivado 或另存为工程文件。
  3. 若版本高于本工程,IP 可能被锁定,需点击 Upgrade IP 进行升级。

FPGA 型号不一致处理

若 FPGA 型号不一致,需在 Project Settings 中更改目标器件型号,并重新升级 IP 核。

其他注意事项

  1. DDR 配置需根据实际原理图调整 MIG IP。
  2. 根据原理图修改引脚约束(xdc 文件)。
  3. 纯 FPGA 移植到 Zynq 需在工程中添加 Zynq 软核。

6、上板调试验证

准备工作

需要准备 FPGA 开发板、测试电脑、2.5G SFP 转 RJ45 电口、2.5G 网线及网络调试助手。 将电脑端 IP 地址设置为与 FPGA 同网段,下载 bit 或固化 bin 文件开始测试。

Ping 测试

打开电脑 CMD,输入 ping 指令测试连通性。支持单次及连续 Ping 测试。

ARP 测试

打开电脑 CMD,输入 ARP 指令查看 ARP 表项。

UDP 数据回环测试

打开电脑端网络调试助手,发送数据并验证接收数据是否一致。

网络测速

关闭网络调试助手,配置电脑网卡开启巨型帧以获得最佳性能。通过 VIO 开启数据发送,在任务管理器性能页面查看网卡实时速率。注意此速度受电脑网卡、CPU、内存及操作系统影响。

7、总结

本文详细描述了 FPGA 基于 1G/2.5G Ethernet PCS/PMA or SGMII 实现 2.5G UDP 以太网通信的设计方案。经过反复大量测试稳定可靠,可在项目中直接移植使用。工程代码可综合编译上板调试,适用于在校学生、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字通信领域。

目录

  1. FPGA 纯 Verilog 实现 2.5G UDP 协议栈
  2. 1、前言
  3. 2、工程概述
  4. UDP 数据回环功能
  5. 网络测速功能
  6. 3、详细设计方案
  7. 设计原理框图
  8. 物理接口说明
  9. 1G/2.5G Ethernet PCS/PMA or SGMII 简介
  10. 配置说明
  11. 多路级联使用
  12. 2.5G UDP 协议栈
  13. 工程源码架构
  14. 4、支持平台列表
  15. 5、工程移植说明
  16. Vivado 版本不一致处理
  17. FPGA 型号不一致处理
  18. 其他注意事项
  19. 6、上板调试验证
  20. 准备工作
  21. Ping 测试
  22. ARP 测试
  23. UDP 数据回环测试
  24. 网络测速
  25. 7、总结

更多推荐文章

查看全部
  • OpenClaw 免费 AI 大模型选型与配置指南
  • MySQL 核心原理与高频面试题实战指南
  • Llama-2-7b 在昇腾 NPU 上的六大核心场景性能基准
  • Java 中 == 与 equals() 的区别
  • 汇川机器人软件 RobotLab 基础操作指南
  • Halcon 基础面试题:图像数据类型与尺寸表示
  • Ubuntu20.04 下使用 KITTI-07 数据集运行 LIO-SAM 及 EVO 评测
  • Mac mini M4 部署 OpenClaw + Ollama 本地大模型接入飞书机器人
  • VSCode Copilot 登录失败常见原因与解决方案
  • 数据结构入门:详解顺序表的实现与操作
  • BMAD 开发实战:掌握 AI 辅助开发完整流程
  • Mac 系统下 5 款主流 SSH 工具对比与实战技巧
  • Web 项目自动化测试实战:从零搭建博客系统 UI 自动化框架
  • OpenClaw 技能精选:为本地 AI 助手构建超级插件市场
  • 《Agent Runtime 工程化》第四章 工具系统设计:4.3 工具版本演进
  • WebArena:真实网页环境下的自主智能体构建与评估
  • 半小时搭建 AI 量化系统:OpenClaw 与开源三件套实战
  • 5 款免费 AIGC 检测工具推荐及降重技巧
  • LeetCode 下一个排列算法:C 语言实战解析
  • JDK 17 官方下载与跨平台安装指南

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online