《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 设计应用 > 基于FPGA实现的高速串行交换模块实现方法研究
基于FPGA实现的高速串行交换模块实现方法研究
来源:电子技术应用2010年第5期
汪精华,胡善清,龙 腾
北京理工大学 雷达技术研究所,北京100081
摘要: 采用Xlinx公司的Virtex5系列FPGA设计了一个用于多种高速串行协议的数据交换模块,并解决了该模块实现中的关键问题。该交换模块实现4X模式RapidIO协议与4X模式PCI Express协议之间的数据交换,以及自定义光纤协议与4X模式PCI Express协议之间的数据交换,实现了单字读写以及DMA操作,并提供高速稳定的传输带宽。
中图分类号: TP391.7
文献标识码: A
Research of high speed serial transmission switch module based on FPGA
WANG Jing Hua,HU Shan Qing,LONG Teng
Radar Research Lab, Beijing Institute of Technology, Beijing 100081,China
Abstract: This paper describes a method which can construct a multiple high speed serial protocol switch module on FPGA from Xilinx’sVirtex5 series.This module supports data exchange between 4 lane RapidIO and 4 lane PCI Express protocol and data exchange between 4 lane fibre and 4 lane PCI Express.Singe word reading and writing operations have been implemented in this module which also supports stable DMA transmission bandwidth.
Key words : FPGA;RapidIO;PCI Express;fibre;data exchange

    随着FPGA应用范围的不断扩大以及对速度需求的不断提升,集成高速串行模块的FPGA已经应用于市场。以Xilinx的Virtex5系列为代表的集成GTPRocketIO模块的FPGA受到广泛关注。以XC5LX50T为例,这款FPGA集成了一个PCIE的Endpoint以及12个可以支持6 Gb/s以上的高速串行接口模块,支持串行RapidIO、fiber channel以及其他多种串行协议。
    高速串行接口是系统互联的核心,业内使用较多的是应用于嵌入式系统互联的串行RapidIO协议、应用于PCI系统互联的PCI Express协议以及存储中广泛使用的Fibre光纤协议。在数据采集存储应用中,多种接口的应用使得存储系统越来越复杂,然而针对某些特定的以磁盘为存储媒介的系统,PCI Express协议仍然占据优势。标准的数据采集存储系统结构图如图1。

    由图1可知,Fibre采集卡控制磁盘阵列的文件系统,PCIE转存卡接收数据采集设备的数据。2块板卡插在服务器提供的PCIE插槽上,通过PCIE协议交换数据。Fibre采集卡是成熟的硬件设备,而针对不同的数据采集设备只需要提供不同接口的PCIE转存卡。因此针对于应用最广泛的RapidIO和光纤接口协议,实现PCIExpress到RapidIO以及光纤协议的数据交换就非常有意义。
    本文以光纤存储为背景,用Xilinx公司的XC5LX50T实现4X模式串行RapidIO到4XPCIE的数据交换以及2X模式的光纤接口到4X模式的PCIE的数据交换。本文给出了整个交换模块的原理框图并解决了RocketIO模块设计上的关键问题。
1 XC5LX50T及RockerIO模块的主要特点
    XC5LX50T是Xilinx稳定可靠的第五代FPGA Virtex-5中最有代表性的一款芯片,其内部集成一个可以用于Endpoint的PCIE硬核,该硬核可以支持1X模式、4X模式以及8X模式,并且遵循PCI Express Base Specification1.1协议,每一路的数据率为2.5 Gb/s,总的最大理论带宽为2 Gb/s(8 B编码后的带宽)。

    XC5LX50T提供了12个用于高速串行的RocketIO收发器,不同于前几代的产品,XC5LX50T的收发器可以支持6 Gb/s以上的数据率而且设计更为简单,工作更加稳定,其低功耗特性更加理想。RocketIO模块可以支持串行RapidIO、xaui、fibre channel等标准协议。由于性能稳定、传输带宽高等特点,串行RapidIO已经成为嵌入式系统中最理想的互联协议之一,尤其在军事以及国防这些对于高速互联需求日益迫切的领域中,串行RapidIO逐渐成为最为主流的数据交换协议。
    光纤由于其带宽高、传输稳定以及接口简单等特点,被广泛应用于很多领域,例如光线存储、系统互联。XC5LX50T的RocketIO提供自定义的光纤协议,最高支持3.125 Gb/s。
    有些领域中存在着将RapidIO协议的数据上传至有标准PCIE接口的服务器中进行处理的应用,也存在着将光纤接口的数据通过有PCIE标准协议的服务器存储到fibre channel协议的磁盘阵列中的应用。因此本文所设计的交换模块在嵌入式系统的应用中是十分必要的。
2 高速串行交换模块的基本功能
    图2为交换模块功能图。

    (1)4X串行RapidIO数据与4XPCI Express数据的交换。这种交换模式分为主动和被动2种,主动模式指数据通过RapidIO协议输入到交换模块中,经过交流耦合电路和协议转换FPGA以PCIE协议传输到另一模块。被动模式指数据通过PCIE协议输入到交换模块中,经过协议转换FPGA以串行RapidIO协议传输到另一模块。
    (2)2 bit光纤接口数据与4XPCI Exress数据的交换。这种交换模式同样分为主动和被动2种,主动模式指数据通过光纤接口输入到交换模块中,经过交流耦合电路以及协议转换FPGA以PCIE协议传输到另一模块。被动模式指数据通过PCIE协议输入到交换模块中,经过协议转换FPGA以自定义光纤协议通过光纤接口传输到另一模块。
3 高速串行交换模块的基本原理
3.1 RapidIO协议到PCIE协议的转换

    RapidIO协议到PCIE协议交换分为3个步骤:
    (1)根据串行RapidIO协议将打包数据解析;
    (2)将解析的数据缓存在乒乓使用的存储器中,可以使用片外ZBTSRAM也可以使用片内RAM资源;
    (3)数据根据PCIE协议规定的方式打包,并按照PCIE协议发送出去。
    RapidIO与PCIE交换原理图如图3。

3.2 光纤协议到PCIE协议的转换
    光纤协议使用的自定协议较RapidIO协议简单得多,因此实现原理也简单很多。从光纤协议到PCIE协议交换分为3个步骤:
    (1)根据光纤自定义协议将打包数据提取;
    (2)将解析的数据缓存在乒乓使用的存储器中,可以使用片外ZBTSRAM也可以使用片内RAM资源;
    (3)数据根据PCIE协议规定的方式打包,并按照PCIE协议发送出去。
    光纤与PCIE交换原理图见图4。

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倍。
参考文献
[1] BUDRUK R著.PCI Express系统体系结构标准教材[M].  田玉敏,王崧,张波,译.北京:电子工业出版社,2005.
[2] 马鸣锦,朱剑冰,何红旗,等.PCI、PCI-X和PCI Express的原理及体系结构[M].北京:清华大学出版社,2006.
[3] 闫振兴.基于FPGA的PCI Express接口的设计玉实现[D].北京:北京理工大学出版社,2009.
[4] PCI-SIG.PCI Express Base Specification Revision1.1[M]. 2003.
[5] Xilinx INC.LogiCoreTM IP EndPoint Block Plus v1.9 for  PCI Express Revision 9.0.2008.
[6] Xilinx INC.Virtex-5 FPGA RocketIO GTP Transceiver  Revision 1.4.2009.
[7] PADS-PowerLogic和PowerPCB使用教程[M].北京:电子工业出版社,2004.
[8] RapidIO嵌入式系统互联[M].北京:电子工业出版社,2006.

此内容为AET网站原创,未经授权禁止转载。