1. 程式人生 > >xilinx DMA IP核(一) —— 文檔閱讀

xilinx DMA IP核(一) —— 文檔閱讀

p s 傳輸 rect 圖片 -a wid width 清除 延遲

  本筆記不記錄DMA的Scatter/Gather特性。DMA上有三種總線:AXI4-LIte(對寄存器進行配置),AXI4-Memory Map(用於與內存交互)和AXI4 Stream(用於與外設交互)。在寄存器模式下,寄存器分為兩部分:MM2S和S2MM,每個部分包括Control Register, Status Register, Source Address, 和Transfer Length四個寄存器部分。

表:DMA在Direct Register模式下的Register Address Map

技術分享圖片

技術分享圖片

其中Soure Addresss和Destation Address指的是內存地址。

  下圖是控制寄存器MM2S_DMACR,bit0用來控制DMA的開啟和關閉。

技術分享圖片

圖:MM2S_DMACR

技術分享圖片

圖:控制寄存器的bit0詳細介紹

該控制寄存器的第12,13和14bit是有關中斷設置的,分別是完成中斷,延遲中斷和錯誤中斷。

表:控制寄存器有關中斷的bit位

技術分享圖片

  下一個比較重要的寄存為狀態寄存器MM2S_DMASR,如下圖所示。

技術分享圖片

圖:DMA的狀態寄存器(SR)

其中第12,13和14bit位表示中斷的狀態,寫1可以清除中斷。從表格可以看出,這三個寄存器分別與控制寄存器中的三個中斷一一對應的。

表:DMA狀態寄存器中用來表示中斷狀態的bit位

技術分享圖片

  另外兩個寄存器MM2S_SA和MM2S_LENGTH分別表示地址和長度,如下圖所示。

技術分享圖片

技術分享圖片

在DMA的IP設置時,會設置Width of Buffer Length Register(8-23),默認的是14。這裏設置的就是上面的MM2S_LENGTH Register,如果設置為23,那麽最大傳輸就是2^23=8388608byte。

xilinx DMA IP核(一) —— 文檔閱讀