《基于fpga的pcie总线接口的dma控制器的设计-王之光.pdf》由会员分享,可在线阅读,更多相关《基于fpga的pcie总线接口的dma控制器的设计-王之光.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于FPGA的PCIe总线接口的DMA控制器的设计王之光,高清运(南开大学电子信息与光学工程学院天津市光电子薄膜器件与技术重点实验室,天津300350)摘要:采用Ahera公司FPGA提供的PCIe PHY IP和Synopsys公司提供的PCIe Core IP提出了一种PCIe总线接口的DMA控制器的实现方法,并搭建了4通道的PCIe传输系统。利用Synopsys VIP验证环境对系统进行了仿真验证,利用Ahera Stratix V EX系列FPGA搭建平台进行了实际传输验证,验证了数据读写的正确性,在进行DMA读写事务操作时总线带宽峰值分别达到了1 547 MBs和1 607 MBs,
2、能满足大部分实际应用中对数据传输的速率要求。关键词:PCIe;可编程逻辑阵列;直接存储器存取;IP中图分类号:TP274 文献标识码:A DOI:1016157jissn02587998172445中文引用格式:王之光,高清运基于FPGA的PCIe总线接口的DMA控制器的设计【J电子技术应用,2018,44(1):912,英文引用格式:Wang Zhiguang,Gao QingyunDesign of DMA controller of PCIe bus interface based on FPGAJApplication ofElectronic Technique,2018,44(1)
3、:912,Design of DMA controller of PCIe bus interface based on FPGAWang Zhiguang,Gao Qingyun(College of Electronic Information and Optical Engineering,Key Laboratory of Photoelectronic Thin Film Devices and Technology,Nankai University,Tianjin 300350,China)Abstract:A method to implement DMA controller
4、 of PCIe bus interface based on AItera FPGA PCIe PHY IP and Synopsys PCIeCore IP was proposed in this paperand a 4一Iane PCIe transmission system was buihedThe correctness of reading and writingdata WaS proved through the stimulation in Synopsys VIP environment and transfer verification in Ahera Stra
5、tix V EX series FPGAplatf01311髓e bandwidth of DMA read and DMA write can achieve 1 547 MBs and 1 607 MBs respectively弛e DMA controllercan satisfy the demands of data transfer rates in most practical applicationsKey words:PCIe;field programmable gate array(FPGA);direct memory access(DMA);IP0引言随着通信技术的
6、不断发展,对数据传输系统的速度与数据传送质量的要求也在不断提高。由Intel在2001年提出的第三代IO总线技术PCI Express总线技术,采用高速差分串行的方式进行数据传输,具有高带宽、高可靠性、高拓展性等优点,很好地弥补了PCI、PCI-X总线的不足【l_31。本文基于PCIe 20协议,利用Altera TransceiverPHY IP、Synopsys PCIe Core IP和AXI总线,提出了一种DMA控制器,并搭建了一个在FPGA端和PC之间的高速数据传输系统。实现了寄存器读写操作(单字读写)和DMA读写操作,并利用Synopsys VIP环境下进行的系统仿真和上位机软件进
7、行观察并验证了数据读写的正确性。1设计方案11基础模块111 Altera Stratix V GX系列FPGA与PCIe PHY IP本设计使用Stratix V GX系列下的5SGXEA7K2F40一C2N FPGA芯片14,该芯片内部集成了PCIe PHY IP硬电子技术应用2018年第44卷第1期核模块。PCIe PHY IP硬核包括三个部分,如图1,PHY IPCore for PCI Express(PIPE)集成了PCIe总线的物理层。Transceiver Reconfiguration Controller IP Core可以动态重新配置模拟参数。Transceiver PH
8、Y Reset Controller IP Core作为收发器的复位模块,确保了PCIe链路的初始化【5-61。A1tern PCIo PtlY lPTransceiverReconfigurationContr011er IP Core bK=:11 弋r PItY lP Core for PCIExpress(PlPE)7transee ivet PIYReset Contro儿cr LAlP Core rV图l Ahera PCIe PHY IP结构112 Synopsys IP与VIPVIP顾名思义就是验证IP(Verification IP),它为一些标准的接El提供标准的总线行为模
9、型71。Synopsys公司提供了PCIe总线的Controller IP,实现了PCIe总线数9万方数据据链路层和事务层的功能,并内置了DMA,同时也提供了针对PCIe总线的VIP,为PCIe总线提供了标准的总线行为模型,模拟了上位机的功能18。113 AXI总线AXI(Advanced eXtensible Interface)总线是一种高性能、高带宽、低延迟的总线协议,有一个显著的特点,地址,控制和数据通道是分开的,共有5个单向通道,分别为read address channel,write address channel,read datachannel,write data chan
10、nel,write response channel 191,减少了延时,提高了DMA的效率。12总体方案设计本设计采用的整体架构如图2所示,为Ahera PHYIP+Synopsys PCIe Core IP+AXI总线+Application。A1tera PcIe PIPE 1 r h Synopsys PcIe 吲mpAppl icat ionPHY IP r叫 Core IP弋夕图2设计架构为了利用Synopsys的PCIe VIP环境,采用了SynopsysPCIe Core IP。在PCIe事务层和应用侧之间采用了AXI总线接口,可以在以后的设计中进行方便的拓展和替换。应用侧设计
11、实现了PCIe DMA控制器的功能,并集成了两块RAM,一块大小为128 DW,用来存储寄存器读写的数据;另一块大小为512 DW,用来存储DMA读写的数据。2 DMA控制器的设计与实现21应用端DMA操作流程应用端发起的DMA操作流程如图3所示,最终DMA读操作实现的结果为将主机侧的数据以DMA的方式写入到应用端的内存中。DMA写操作实现的结果为将应用端的数据以DMA的方式写人到主机侧的内存中。图3为应用端发起的DMA操作具体的流程。、_ L-=:;矿谂:弋: 0f川rz):岫,罔3啦用端发起的DMA操竹:10 欢迎网上投稿WWWChinaAETtom(1)主机侧通过寄存器写的方式,将DMA
12、读写标志、DMA长度、DMA源和目的内存地址写入到应用端的寄存器中;(2)应用端中的Slave模块将这些命令发送给Master模块;(3)Master模块按照Synopsys PCIe Core IP自定义的Dbi总线的方式,再将这些命令传送给PCIe Core IP内部的寄存器;f4)PCIe Core IP接收DMA读写指令,并持续操作Master接口以实现后续操作;(5)当为DMA读时,PCIe Core IP的内置DMA从主机侧的“源内存地址”中读取到目标数据;当为DMA写时,PCIe Core IP的Master接口通过AXI总线以读的方式从“源内存地址”读取到目标数据;(6)当为D
13、MA读时,PCIe Core IP的Master获得DMA读取到的目标数据,并通过AXI总线,以写的方式写人到应用端的“目的内存地址”中;当为DMA写时,Master获得目标数据后,内置DMA将数据发送到主机侧的“目的内存地址”中;(7)当DMA操作完成,PCIe Core IP会通知应用端的中断模块;(8)应用端的中断模块会向主机侧提交中断。22应用端DMA控制状态机应用端只需将主机侧写入的DMA读写标志、DMA长度、DMA源和目的内存地址以及DMA启动信号写入到PCIe Core IP中的内部寄存器,并等待DMA操作的完成,给出中断信号。下面为应用端详细的DMA控制状态机,如图4所示,状态
14、机把DMA读操作和DMA写操作整合到了一起,减少了代码量。ENGINE ENABLE) (DMA CLEAR INTDMA TRANS SIZEDMA SARDMA INlSTATUSDMA WAI?fNT图4 DMA控制状态机(1)IDLEPHASE:空闲状态。当启动信号start flag有效时,跳转ENGINEENABLE状态:(2)ENGINEENABLE:判断DMA读写类型信号wrrdn_flg,当wr_rdn_flg为0,即为DMA读(PC到FPGA)时,电子技术应用2018年第44卷第1期薹薹川:二一万方数据使能DMA读引擎;当wr_rdn_flg为l,即为DMA写(FPGA到P
15、CI时,使能DMA写引擎;(3)DMA_TRANSSIzE:设置DMA数据传输长度,最多一次传输512 DW,最少一次传输l DW;(4)DMA_SAR:设置DMA操作源地址(当为DMA读时,源地址为主机端地址;当为DMA写时,源地址为应用端地址);(5)DMADAR:设置DMA操作目的地址(当为DMA读时,目的地址为应用端地址;当为DMA写时,目的地址为主机端地址);(6)DMADOORBELL:使能DMA操作门铃信号dma_strt,启动DMA操作;(7)DMA_WAIT_INT:等待DMA操作完成;(8)DMAINT_STATUS:读取DMA操作中断寄存器状态,当DMA操作完成信号dma
16、_done有效时,产生完成中断,并跳转DMACLEAR一NT状态;(9)DMACLEAR_INT:清除中断,回到IDLEPHASE状态,准备下一次DMA传输。3 DMA控制器功能验证31仿真验证在完成代码编写之后,在VIP环境下搭建仿真平台,使用Synopsys公司的仿真验证工具VCS进行功能测试,主要测试验证模块能否正确对寄存器读写和DMA读写产生正确的反应。从图5、图6中可以看到,写地址偏移为Ox40,写数据为32h8765432l;读地址偏移为Ox40,读数据为32h87654321,由此可判断寄存器读写正确。如图7所示,由dma_strt和dma_done信号可以看出为2次DMA传输,
17、由dmawrrdn可看出第一次为DMA读操作(RC端到APP侧),第二次为DMA写操作(APP侧到RC端)由dmabclen可看出当前DMA操作长度为2 000 Byte,即500 DW,slvrdata和slv_wdata信号较为密集的部分分别为2次DMA操作的数据,对比这两次数据,得知DMA操作正确。为了更加方便地比较结果,采取自动对比文件的方法,即把寄存器或DMA写的数据存放到一个文件中,再把寄存器或DMA读回的数据存放到另一个文件中,通过对比两个文件,判断寄存器和DMA传输是正确的。32 FPGA测试验证在仿真验证完成之后,进行FPGA测试验证,将硬件部分烧录到板卡的FPGA芯片后,通
18、过板卡的PCIe金手指插入到PC机的主板上,PC机重启后检测到PCIe硬件的插入,即可安装对应的PCIe驱动软件,利用上位机进行测试。上位机软件界面如图8所示,包括寄存器读写(Tar-get操作)和DMA读写(Master操作)测试模块。选择“Target”操作的“dual”模式,寄存器长度设置为118,因为前10个寄存器与DMA操作相关,可能会触发DMA操作,所以在软件中选择跳过。点击“启动测试”,数据将会被先从主机侧写到FPGA,再从FPGA读回到主机侧,比较两次寄存器操作的数据,即可判断寄存器操作的正确性。如图9所示,选择“Master”操作的“dual”模式,点击“memory”,即在
19、PC侧开辟一块内存存放数据,然后点击“启动测试”,数据先从PC写到FPGA的RAM中,接着再从FPGA回到PC,比较存放到PC内存的数据和从FPGA写回到PC的数据,即可判断DMA读写操作的正确性。根据DMA传输固定大小的数据的时间,可以计算出DMA读写速率,经过多次测试,DMA读写速率分别为电子技术应用2018年第44卷第1期万方数据微电子技术 Microelectronic Technology忙开-啦式设数据长度|囊曹地址写首t址数据懊牺项设I嚆环方式瞻环次数|l试模式It噍式陵耳映式嘎没懊式u叫腻设I敛鼍长度 j明t宴首建址 Ioxlooo耳曹地址 I口呻数据惧概晤r逸项设量瞳环方式
20、I簟疚 瞳珥日噍r一附晴怫式碑甬_=工作懊式面五i=菠粤睫芄面i广气黜模式FF:。q卅斜试i蹙量寄存薯长度吓i_艉侈尴址一啦鲁叠扳晤瑁rN对试谩寄存薯长度侈地址拼曩H羹板黜*Aegloter3 B8_Ik:Ox4e忙d:瞅如S一tRt口l舯。89wme:ox枷d:Ox札S呲眦引HcIkr 90,wdhe:Ox50侍-d:哺03一e佻一忙r3 91wtte:Ox51itld:Ox5Sulxl$mIRmI增rffi 92wte:Ox52reid:0xS2S洲I舢哪恬r 93帅e:nx53,删d53,S蝴osl。RoIk一 9c:哺忙d:晡t S一$oetlRoI幢p 95-柏c:口污5惜d:4蜗5
21、,SiliIlkIt叶 9删o:啦6佑d:嘣6S惝mellH09isterc 97_rk:n67哺d:Ox57S嗍-舳gistet: 98_d:OXS8时d:OxS8S-Regi|tcf99 he:m6,佗ud:c59Sq洲t引Rca-t 100埘le:O-Smred0XSIS I*mgJltef= 01WTIte:x袖rl-d:ObcSbS-Rc口Io忙r 102-nk:咕陀d:MSuiseiIReitstet= 103-l协:O,5d陀id:D瞒dS嘲mIIc口-Ier= 104讲he:m由寸:t6eS蝴cIFlegliler= 10S-mt:a,+5L mId:0xSlSu圳e*Aell
22、s忙r= 06,_rte:如6d陀d:Ox60SuiiellRegister。 107nhc:Oxl;1陀d:西嚆,SU噼ISCIIRc口ler。 1时_呐c:Ox52tead:哺己3一-。Rc口ttr: 189帅c:n埔3,d:nx61 3titRcI-cr= 10-帆:口54L md:OxG4SqeIRIkt4 t11,mc:蜥5佗d:O,畸5S嘲I*Re口IIter= 112-州te:Ox6B哺d:mmk sU蛳EIEIme91er,1 1】wrk:由墙,teed:0x67SIellR410ltf t14-rmc:晡0read:OxG8Sl*S:leglule卜 115刊I:O,嚆t m
23、id:0xsgS嘲II:KelIstcr= 1w=lle:O,而foId:晤-S一IRo口torl 17_rI怕:Ox$breed:O,唁bSc*Roglo*er- 8计I:ML他d:啉L Su seilRellstcr= 19t培:0xSdrlid:nxBdS一l。Ro口岫z 120刊k:嘣t陀id:啪tSc-m-kft 2he:O蚺t他t:B_斟sn*Regl忙r; 122-nt:tx7md:mc70SureI*Re01mto,= 12-tn:nK71resd:Ox71S嘲Self*lRe口lstel= 2Wdte:Ox,毛Yee41:x72S一I*RegiIter= 12S_r:Bx7q
24、old:8x738IReglsu:t: 128,wtite:nx7也rtid:Dx78喇clReItr 127nc:0X75把d:0x75S删SeIITingel T呲 Re刚slelt_ohgth=1t O(iea=0图8 Target(寄存器)测试Dmtnm 481,oIcnm 482Dk4A knm 4(13olcm484Ok4A-enm485OMA Ienm 486IDMA ieng小417Dk4At“口h0Dk4A tengm 489D-M Icnm 490Dmle日0th 491Dncngm 49aoIcn口嘶93Dncnm 494Ore,CA Itnm 49SDMAfn口-496
25、,Dnleng如柏7DMA leg血498o-“c口畸499Dh“Icn呻E口O羁9 Master(DMA)测试l 547 MBs和l 607 MBs。本设计采用的是PCIe Gen2、4通道,理论最大传输速率为2 000 MBs。分析代码得出可能由于应用端向PCIe Core IP写入和读取数据过程占用了一定的时间,另外驱动程序向DMA寄存器写入或读取参数也占用了一些时间,都会影响速率。4结语本文实现的基于FPGA的PCIe总线接口的DMA控制器是在Ahera PHY IP和Synopsys Core IP的基础上实现的,利用Synopsys VIP验证环境进行了功能仿真验证,并通过FPGA
26、进行了系统实测,达到了较高的传输速率,在Gen2、x4模式下,DMA读写操作的带宽分别为1 547 MBs和l 607 MBs,达到了预期的设计目标。参考文献【1】陈刚,张京,唐建一种基于FPGA的PCIe总线及其DMA的设计方法J兵工自动化,2014,33(5):7577【2张彪,宋红军,刘霖,等基于PCIE接口的高速数据传输系统设计【J】电子测量技术,2015,38(10):113117【3】NAMBIAR S O S,ABHYANKAR Y,CHANDRABADU SMigrating FPGA based PCI Express Genl design to Gen2C12 欢迎网上投
27、稿WWWChinaAETcornScSmScmnlStI8c-ISuI8l8ctSc“m-Suog_mt3I雌iifll“一mISqtmISc噼ISlStl8c啪I8oII,SIIIIIsc口Et噼ISc呻Sa8acoIhctISIellSISmISomISqcI8c晴filllSuccesse耐SqctS时teScctISISo睇eI80ce8Mtl瞎lllIIS1llil蛳慨dd件:bd懈0”蹴岫I2010 Intemational Conference on Computer and Communication Technology(ICCCTl2010【4】Ahera Corporat
28、ionStratix V GX FPGA development boardreference manualEBOLlwwwaheracom,2014【5】Ahera CorporationAhera Transceiver PHY IP Core UserGuideEBOLlwwwalteraeom,20166Ahera CorporationIP Compiler for PCI Express UserGuideEBOLwwwaheraCOB,2014【7】陈静基于ARM的USB2O-AHB总线桥IP的验证方法研究以及设计实现【D】成都:电子科技大学,2007【8】SynopsysDes
29、ignWare PCI Express VIP User ManualEBOLwwwsynopsyscomproductsdesignwaredocs20109】AMBA AXI and ACE Protocal SpecificationEB】wwwarmcom,2011(收稿日期:201706一01)作者简介:王之光(1994一),男,硕士研究生,主要研究方向:集成电路设计。高清运(1965一),通信作者,女,博士,副教授,主要研究方向:集成电路设计,E-mail:gaoqynankaieducn。电子技术应用2018年第44卷第1期竺髓薹耋鬣盲喜耋窖兽蔷蓦蓦器船l;滥嚣溢ij:fl鬻;|嚣l|i;|i蓦喜CCEtCCCCCEEtCttthhhhHhMhhhh99口g口口g口口rftrrfrrrfrtnaOD00O口“5;O口口口口口口口gqnnnnnnnnnnnnnno口o目“nno计科研时讲坷町啊竹州计时神计帅铀蛳蜘蛳酏蛳撕蛳蛳袖蛳椭口口口口口口口;lllliill戳il12,557t9O,23SE,B,nt66666777r7777r,04蛳嘶蛳嘶嘶蛳蛳蛳咻她蛳啪吨咻帆砜她弧nnnnnnnn4nnnnnnnRnc口teecceeccccec激董薹董萋潋i薹溢激堇堇擞DDDDDoDDDDDDoDDoDDD“雠雠啦址州岫岫咖棚m玑mm嚣鬈帅埘卅帅万方数据
限制150内