基于Virtex-6 PCIE核的DMA控制器設(shè)計(jì)
總體方案設(shè)計(jì)
本文引用地址:http://2s4d.com/article/128747.htm應(yīng)用于PCIE總線的DMA方式有兩種:系統(tǒng)(system)DMA和總線主控(bus master)DMA。系統(tǒng)DMA比較少見,并且只有較少的北橋芯片和操作系統(tǒng)支持其應(yīng)用;總線主控DMA是PCIE系統(tǒng)目前為止最常用的控制方式。本文參考了Xilinx的應(yīng)用設(shè)計(jì):應(yīng)用于Virtex-6 FPGA PCIE核的DMA設(shè)計(jì)不完整,缺少數(shù)據(jù)FIFO,且復(fù)位后只能完成一次中斷的讀寫;應(yīng)用于Virtex-5 FPGA PCIE核的DMA設(shè)計(jì),可以實(shí)現(xiàn)ML555開發(fā)板上DDR2內(nèi)存與PC端內(nèi)存間數(shù)據(jù)交換。但應(yīng)用于Virtex-5和Virtex-6 FPGA的PCIE核用戶端口差別較大,故本文基于Virtex-6的設(shè)計(jì),借鑒Virtex-5的思想,實(shí)現(xiàn)塊式DMA的設(shè)計(jì)。
FPGA片上程序設(shè)計(jì)主要包括3部分:PCIE軟核,DMA控制器和DSP應(yīng)用。PCIE軟核通過(guò)Xilinx公司ISE 設(shè)計(jì)套件的CORE Generator軟件配置,該IP核集成了傳輸層(TL)、數(shù)據(jù)鏈路層(DLL)和物理層(PL)協(xié)議,其應(yīng)用層接口包括傳輸接口、配置接口和中斷接口等,用于PCIE核和DMA控制器之間的數(shù)據(jù)傳輸和寄存器配置;DSP核是用戶開發(fā)的應(yīng)用程序。本設(shè)計(jì)整體模塊結(jié)構(gòu)如圖1所示。
DMA控制器設(shè)計(jì)
本文DMA控制器結(jié)構(gòu)框圖如圖1所示,主要包括發(fā)射引擎、接收引擎、DMA控制/狀態(tài)寄存器、MSI中斷控制器和發(fā)射/接收FIFO。為描述方便,本文定義寫操作和發(fā)送(TX)為FPGA將數(shù)據(jù)發(fā)送至PC端存儲(chǔ)器;讀操作和接收(RX)為FPGA接收來(lái)自PC存儲(chǔ)器的數(shù)據(jù)。
評(píng)論