基于fpga的pcie总线接口的dma控制器的设计

基于fpga的pcie总线接口的dma控制器的设计

ID:20603087

大小:70.50 KB

页数:4页

时间:2018-10-14

上传者:U-991
基于fpga的pcie总线接口的dma控制器的设计_第1页
基于fpga的pcie总线接口的dma控制器的设计_第2页
基于fpga的pcie总线接口的dma控制器的设计_第3页
基于fpga的pcie总线接口的dma控制器的设计_第4页
资源描述:

《基于fpga的pcie总线接口的dma控制器的设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

基于FPGA的PCIe总线接口的DMA控制器的设计通信技术的不断发展,对数据传输系统的速度与数据传送质量的要求也在不断提高。由Intel在2001年提出的第三代I/O总线技术——PCIExpress总线技术,采用高速差分串行的方式进行数据传输,具有高带宽、高可靠性、高拓展性等优点,很好地弥补了PCI、PCI-X总线的不足。本文基于PCIe2.0协议,利用AlteraTransceiverPHYIP、SynopsysPCIeCoreIP和AXI总线,提出了一种DMA控制器,并搭建了一个在FPGA端和PC之间的高速数据传输系统。实现了寄存器读写操作(单字读写)和DMA读写操作,并利用SynopsysVIP环境不进行的系统仿真和上位机软件进行观察并验证了数据读写的正确性。1设计方案1.1基础模块1.1.1AlteraStratixVGX系列FPGA与PCIePHYIP本设计使用StratixVGX系列卜的5SGXEA7K2F40C2NFPGA芯片,该芯片内部集成了PCIePHYIP硬核模块。PCIePHYIP硬核包括三个部分,如阁1,PHYIPCoreforPCIExpress(PIPE)集成了PCIe总线的物理层。TransceiverReconfigurationControllerIPCore可以动态重新配置模拟参数。TransceiverPHYResetControllerIPCore作为收发器的复位模块,确保了PCIe链路的初始化。1.1.2SynopsysIP与VIPVIP顾名思义就是验证IP(VerificationIP),它为一些标准的接口提供标准的总线行为模型。Synopsys公司提供了PCIe总线的ControllerIP,实现了PCIe总线数据链路层和事务层的功能,并内置了DMA,同时也提供了针对PCIe总线的VIP,为PCIe总线提供了标准的总线行为模型,模拟了上位机的功能[8]。1.1.3AX■总线AXI(AdvancedextensibleInterface)总线是一种高性能、高带宽、低延迟的总线协议,有一个显著的特点,地址/控制和数据通道是分开的,共有5个单向通道,分别为readaddresschannel,writeaddresschannel,readdatachannel,writedatachannel,writeresponsechannel191,减少丫延时,提高了DMA的效率。1.2总体方案设计本设计采用的整体架构如阁2所示,为AlteraPHYIP+SynopsysPCIeCoreIP+AXI总线+Application。为了利用Synopsys的PCIeVIP环境,采用了SynopsysPCIeCoreIP。 在PCIe事务层和应用侧之间釆用了AXI总线接1_1,可以在以后的设计中进行方便的拓展和替换。应用侧设计实现丫PCIeDMA控制器的功能,并集成Y两块RAM,—块大小为128DW,用来存储寄存器读写的数据;另一块大小为512DW,用来存储DMA读写的数据。2DMA控制器的设计与实现2.1应用端DMA操作流程应用端发起的DMA操作流程如图3所示,最终DMA读操作实现的结果为将主机侧的数据以DMA的方式写入到应用端的内存中。DMA写操作实现的结果为将应用端的数据以DMA的方式写入到主机侧的内存中。图3为应用端发起的DMA操作具体的流程。(1)主机侧通过寄存器写的方式,将DMA读写标志、DMA长度、DMA源和目的内存地址写入到应用端的寄存器中;(2)应用端中的Slave模块将这些命令发送给Master模块;(3)Master模快按照SynopsysPCIeCoreIP自定义的Dbi总线的方式,再将这些命令传送给PCIeCoreIP内部的寄存器;(4)PCIeCoreIP接收DMA读写指令,并持续操作Master接口以实现后续操作:(5)当为DMA读时,PCIeCoreIP的内置DMA从主机侧的“源内存地址”中读取到目标数据;当为DMA写时,PCIeCoreIP的Master接口通过AXI总线以读的方式从u源内存地址”读取到0标数据;⑹当为DMA读吋,PCIeCoreIP的Master获得DMA读取到的S标数据,并通过AXI总线,以写的方式写入到应用端的“目的内存地址”中;当为DMA写时,Master获得FI标数据后,内置DMA将数据发送到主机侧的“A的内存地址”中;(7)当DMA操作完成,PCIeCoreIP会通知应用端的中断模块;(8)应用端的屮断模块会向主机侧提交屮断。2.2应用端DMA控制状态机应用端只需将主机侧写入的DMA读写标志、DMA长度、DMA源和目的内存地址以及DMA启动信号写入到PCIeCoreIP中的内部寄存器,并等待DMA操作的完成,给出中断信号。下面为应用端详细的DMA控制状态机,如图4所示,状态机把DMA读操作和DMA写操作整合到了一起,减少了代码量。 (1)IDLEPHASE:空闲状态。当启动信号startJlag有效时,跳转ENGINE_ENABLE状态;(2)ENGINE_ENABLE:判断DMA读写类型信号wr_rdn_flg,当wr_rdn_flg为0,即为DMA读(PC到FPGA)吋,使能DMA读引擎;当wr_rdn_flg为1,即为DMA写(FPGA到PC)时,使能DMA写引擎;(3)DMA_TRANS_SIZE:设置DMA数据传输长度,最多一次传输512DW,最少一次传输1DW;(4)DMA_SAR:设置DMA操作源地址(当为DMA读时,源地址为主机端地址;当为dkTa写时,源地址为应用端地址h(5)DMA_DAR:设置DMA操作R的地址(当为DMA读时,目的地址为应用端地址;五为DMA写时,目的地址为主机端地址);(6)DMA_DOORBELL:使能DMA操作门铃信号dma_strt,启动DMA操作;(7)DMA_WAIT_INT:等待DMA操作完成;(8)DMA_INT_STATUS:读取DMA操作中断寄存器状态,当DMA操作完成信号dma_done有效时,产生完成中断,并跳转DMA_CLEAR_INT状态;⑼DMA_CLEARJNT:清除中断,回到IDLEPHASE状态,准备下一次DMA传输。3DMA控制器功能验证3.1仿真验证在完成代码编写之后,在VIP环境下搭建仿真平台,使用Synopsys公司的仿真验证工具VCS进行功能测试,主要测试验证模块能否正确对寄存器读写和DMA读写产生正确的反应。从图5、图6中可以看到,写地址偏移为0x40,写数据为32’h87654321;读地址偏移为0x40,读数据为32’h87654321,由此可判断寄存器读写正确。如图7所示,由dma_strt和dma_done信号可以看出为2次DMA传输,由dmawrrdn可看出第一次为DMA读操作(RC端到APP侧),第二次为DMA写操作(APP侧到RC端)由dma_bc_len可看出当前DMA操作长度为2000Byte,即500DW,slv_rdata和slv_wdata信号较为密集的部分分别为2次DMA操作的数据,对比这两次数据,知DMA操作正确。为了更加方便地比较结果,采取自动对比文件的方法,即把寄存器或DMA写的数据存放到一个文件屮,再把寄存器或DMA读回的数据存放到另一个文件 中,通过对比两个文件,判断寄存器和DMA传输是正确的。3.2FPGA测试验证在仿真验证完成之后,进行FPGA测试验证,将硬件部分烧录到板卡的FPGA芯片后,通过板卡的PCIe金手指插入到PC机的主板上,PC机重启后检测到PCIe硬件的插入,即可安装对应的PCIe驱动软件,利用上位机进行测试。上位机软件界面如图8所示,包括寄存器读写(Target操作)和DMA读写(Master操作)测试模块。选择“Target”操作的“dual”模式,寄存器长度设置为118,因为前10个寄存器与DMA操作相关,可能会触发DMA操作,所以在软件屮选择跳过。点击“启动测试”,数据将会被先从主机侧写到FPGA,再从FPGA读回到主机侧,比较两次寄存器操作的数据,即可判断寄存器操作的正确性。如图9所示,选择“Master”操作的“dual”模式,点击“memory”,即在PC侧开辟-块内存存放数据,然后点击动测试”,数据先从PC写到FPGA的RAM屮,接着再从FPGA回到PC,比较存放到PC内存的数据和从FPGA写回到PC的数据,即可判断DMA读写操作的正确性。根据DMA传输阎定大小的数据的时间,可以计算出DMA读写速率,经过多次测试,DMA读写速率分别为1547MB/S和1607MB/S。木设计采用的是PCIeGen2、x4通道,理论最大传输速率为2000MB/s。分析代码得出可能由于应用端向PCIeCoreIP写入和读取数据过程占用了一定的时间,另外驱动程序向DMA寄存器写入或读取参数也占用了一些时间,都会影响速率。4结语本文实现的基于FPGA的PCIe总线接口的DMA控制器是在AlteraPHYIP和SynopsysCoreIP的基础上实现的,利用SynopsysVIP验证环境进行了功能仿真验证,并通过FPGA进行了系统实测,达到了较高的传输速率,在Gen2、x4模式下,DMA读写操作的带宽分别为1547MB/S和1607MB/S,达到了预期的设计目标。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭