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