1. 程式人生 > >轉發:FPGA基礎知識(十)DMA與AXI4匯流排

轉發:FPGA基礎知識(十)DMA與AXI4匯流排

目的:介紹DMA與AXI匯流排的相關知識,以便理解與應用。

目錄

一、三種類型的AXI匯流排

 二、不同型別的DMA

2.1 GPIO

2.2 PL general purpose AXI

2.3 GP AXI utlilizing PS DMAC

 2.4 High performance w/DMA

 2.5 ACP w/DMA

2.6 幾種DMA的總結

三、DMA基礎知識

3.1 DMAC為DMA控制器,

3.2 PL based DMA

3.3 PS與PL之間的AXI HP介面

四、AXI匯流排知識

(一)AXI匯流排是什麼?

    (二)AXI4的優勢

    (三)AXI4的工作模式

    1.握手機制

2.axi的工作模式:

    A.讀操作:

    B.寫操作:

    3.axis工作模式


一、三種類型的AXI匯流排

 二、不同型別的DMA

2.1 GPIO

2.2 PL general purpose AXI

2.3 GP AXI utlilizing PS DMAC

 2.4 High performance w/DMA

 2.5 ACP w/DMA

2.6 幾種DMA的總結

 

三、DMA基礎知識

搭建系統中有一個重要的因素是DMA:(Direct Memory Access),即直接儲存器存取,是一種快速傳送資料的機制。資料傳遞可以從適配卡到記憶體,從記憶體到適配卡或從一段記憶體到另一段記憶體。

 

  • AXI4:主要面向高效能地址對映通訊的需求;
  • AXI4-Lite:是一個簡單地吞吐量地址對映性通訊匯流排;
  • AXI4-Stream:面向高速流資料傳輸;
  • AXI4匯流排分為主、從兩端,兩者間可以連續的進行通訊。
  • GP master interface與GP slave interface之間有什麼區別?主與從的區別,一個發起一個接收。

3.1 DMAC為DMA控制器,

3.2 PL based DMA

可以將資料傳到DDR和OCM

3.3 PS與PL之間的AXI HP介面

可以直接將data傳輸到memory

四、AXI匯流排知識

以下內容轉自:https://www.cnblogs.com/lifan3a/articles/4682464.html

(一)AXI匯流排是什麼?

    AXI是ARM 1996年提出的微控制器匯流排家族AMBA中的一部分。AXI的第一個版本出現在AMBA3.0,釋出於2003年。當前的最新的版本釋出於2010年。

    AXI4:主要面向高效能地址對映通訊的需求;

    AXI4-Lite:是一個簡單地吞吐量地址對映性通訊匯流排;

    AXI4-Stream:面向高速流資料傳輸;

    AXI4匯流排分為主、從兩端,兩者間可以連續的進行通訊。

    ISE從12.3版本,Virtex6,Spartan6晶片開始對AXI4匯流排提供支援,並且隨著Xilinx與ARM的合作面逐漸展開而得到大力推廣。

    (二)AXI4的優勢

    1.通過統一的AXI介面,開發者為開發ip core只需要學習一種協議即可;

    2.AXI4是面向地址對映的介面,允許最大256輪的資料突發傳輸;

    3.AXI4-Lite是一個輕量級的地址對映單次傳輸介面,佔用很少的邏輯單元;

    4.AXI4-Stream去掉了地址項,允許無限制的資料突發傳輸規模;

    NetFPGA10G採用了AXI4系列匯流排架構,而Xilinx從Virtex6,Spartan6才開始支援AXI4。因此斯坦福的開發人員對在Virtex6上編譯出的帶有AXI4匯流排的ngc檔案進行了修改載入到NetFPGA10G的ipcore中,使之騙過ISE,繼續網表對映流程。

    NetFPGA10G主要使用了其中的輕量級AXI4-lite(後文簡寫為axi)以及AXI4-stream(後文簡寫為axis)兩者。前者用於CPU與ip core之間的通訊;後者用於各ip core之間進行高速資料傳輸。如果將整個構架分為控制層面與資料層面,則axi主要負責控制層面,axis主要負責資料層面。

     本文後續內容主要對輕量級axi以及axis匯流排進行介紹,如需AXI4整體匯流排通訊模式,請參看ARM AXI4 Specification,  Xilinx UG761 AXI Reference Guide.

    (三)AXI4的工作模式

    1.握手機制

     AXI4所採用的是一種READY,VALID握手通訊機制,即主從模組進行資料通訊前,新根據操作對各所用到的資料、地址通道進行握手。主要操作包括傳輸傳送者A等到傳輸接受者B的READY訊號後,A將資料與VALID訊號同時傳送給B。如下圖所示:

2.axi的工作模式:

    axi匯流排分為五個通道:

  • 讀地址通道,包含ARVALID, ARADDR, ARREADY訊號;
  • 寫地址通道,包含AWVALID,AWADDR, AWREADY訊號;
  • 讀資料通道,包含RVALID, RDATA, RREADY, RRESP訊號;
  • 寫資料通道,包含WVALID, WDATA,WSTRB, WREADY訊號;
  • 寫應答通道,包含BVALID, BRESP, BREADY訊號;
  • 系統通道,包含:ACLK,ARESETN訊號;

    其中ACLK為axi匯流排時鐘,ARESETN是axi匯流排復位訊號,低電平有效;讀寫資料與讀寫地址類訊號寬度都為32bit;READY與VALID是對應的通道握手訊號;WSTRB訊號為1的bit對應WDATA有效資料位元組,WSTRB寬度是32bit/8=4bit;BRESP與RRESP分別為寫回應訊號,讀迴應訊號,寬度都為2bit,‘h0代表成功,其他為錯誤。

    A.讀操作:

    順序為主與從進行讀地址通道握手並傳輸地址內容,然後在讀資料通道握手並傳輸所讀內容以及讀取操作的迴應,時鐘上升沿有效。如圖所示:

 

    B.寫操作:

    順序為主與從進行寫地址通道握手並傳輸地址內容,然後在寫資料通道握手並傳輸所讀內容,最後再寫回應通道握手,並傳輸寫回應資料,時鐘上升沿有效。如圖所示:

    3.axis工作模式

    axis分為:

  • tready訊號:從告訴主做好傳輸準備;
  • tvalid訊號:主告訴從資料傳輸有效;
  • tlast訊號:主告訴從該次傳輸為突發傳輸結尾;
  • tdata訊號:資料,可選寬度32,64,128,256bit
  • tstrb訊號:為1的bit為對應tdata有效位元組,寬度為tdata/8
  • tuser訊號  :使用者定義訊號,寬度為128bit
  • aclk訊號:匯流排時鐘,上升沿有效;
  • aresetn訊號:匯流排復位,低電平有效;

    通訊時序如圖所示:

    axi與axis是AXI4匯流排中通訊複雜度較低的兩條匯流排,最大開發難度存在於axi的控制平面向axis的資料平面下發引數時,由於axi與axis時鐘頻率不同而產生的跨時鐘域資料傳輸問題。

AXI-Lite具有輕量級,結構簡單的特點,適合小批量資料、簡單控制場合。不支援批量傳輸,讀寫時一次只能讀寫一個字(32bit)。

AXI4介面和AXI-Lite差不多,只是增加了一項功能就是批量傳輸,可以連續對一片地址進行一次性讀寫。