资源描述:
《基于fpga实现的pcie协议的dma读写模块》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、您的论文得到两院院士关注博士论坛文章编号:1008-0570(2010)10-2-0007-03基于FPGA实现的PCIE协议的DMA读写模块TheImplementationofDMAReadingandWritingModuleonFPGABasedonPCIExpressProtocol(北京理工大学雷达技术研究所)汪精华胡善清龙腾WANGJing-huaHUShan-qingLONGTeng摘要:PCIExpress协议由于其高速串行、系统拓扑简单等特点被广泛用于各种领域,尤其是在信号处理领域。X
2、ilinx公司的Virtex5的LXT系列和SXT系列的FPGA集成了一个可用于8XPCIExpress传输的Endpoint硬核。本文介绍了一种在PCIExpress硬核的基础上实现DMA读写的方法,在PCIExpress单字读写的基础上实现了DMA读写。基于此方法实现的FPGA模块大大提高了RC与EP之间的数据传输带宽,在大带宽的需求领域中有广泛的应用。关键词:FPGA;PCIExpress;DMA读写中图分类号:TP391.7文献标识码:AAbstract:ThePCIExpressprotocol
3、hasbeenappliedinmoreandmorefieldsbecauseofitsserialhigh-speedcharacteristicandsimplesystemtopology,especiallyinsignalprocessingfield.TheLXTseriesandSXTseriesofFPGAVirtex5,madebyXilinxCom-技pany,haveintegratedanEndpointhardcoreonthem,whichcanbeusedfor8XPCIE
4、xpresstransform.ThispaperintroducesamethodtoimplementDMAreadingandwritingonPCIExpresshardcore,inthebasisofPCIExpresssignal-wordreadingand术writing.Withthismethod,theFPGAmodulehasgreatlyimprovedthedatatransformbandwidthbetweenRCandEP.AndItcanbeusedwidelyint
5、hefieldoflargebandwidthrequirement.创Keywords:FPGA;PCIExpress;DMARead;DMAWrite新使用此硬核实现PCIEDMA读写需要在硬核以上封装一1引言个应用(application),此应用包含TX逻辑及状态机,RX逻辑及状PCIExpress(简称PCIE)总线技术是取代PCI的第三代I/O态机以及中断逻辑。如下图所示。技术,也称为3GIO。PCIExpress总线是为将来的计算机和通讯平台定义的一种高性能、通用I/O互连总线。与PCI总线
6、相比,PCIExpress总线主要有下面的技术优势:1)是串行总线,进行点对点传输,每个传输通道独享带宽。2)支持双向传输模式和数据分通道传输模式,支持x1,x4,x8,x16等模式。x1单向传输带宽即可达到250MB/s,双向传输带宽更能够达到500MB/s。3)充分利用先进的点到点互连、基于交换的技术和基于包的协议来实现新的总线性能和特征。图1设计流程图4)对PCI总线具有良好的继承性,可以保持软件的继承和各个部分的作用如下:可靠性。1)EndpointforPCIE:FPGA内的硬核,对外负责与其他
7、5)充分利用先进的点到点互连,降低了系统硬件平台设计PCIE设备协议通信对内与TX、RX模块进行64bit并行与高速的复杂性和难度,从而大大降低了系统的开发制造设计成本,极串行的转换。大地提高系统的性价比和鲁棒性。2)EP_TX:负责写操作(DMA&单字)状态机以及读操作中存本文将介绍一种基于PCIE协议的DMA传输方法,使用4X储器请求状态机的实现并将TLP中的包头和数据打包,以64bit的传输模式,应用于Xilinx公司的FPGA-XC5LX50T。并行结构传输给硬核。3)EP_RX:负责读操作接收完
8、成数据包的状态机的实现以2FPGA内置PCIE硬核特点及上位机单字读写FPGA的状态机的实现。PCIE硬核主要提供用户3个主要功能:单字读写功能、4)EP_MEM:映射为PCIE空间的几个BAR地址空间。DMA读写功能和中断功能。其中,单字读写可以包含在DMA读5)PIO_INT:一次读写DMA结束后FPGA向上位机启动一写中,当DMA读写中的数据长度寄存器设置为1个32bit时,操个MSI消息中断或者虚拟INTx中断。作就变