1. 程式人生 > 其它 >AXI4-full協議介紹

AXI4-full協議介紹

AXI4-full協議介紹

AXI4.0-full包含突發控制訊號,所以可以進行突發傳輸,在只指定一次地址後,可以一次傳輸多達256個數據(資料的寬度取決於頻寬)。主要用於往DDR或者OCM中寫入大量資料時使用。

訊號線詳細描述

下面訊號包含五個通道的所有訊號。其中每個通道都有其自己的雙向握手機制訊號線xxVALIDxxREADY,這倆訊號線的介紹,詳見AXI匯流排介紹。

  1. 全域性訊號
    1. ACLK 全域性時鐘訊號,在上升沿時對訊號取樣。所有的輸入訊號都通過上升沿採集,所有的輸出訊號都在上升沿時變化。
    2. ARESETn 全域性復位訊號,低電平有效。在復位期間,所有的xxVALID訊號必須復位為低電平。其他的訊號可以是任意值。
  2. 寫地址通道訊號
    1. 主機(master)控制的訊號
      1. AWID 交易識別符號,亂序時使用。初學者就先預設為0吧。
      2. AWADDR 地址訊號線,傳輸地址資訊。
      3. AWLEN 指定突發寫長度,Burst_Length = AxLEN[7:0] + 1。如要一次傳輸16個數據,那麼AWLEN=15.注意事項如下
        1. 突發事件不能跨越4KB地址邊界。即起始地址到結束地址(AWADDR + AWLEN * (WDATA位寬/4))都必須在0xxxxxx000-0xxxxxxFFF。也就是x代表的位必須一致。
        2. AWBURST型別為INCR時,支援1-256長度的傳送。
        3. AWBURST型別為其他時,支援1-16長度的傳送。
      4. AWSIZE 每次傳輸的位元組,和WDATA
        寬度相關。如WDATA為32位。那麼AWSIZE=log2(32/8)=2
      5. AWBURST 突發型別
        1. FIXED: 0 固定模式,Xilinx不建議使用此模式。
        2. INCR: 1 遞增模式(Incrementing),遞增值依賴於傳送寬度。比如資料匯流排AWADDR為32位,那麼next_AWADDR_value = current_AWADDR_value + 32/8;
        3. WRAP: 2
        4. Reserved: 3
      6. AWLOCK 匯流排鎖訊號,可提供操作的原子性。一般賦值為0。
      7. AWCACHE 記憶體型別。xilinx建議賦值為4'b0011
      8. AWPROT 訪問許可權訊號線,xilinx建議賦值為3'b000
        .xilinx IP 一般忽略此訊號。
      9. AWQOS 服務質量,xilinx使用其值0b0000.表示介面不參與任何QoS方案。AXI4協議沒有指定QoS識別符號的確切使用。該規範建議將AxQOS用作相關的寫或讀事務的優先順序指示器。更高的值表示更高的優先順序事務。
      10. AWUSER 使用者自定義訊號。ip互動中一般用不到。賦值為1.
      11. AWVALID
    2. 從機(slave)控制的訊號
      1. AWREADY
      2. AWREGION 區域標誌,能實現單一物理介面對應的多個邏輯介面。xilinx主機介面沒有此訊號線,從機有。初學者就預設為0吧。
  3. 寫資料通道訊號
    1. 主機(master)控制的訊號
      1. WDATA 資料訊號線,傳輸資料資訊。
      2. WSTRB 資料匯流排有效位元組控制。比如32位的匯流排,WSTRB等於4'b0010,那麼代表WDATA[15:8]中的資料有效。其他無效。如果要求WDATA[31:0]32位全有效,那麼WSTRB就應該等於4'b1111.
      3. WLAST 置高表示突發資料中的最後一個數據。
      4. WUSER AXI4協議留給使用者自定義的,協議本身沒有定義功能。Xilinx在ip核的使用上也沒有實現。
      5. WVALID
    2. 從機(slave)控制的訊號
      1. WREADY
  4. 寫應答通道訊號
    1. 主機(master)控制的訊號
      1. BREADY
    2. 從機(slave)控制的訊號
      1. BID 交易識別符號
      2. BRESP
        1. OKEY 0 正常訪問成功
        2. EXOKEY 1
        3. SLVERR 2 從機錯誤
        4. DECERR 3 解碼錯誤,比如沒有從機的地址。
      3. BUSER AXI4協議留給使用者自定義的,協議本身沒有定義功能。Xilinx在ip核的使用上也沒有實現。
      4. BVALID
  5. 讀地址通道訊號
    1. 主機(master)控制的訊號
      1. ARID 讀地址通道訊號的意義跟寫地址通道的相似。
      2. ARADDR
      3. ARLEN
      4. ARSIZE
      5. ARBURST
      6. ARLOCK
      7. ARCACHE
      8. ARPROT
      9. ARQOS
      10. ARUSER
      11. ARVALID
    2. 從機(slave)控制的訊號
      1. ARREADY
      2. ARREGION
  6. 讀資料通道訊號
    1. 從機(slave)控制的訊號
      1. RREADY
    2. 從機(master)控制的訊號
      1. RID 讀資料通道訊號的意義跟寫資料通道的相似。
      2. RDATA
      3. RRESP
      4. RLAST
      5. RUSER
      6. RVALID

讀寫時序和握手時序

關於AXI4.0-full的讀寫時序和握手時序請參看AXI匯流排介紹

AXI-lite主從互動模擬

  1. vivado建立AXI外設。
  2. 新增主從介面。
  3. 編寫模擬tb檔案。模擬相關的檔案見附件axi-full.zip

下圖是AXI-full主從互動的時序圖,主機先通過匯流排寫資料,然後通過讀匯流排將其寫入的資料讀了出來。圖中畫圓圈的地方是每個通道第一次握手的時序(後續的握手時序沒有標記)。

文件參考

  1. IHI0022G_amba_axi_protocol_spec.pdf
  2. IHI0051A_amba4_axi4_stream_v1_0_protocol_spec.pdf
  3. ug761_axi_reference_guide.pdf