在Vivado中使用AXI DMA


參考鏈接:http://www.fpgadeveloper.com/2014/08/using-the-axi-dma-in-vivado.html

                  http://www.fpgadeveloper.com/2017/10/using-axi-dma-in-vivado-reloaded.html

什么是DMA?

DMA代表直接內存訪問,而DMA引擎使您可以將數據從系統的一部分傳輸到另一部分。DMA的最簡單用法是將數據從內存的一部分傳輸到另一部分,但是DMA引擎可用於將數據從任何數據生成器(例如ADC)傳輸到內存,或從內存傳輸到任何內存數據使用者(例如DAC)。

教程概述

在此設計中,我們將使用DMA將數據從內存傳輸到IP塊,然后再傳輸回內存。原則上,IP塊可以是任何類型的數據生產者/消費者,例如ADC / DAC FMC,但是在本教程中,我們將使用簡單的FIFO創建環回。之后,您將可以中斷循環並插入您喜歡的任何自定義IP。

 

上面的框圖說明了我們將創建的設計。處理器和DDR內存控制器包含在Zynq PS中。AXI DMA和AXI數據FIFO在Zynq PL中實現。AXI-lite總線允許處理器與AXI DMA通信以建立,啟動和監視數據傳輸。AXI_MM2S和AXI_S2MM是存儲器映射的AXI4總線,並提供對DDR存儲器的DMA訪問。AXIS_MM2S和AXIS_S2MM是AXI4流總線,它提供和接收連續的數據流,而沒有地址。

  • MM2S代表 (memory-mapped to stream),而S2MM代表 (stream to memory-mapped) 。
  • 使用Scatter-Gather時,在DMA和內存控制器之間有一條額外的AXI總線。為了簡單起見,將其保留在圖中。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM