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