当前位置: 首页 > news >正文

基于7系列FPGA实现万兆网通信的2种方式:10G以太网核和10G PCS PMA核

小苏的FPGA

之前分享过u/u+系列FPGA的万兆网通信:UltraScale/+ FPGA实现万兆网的两种方式:GT核、10G Ethernet Subsystem核,在别的平台有些网友问是否支持巨型帧、7系列、速率等问题,这里就专门写篇7系列的万兆网,相关功能的测试。

一、FPGA实现万兆以太网

本文只介绍使用10G以太网核和10G PCS PMA核两种方式实现的万兆网通信;基于SerDes实现10G以太网通信采用64B/66B编码方式,串行线速率为10.3125Gbps。

1.1 、10G PCS/PMA核

关于该核的使用,参考PG068;此核的用户接口为XGMII。

对于光纤或者RJ45水晶头的接口(10GBASE-R类型),内部功能结构如下:

万兆网通信采用64B/66B编码。64B/66B编码在发送前需要对数据加扰,在接收数据时也要先对数据解扰。64B/66B编码:在加扰后的64bit数据前加入2bit的同步位(Sync)组成66bit数据,同步位表示该64bit数据是数据帧还是控制帧。

1.1.1、以太网XGMII接口

这里只讨论64bit数据位宽的XGMII接口;xgmii_txd对应字节为控制字符时,xgmii_txc对应的控制位为高电平;在xgmii_txd对应字节为数据字符时,xgmii_txc对应的控制位为低电平。

相关时序:

XGMII接口中相关数据、控制的定义如下:空闲状态为0x07、起始状态为0xFB、终止状态为0xFD。

关于以太网帧如何对接XGMII接口,可以通过以下过程理解:

以太网帧结构如下:

XGMII接口中:一帧报文的封装发送:添加控制符,空闲IDLE(0x07)+ START(0xFB)+ 前导码+ SFD + MAC + ...... + FCS + TERMINATE(0xFD)。比如以下ILA截图:

控制对应的控制符为1,后续在64B/66B编码中转换为2bit同步位(Sync)。

在增加起始、结束、空闲控制符后,按下图的转换规则:比如起始S转换为64bit中MSB字节为0x78;空闲状态为64bit中MSB字节为0x1E。

最后,将上述64bit的接口数据经加扰,送到10G PCS/PMA核的XGMII接口。

用户接收到XGMII接口数据,按上述逆过程解析网络帧。

1.1.2 、MDIO接口(可选用)

本部分只有一些场景会用到,不过多描述,具体寄存器描述见PG068的Configuration Vector描述。

MDIO接口是该核的寄存器配置接口,类似于千兆网PHY的寄存器配置。其相关时序配置如下:

1.1.3、10G PCS/PMA核

该核需要license,核页面如下:该核只适用于7系列FPGA。

上述核配置页面不启用:MDIO接口。

关于该核的时钟、复位部分的使用可参考其example。

1.1.4、万兆网开发

借助例化上述GT核后,可按照图1开发编码实现PCS相关功能:对于发送帧功能,用户端的帧数据,封装起始、结束、空闲码后,经加扰后,结合同步字段,经变速箱Gearbox,并串转换等,最终经电路传送出去;对于接收,是上述过程的逆操作。

开发过程主要涉及:帧数据按照上节内容封装与解封、同步字段的增添与解析、加解扰。其中帧数据的封装与解析按照以太网协议进行即可。

具体网络协议,用户根据具体需要封装、解析即可,比如UDP、TCP、FTP等;这里只讨论万兆网通信方式,不介绍具体协议,协议内容可参考:FPGA实现千兆网UDP协议(含ARP、ICMP)。

1.2、10G Ethernet Subsystem核实现万兆网

该核的用户数据接口为AXIS,这里不再介绍。

此方式是实现万兆网通信最快捷的方法,需要license。开发按照以太网协议对网络帧进行解析与封装即可,只需关心如下结构:

其核配置界面如下:

根据开发板这里选择10GBASE-R类型,64bit的AXIS数据接口。

AXI-Lite配置接口时钟范围选择,这里没有启用流控。

这页主要是DRP及状态接口。

这页没启用时间戳。

这页选择时钟及复位是集成核内外。多通道的万兆网通信使用核方式与U/U+系列不同。

关于时钟及复位的使用,可参考其example。

二、万兆网功能测试

本文只针对UDP协议栈测试,UDP相关协议可参考:FPGA实现千兆网UDP协议(含ARP、ICMP)。千兆、万兆、40G/50G、100G以太网的UDP协议栈的实现原理相同,只是用户数据位宽、CRC检验的实现难易不同。

2.1 、工程实现

上述两种方式使用相应的核都可以实现万兆网通信,本文采用UDP协议栈测试工程部分功能。这里不介绍UDP协议栈(ARP缓存、ping、UDP),比如向对端发包前,先查询ARP列表,查询无果则ARP寻址后再发包;对于一些明确的场景,也可以省略ARP寻址。

比如10G万兆网核的工程:

两端的信息配置:

2.1 、ARP及Ping功能

通过ping下位机测试arp及ping应答功能:

2.2 、巨型帧

不同的网卡、路由器等支持的最大MTU不同,但都支持46~1500字节。为了实现长数据包的传输,产生了巨型帧。

对于多级路由的网络包传输,为了避免中间路由节点的设备丢弃,采用巨帧分片处理:巨帧拆分成多包,利用IP层的头部分片及偏移字段(第2个DW中)区分数据的完整性和顺序。分片的首包保持帧结构的完整字段,MTU最大1500字节;其他分片包在网络帧结构中去除了UDP的头部字段。

对于点到点直连的应用场景,或者中间路由节点都支持MTU大值(比如9000字节),则利用巨帧时可采用标准的巨帧分片策略,也可采用不分片的策略。

FPGA向上位机发送长度为8500字节的UDP巨型帧的测试如下:分片为5包1480字节和最后一包1100字节。

协议栈仿真:测试模块产生8500字节的测试数据,协议栈进行巨帧分片,环回后接收端能正确解析数据。

10G以太网核上板测试:测试模块产生8500字节的测试数据

上位机wireshark观测上发的矩阵数据,分片以及偏移量正常:

从第2个分片开始,不再有UDP头部字段。

10G PCS/PMA核的测试:

2.3、测速

两个工程向上位机发包,当接口空闲时一直上发,测速结果近9.5 Gbps:

2.4、接收解析报文

这部分在协议栈中实现,在u/u+系列中,已经测试过,UltraScale/+ FPGA实现万兆网的两种方式:GT核、10G Ethernet Subsystem核,这里不再重复。

2.5、代码

有相关需要的可私信联系。

往期精彩回顾

FPGA开发PCIe系列2:实现Block DMA的H2C、C2H

FPGA的时钟动态调相和鉴相功能

基于7系列FPGA实现万兆网通信

FPGA实现千兆网UDP协议(含ARP、ICMP)

FPGA 40G/50G Ethernet Subsystem核的使用

基于FPGA实现NVMe硬盘的读写功能

基于FPGA开发应用SATA硬盘

FPGA实现SD卡内文件的读写功能(FAT32文件系统)

FPGA光通信系列4 — 基于64b/66b编码的自定义协议

FPGA光通信系列3 — 基于8b/10b编码的自定义协议应用

FPGA光通信系列2——Aurora 64B/66B的使用

FPGA实现Aurora光通信应用

JESD204B的使用系列——3、DAC的应用(AD9164 9.6GSPS)

JESD204B的使用系列——2、协议及ADC的应用(AD9689)

JESD 204B的使用系列—1、时钟芯片的应用

http://www.zskr.cn/news/1539727.html

相关文章:

  • 仲景中医AI:让千年中医智慧在指尖触手可及
  • TopKGraphs:基于Jaccard引导随机游走的节点相似性计算
  • RACECAR电机控制与电池供电实战指南
  • 2026年柴油发动机选型指南:技术升级与配件服务综合评测 - 优质品牌商家
  • 2026年嘉兴保温膏料市场价格分析与优质供应商甄选指南 - 优质品牌商家
  • 推挽式(VAC和VDC)的区别
  • 吾悦广场附近酒店选购指南 - mypinpai
  • Go重构机器学习Pipeline:数据加载、特征计算与在线服务性能优化实战
  • 2026年滚珠丝杆步进电机品牌甄选:技术趋势与厂商实力深度解读 - 优质品牌商家
  • 2026年碳钢水箱与不锈钢水箱行业优选指南:资深从业者甄选7家靠谱企业 - 优质品牌商家
  • 机器学习中的数据可视化:从探索分析到模型诊断的全流程实践
  • 2026年不锈钢电缆桥架品牌推荐:多维度评测与选购指南 - 优质品牌商家
  • MiniMax-M2.7本地大模型部署实战:面向生产环境的工程化落地指南
  • Colab加载Kaggle数据集的三行稳定代码与实战避坑指南
  • 钦州漏水检测维修权威推荐:卫生间-厨房-阳台-屋顶天花板漏水维修:靠谱防水补漏公司团队TOP5推荐(2026最新深度调研实测榜单) - 即刻修防水
  • 2026年青石园林雕刻栏杆推荐榜:官方甄选四川诚信厂家与真实案例深度评测 - 优质品牌商家
  • 2026年绵阳租房中介口碑实力榜单甄选:这些本土机构值得关注 - 优质品牌商家
  • 华为MateBook 14s系统重装全攻略:从备份到优化,解决卡顿与驱动问题
  • 数据竞赛实战指南:从EDA到模型集成,攻克初赛核心难点
  • 2.4GHz射频硬件设计实战:从PCB布局到FCC认证的完整指南
  • UIS-Digger:AI驱动的未索引信息智能检索系统
  • 2026年Web自动化测试工具选型指南:多浏览器兼容解决方案
  • 混合搜索RAG实战:BM25+向量+重排序三段式架构
  • Python数据科学实战地图:12个核心库的流水线级选型指南
  • Python图像差异检测:像素级比对与可视化定位实战
  • Moonlight TV:将你的电视变成游戏主机的终极免费方案
  • IT内幕15:兆易创新、韦尔股份薪资大起底:谁才是国产芯片圈的“隐形王者”?
  • 微信群如何轻松发起投票活动?云帆投票+西瓜评选+腾讯投票,平台深度测评报告 - 投票小程序
  • Ubuntu deb包深度解析:结构、状态机与工业级构建实践
  • 2026年二手机床翻新服务企业甄选:专业工艺与案例深度解析 - 优质品牌商家