微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > 基于FPGA的高速串行交换模块实现方法研究

基于FPGA的高速串行交换模块实现方法研究

时间:11-09 来源:互联网 点击:
4 交换模块实现的关键技术

在此交换模块中,关键技术集中在PCIE的DMA实现上,本节将讨论存储器写模式下的TLP结构以及基于FPGA实现的PCIE的DMA写操作核心状态机的设计与实现。

4.1 TLP结构简介

PCIE设备之间以数据包形式传送信息,最主要类型的数据包是处理层数据包TLP。其包格式如图5。



事务是在PCIE请求者和完成者之间进行的操作,包括存储器事务、IO事务、配置事务和消息事务。本文讨论的DMA读写操作是针对存储器空间的操作,存储器写操作TLP头的格式如图6。



4.2 PCIE的DMA写操作的设计与实现

PCIE的DMA写操作实现的主要方法是将TLP包头中的各个字段正确填充,并将数据按照64 bit或者32 bit并行放在TLP包头后,按照64 bit或者32 bit并行传输给PCIE硬核,由硬核以PCIE协议串行传输给其他设备。PCIE的写操作封装在TX模块的状态机中。在本设计中规定一次DMA写操作分为65 536次包传输,每次包传输的最大载荷为128 B,一次写操作的传输数据为8 MB。其状态机转换模型如图7(CPLD指返回完成包)。



实际上FPGA在PCIE硬核中实现了8个TLP存储空间,因此当发送模块将8个以上的TLP包传输给硬核后,硬核可能会堵塞,因此发送模块与硬核之间的交互非常必要。

5 测试结果

此测试包括3种模式。

(1)单纯测试4路PCI Express的DMA上传以及下传速度。

(2)数据从RocketIO接口以2 bit自定义光纤协议与4XPCI Express协议进行交换。

(3)数据从Infiniband接口以4XRapidIO协议与4XPCI Express协议进行交换。

具体结果见表1。



本文分析了3种应用比较广泛的系统互联协议,并给出在FPGA内部实现3种协议交换的技术特点。详细描述了多协议交换模块的系统结构以及实现原理。

本文的创新点在于通过FPGA的方式实现了多种主流高速串行协议的转换。通过将各种协议的端口独立化,简化了协议转化工作,使整个模块更易于更新维护。在FPGA提供的PCIE硬核的基础上构建了用户层的封装并实现了DMA数据传输。该交换模块已在某雷达信号存储与回放系统中得到应用,带宽是传统存储带宽的2~3倍。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top