你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

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

发布者:jackzhang 时间:2010-06-27 19:14:32

汪精华,胡善清,龙 腾 时间:2010年06月21日 来源:电子技术应用2010年第5期

摘  要: 采用Xilinx公司的Virtex-5系列FPGA设计了一个用于多种高速串行协议的数据交换模块,并解决了该模块实现中的关键问题。该交换模块实现4X模式RapidIO协议与4X模式PCI Express协议之间的数据交换,以及自定义光纤协议与4X模式PCI Express协议之间的数据交换,实现了单字读写以及DMA操作,并提供高速稳定的传输带宽。
关键词: FPGA;RapidIO;PCIE;光纤;数据交换

    随着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.

最新课程

  • 深入浅出玩儿转FPGA

    本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念

  • 从零开始大战FPGA基础篇

    本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“

  • Verilog基础及典型数字

    课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了