ZYNQ學習筆記——SDK系列DMA接口設計

簡介

ZYNQ的優勢在於ARM+FPGA的這種體系結構,那麼在這種體系結構中,最關鍵的無疑是PS端與PL端的數據交互。
通常情況下要將外設數據讀入內存或將內存傳送到外設都會通過 CPU 控制去完成,有查詢或中斷兩種方式實現。如果設計者追求產品執行效率,中斷與查詢相比,雖說提高了CPU利用率,但是從效率上來說還不是最完美的選擇。DMA的出現完美解決了此問題。
DMA(Direct Memory Access,直接存儲器訪問)是計算機科學中的一種內存訪問技術。它允許某些計算機內部的硬件子系統可以獨立地直接讀寫系統內存,而不需中央處理器(CPU)介入處理。對於批量傳送數據的情況,採用 DMA 方式可解決效率與速度問題,CPU 只需要提供地址和長度給 DMA,DMA 即可接管總線,訪問內存,等 DMA 完成工作後,告知 CPU,交出總線控制權。
ZYNQ 提供了兩種 DMA,一種是集成在 PS 中的硬核 DMA,另一種是 PL 中使用的軟核 AXI DMA IP。今天軟核AXI DMA IPJ進行環路測試實驗,主要需要的IP核主要有AXI DMA、AXI Stream Data FIFO。

IP(接口)用途介紹

  1. AXI DMA
    AXI DMA 提供 3 種操作模式
    (1)Direct Register 模式:Direct Register 模式提供了一種配置,用於在 MM2S 和S2MM 通道上執行簡單的 DMA 傳輸;
    (2)Scatter/Gather 模式:允許在單個 DMA 事務中將數據傳輸到多個存儲區域或從多個存儲區域傳輸數據。它相當於將多個 Simple DMA 請求鏈接在一起。SGDMA 允許應用程序在內存中定義事務列表,硬件將在應用程序沒有進一步干預的情況下處理這些事務。在此期間,應用程序可以繼續添加更多工作以保持硬件工作。用戶可以通過輪詢或中斷來檢查事務是否完成。
    DMA 的框圖與IP核配置界面如下圖所示:
    在這裏插入圖片描述在這裏插入圖片描述
  2. AXI Stream Data FIFO
    AXI Stream Data FIFOIP核配置界面如下圖所示:
    在這裏插入圖片描述

IP互連

各個IP的用途介紹之後,接下來看看這些IP之間是如何連線的呢?請繼續看下文設計框圖:
在這裏插入圖片描述
最後附上一張實際中Vivado_17.4工程DMA環路測試接口之間連接圖,具體如下圖所示:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章