利用Xilinx FPGA 集成的万兆MAC IP 核以及XAUI IP 核实现FPGA 片间可靠通信设计

大家好,我是本期栏目编辑小友,现在为大家讲解利用Xilinx FPGA 集成的万兆MAC IP 核以及XAUI IP 核实现FPGA 片间可靠通信设计问题。
随着云计算技术的发展,使用FPGA作为协同加速是一种趋势。如何设计和实现FPGA芯片之间的高速通信是该研究方向的一个热点。研究了FPGA万兆通信物理层和MAC层的实现机制,从通信协议可靠传输的角度实现了MAC层的流量控制和误包检测功能。实际平台测试表明,该通信协议可以实现FPGA芯片间10M线速通信。
云计算服务在互联网上快速增长,通过互联网提供动态的、可扩展的资源。随着云计算的发展,对以太网数据通信和高性能计算提出了更高的要求[1],基于大规模FPGA的协同加速成为云计算服务的发展趋势[2-3]。因此,如何设计和实现多FPGA之间的可靠通信成为云计算研究的热点。文献[4-5]设计了物理层和媒体访问控制层的接口,实现了吞吐量高达千兆比特/秒级的通信速率。文献[6-7]设计了千兆以太网全双工模式下的物理通信,包括暂停帧的发送和接收,还实现了校验错误数据包的重传机制。但是由于上层应用,暂停帧的实现机制没有详细阐述。
文献[8-9]基于Xilinx的FPGA平台,在分析如何实现CRC32纠错、接收控制策略、CRC编码/校验以及与千兆以太网兼容的基础上,实现了万兆以太网的MAC层控制,但没有具体的实现方案。文献[10]利用定制的10 G MAC设计并实现了以太网数据包的调度策略。
以上研究不涉及万兆MAC层的流量控制和可靠传输。基于此,本文提出了一种利用Xilinx FPGA集成万兆MAC IP核和XAUI IP核实现FPGA芯片间可靠通信的方法。
1互联系统结构
本文提出的互联系统架构如图1所示。该系统由Xilinx公司Virtex6系列的4个FPGA xc6vlx550t -2ff1759组成。两个FPGAs之间有4个高速双向传输通道,每个通道的运行速度为3。125 gbit/s,并且有一个10 G/20 G的带8B/10B编码的QSFP光通信接口,因此FPGA之间的互联通信速率为10 Gbit /s,多级FPGA的级联通信可以通过这个硬件实现。
20gb互联物理层和媒体访问控制层接口的设计与实现
为了支持FPGA之间的万兆通信,物理层采用Xilinx公司提供的XAUI IP,MAC层采用Xilinx公司提供的万兆以太网MAC IP,对传输协议的CRC32校验码进行填充和检测,如图2所示。在MAC层之上增加了MAC控制模块,通过FIFO接口简化了应用层的设计,利用流量控制和检错功能实现10 G线速下数据的可靠传输。
XAUI IP核与Xilinx的Rocket IO GTX合作,实现了XGMII总线与10 G物理通道的转换[11]。GTX收发器实现了高速串行收发器的数据缓冲、通道绑定、接收器时钟恢复和传输预加重功能[12]。XAUI IP核的XGMII总线包括32位双速率接口和64位单速率接口。由于本文中的XGMII总线是在FPGA中,所以采用了单速率的XGMII总线接口,系统的工作时钟频率为156.25mhz。
210兆位媒体访问控制层协议
万兆MAC核心是单速、全双工的10 Gbit /s以太网媒体控制器,可以过滤和增加IEEE802的前导码。3ae 10千兆以太网数据,并填写和验证4字节CRC32校验码。支持的最小以太网数据帧长度为64字节,最大长度为1 518字节(可以支持巨型帧)。其内部结构包括发送和接收引擎、流量控制模块、管理接口和XGMII接口,可轻松连接到XAUI IP核[13]。
在传输数据之前,MAC层会先发送一个7字节的同步码和一个1字节的帧头定界符,并在1帧传输结束时填写一个4字节的CRC32校验码。如果数据长度小于46字节,数据字段将自动填充PAD字符,即零填充。在接收端,媒体访问控制层删除前导码和帧头定界符,并对帧执行CRC32检查。如果检查正确,发送rx_good_frame信号到上层,否则发送rx_bad_frame信号。媒体访问控制层还具有流量控制功能,可以匹配发送方和接收方之间的通信速率。
2.2错误检测和过滤功能
XIX提供的10M MAC控制器不处理接收到的错误数据,只给出数据CRC32是否校验正确。为了在物理层提供可靠的传输,需要在此基础上增加接收错误帧的过滤模块。
块,如果接收到的是校验错误帧,则需过滤掉该帧。本文采用基于双端口数据RAM 以及帧信息FIFO 的存储机制实现错误包的过滤,如图3 所示。接收存储控制模块若检测到万兆MAC IP 接收端口收到的数据rx_valid( rx_data_valid_o! = 8’h0) 有效,则把该数据缓存到双口数据RAM 中去。然后检测rx_valid 是否小于8 个时钟节拍,如果小于8 个时钟节拍,则不用判断rx_good_frame 以及rx_bad_frame,因为此时接收到的帧肯定错误( 小于万兆以太协议的最小64 byte) ,回到IDLE 状态。如果rx_valid 持续有效时钟大于8 个时钟节拍,则在帧尾检测是否有rx_good_frame 或者rx_bad_frame; 如果是bad 帧,不作处理回到IDLE 状态,如果是good 帧,则将该帧存放RAM 的起始地址和帧长信息写入帧信息FIFO,并返回IDLE状态。如果在帧尾没有检测到good 或者bad 信息,则等待; 若等到good 信息则把该帧长以及起始地址写入帧信息FIFO,并返回IDLE 状态,若等到bad 信息则直接回到IDLE 状态,其状态机如图4 所示。
读取控制模块若检测到帧信息FIFO 有数据,则表示双口数据RAM 中已经存储了正确的以太帧,从帧信息FIFO 中获取接收到帧的地址与长度,并把接收到的数据存储到用户控制端口的接收FIFO 中。由于采用存储校验机制,因此接收端相对发送端有一定的延迟,最大延迟为最长以太帧的存储时间。
2. 3 流量控制模块以及接收FIFO 缓冲区深度设计 为了解决发送FPGA 与接收FPGA 通信速率的不匹配,需要在MAC 层增加流控功能,即当接收FIFO 裕量小于预设的安全值,向发送方发送暂停( Pause) 帧,告知发送方停止发送数据一段时间。发送方接收到暂停帧以后,停止数据的发送,若暂停期间没有接收到新的Pause 帧,则继续本次数据通信,若暂停期间接收到新的暂停帧,则从当前时刻增加新的暂停时间。
3 系统性能测试
在Xilinx 公司的ISE 开发环境中进行代码综合、映射及布局布线,综合结果测试表明,本设计的工作频率可以达到156. 25 MHz。通过快写慢读操作来验证流控模块,如图7 所示。最终实验结果表明能正常过滤错误以太包,并确保通信速率达到了10 Gbit /s。用复位来模拟掉电操作,最终测试结果表明该系统在正常传输过程中若发送端或接收端突然掉电,上电后双方仍能重新正常通信。
4 结论
本文实现了万兆MAC 层发送、接收、流控以及错误帧过滤的设计。并且使用Xilinx 的Virtex-6 系列FPGA器件进行布局布线后进行板级测试验证。结果表明,系统可以在156. 25 MHz 时钟频率正常工作,接收和发送带宽均可接近10 Gbit /s。但随着社会的发展,人们对通信速率的要求越来越高,在不久的将来, 10 Gbit /s 的通信速率将不能满足人们的需求,所以对高速互联的研究将永无止境,下一步可以提高互联通信速率,进一步研究20 Gbit /s、40 Gbit /s 或更高速率的互联结构。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
2026 年浙江省职工养老金具体涨幅细则目前还没有对外公布,人社部、财政部尚未出台全国统一的职工养老金上调...浏览全文>>
-
2026 年全国城乡居民基础养老金最低标准上调 20 元,调整至每月 163 元,安徽省会在国家最低标准基础上叠...浏览全文>>
-
目前 2026 年安徽省企业退休、机关事业单位退休人员的养老金上调方案还没有正式公布,人社部以及财政部暂未...浏览全文>>
-
2026 年安徽省企业和机关事业单位退休人员养老金,目前还没有收到人社部、财政部下发的全国统一上调文件,暂...浏览全文>>
-
当前 2026 年安徽省企业退休和机关事业单位退休人员养老金上调方案暂未对外公布,人社部、财政部还没有下发...浏览全文>>
-
2026 年职工养老金年度上调方案还没有人社部、财政部的统一文件,暂时没有启动调整,也就不存在职工养老金补...浏览全文>>
-
目前安徽省官方还没有发布 2026 年统一的退休中人养老金集中补发时间通知,机关事业单位退休中人养老金实行...浏览全文>>
-
2026 年安徽省企业退休人员养老金,目前人社部、财政部还没有发布全国统一的上调文件,年度调待政策暂未落地...浏览全文>>
-
现阶段安徽省还没有发布全省统一的养老金补发时间,不同类型养老金的补发安排相互独立。人社部、财政部尚未出...浏览全文>>
-
截至目前,人社部、财政部还没有发布 2026 年职工养老金全国统一上调文件,安徽省也暂未出台对应的企业、机...浏览全文>>
- 2026年安徽养老金调整最新消息城乡居民基础养老金提标政策推进落实
- 2026安徽企业退休养老金补发情况职工养老与城乡居民养老区分说明
- 2026安徽养老金上调通知文件职工养老和城乡居民养老区分
- 2026年福建省养老金上调方案是什么城乡居民基础养老金最低标准提至每月163元
- 2026年福建补发企业退休养老金情况如何等待国家调待方案启动补发
- 2026年福建省养老金发放情况待遇动态解读
- 2026年福建养老金啥时候补发政策进展解读
- 2026年江西养老金标准是多少呢城乡居民与职工养老标准分开核算
- 2026年江西养老金今年涨多少呢城乡居民基础养老金最低标准每月增加20元
- 2026年江西退休人员养老金上调情况如何城乡居民基础养老金最低标准上调至每月163元
- 2026安徽居民养老金每月领取标准城乡居民基础养老金调整说明
- 2026年安徽今年养老金调整的最新消息是什么城乡居民基础养老金提标稳步推进
- 2026安徽今年养老金上调多少职工养老城乡居民养老分开解读
- 2026年安徽农民养老金上调多少呢城乡居民基础养老金提标落地推进
- 2026年安徽淮南退休养老金上调方案城乡居民基础养老金最低标准上调20元
- 2026年企业退休养老金上调安徽情况如何等待国家统一方案部署
- 2026年福建城乡居民基础养老金标准是什么国家最低标准上调至每月163元
- 2026福建厦门养老金上调最新消息厦门日报相关报道解读
- 2026年福建退休养老金上调最新消息是什么两类养老待遇分开推进
- 2026年福建养老金上调最新通知是什么城乡居民基础养老金最低标准提高至每月163元
- 最新消息2026年浙江养老金涨幅细则是什么职工养老金暂无全国调待文件城乡居民基础养老金最低标准提至163元
- 2026安徽养老金调整方案最新消息职工与城乡居民养老政策区分
- 2026年安徽省养老金补发在什么时间分类型分批次有序落实
- 2026年福建养老金到账通知是什么待遇发放分类型有序推进
- 2026年福建泉州养老金上调最新消息是什么分两类待遇逐步落实
- 2026年福建养老金发放时间表是什么各地发放节点不统一
- 2026年江西养老金能领多少钱一个月待遇标准解读
- 2026年江西省今年养老金上调公布了吗政策进展解读
- 2026年江西省养老金什么时候补发到位政策进展解读
- 2026年江西南昌退休养老金补发时间是什么时候待省级方案落地后开展补发
- 2026年江西省养老金的补发什么时候发放分两类待遇按流程推进
- 2026年山东养老金标准是多少呢待遇政策解读
- 2026年养老金上涨公布了吗城乡居民基础养老金最低标准上调方案已明确
- 2026年山东养老金会涨吗政策进展解读
- 2026年山东养老金上调最新消息威海是什么城乡居民基础养老金最低标准提至每月163元
- 2026年山东聊城养老金上调最新消息政策动态解读
- 2026年山东养老金上调官方公布了吗职工调待政策暂未官宣
- 2026年山东养老金补发时间节点是什么城乡居民基础养老金按各地经办节奏推进发放
- 2026年山东养老金补发时间表最新是什么政策进展解读
- 2026年河南养老金标准是多少呢待遇政策解读
