日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

AXI3和AXI4协议详细说明

發布時間:2025/3/13 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AXI3和AXI4协议详细说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文基于ARM官方文檔《AMBA AXI and ACE Protocol Specification》

因為AXI3和AXI4協議大部分相同,小部分不同,在官方文檔中也是一起介紹的,所以本文將一起說明AXI3和AXI4,在兩個協議不同的地方,會突出顯示。

AMBA AXI 協議支持高性能高頻率系統間主從元件間的通訊。AXI協議特征如下:

  • 適合高帶寬、低時延設計
  • 無用復雜即可提供高頻操作<
  • 可滿足多種組件的接口要求
  • 適用于初始訪問時延較高的內存控制器
  • 提供了實施互連架構的靈活性
  • 向后兼容AHB和APB接口

AXI協議的主要特征如下:

  • 地址/控制階段 與 數據階段分離
  • 使用字節選通脈沖支持未對齊的數據傳輸
  • 使用基于突發的事務,僅發布起始地址
  • 獨立的讀寫數據通道,可提供低成本的直接存儲器訪問(DMA)
  • 支持發布多個未完成的地址
  • 支持無序事務完成
  • 允許輕松添加寄存器級,以提供定時關閉

一. AXI架構

AXI有五個獨立的通道:

  • 寫地址通道 Write address AW
  • 寫數據通道 Write data W
  • 寫響應通道 Write response B
  • 讀地址通道 Read address AR
  • 讀數據通道 Read data R
  • 寫/讀地址通道包含控制信息。

    寫操作過程:

  • 主機發送寫地址/控制信號
  • 主機發送要寫入的數據
  • 叢機發送寫響應信號
  • 讀操作過程:

  • 主機發送讀地址/控制
  • 叢機發送讀數據
  • 二. 各通道信號

    2.1 全局信號

    信號源描述
    ACLK時鐘源全局時鐘信號,所有輸入信號均在ACLK上升沿采樣,所有輸出信號的更改只能在ACLK上升沿之后。主從接口上的所有輸入和輸出信號間不允許有組合路徑
    ARESETn復位源全局復位信號,為異步復位同步置位信號,即ARESETn在任意時刻變為低電平可立刻生效,但置位為1時只能在ACLK的下一個上升沿生效

    協議規定,在ARESETn低電平有效時

  • 主機必須驅動ARVALID,AWVALID 和 WVALID為低電平
  • 叢機必須驅動RVALID 和 RVALID為低電平
  • 其它信號能被驅動為任意值
  • ARESETn置位為1后,VALID最快能在ARESETn置位后的下一個ACLK時鐘上升沿置高,如下圖:

    2.2 寫地址通道信號

    信號源必需/可選位寬默認值描述
    AWID可選可變,協議未定義位寬, Xilinx使用0, 1, 2, … 32,一般為4全0寫地址識別ID
    AWADDR必需可變,協議未定義位寬, Xilinx使用12, 13, … 64,一般為32/64-要寫入數據的內存地址
    AWLEN可選8(AXI4是8位)
    4(AXI3是4位)
    8’h00
    4’h0
    數據是按份傳輸的,此信號表示接下來要寫入的數據份數即數據量,
    實際傳輸數據量 = AWLEN + 1
    AWSIZE可選3數據總線寬度表示每份數據占幾個字節,如3‘b000對應1字節,3’b001對應2字節,… ,3‘b111對應2^7=128字節
    n對應2^n直接
    AWBURST可選22‘b01, INCR突發類型,指示在寫事務中每次傳輸之間地址如何變化
    AWLOCK可選1(AXI4是1位)
    2(AXI3是2位)
    1’b0
    2’b00
    0表示Normal access, 定義主機訪問叢機的是否是獨占的
    AWCACHE可選44’b0000指示不同的內存類型
    AWPROT必須33’b000寫事務的保護屬性:特權,安全級別和訪問類型
    提供用于禁止非法傳輸事務的訪問權限信號
    AWQOS可選44’b0000服務質量標識符,在AXI3中未實現
    AXI4中未指定AxQOS的確切用途,但建議用做讀/寫優先級指示符,QOS值越大優先級越高
    AWREGION可選44’b0000寫入事務的區域指示器,在AXI3中未實現
    AWUSER可選可變,協議未定義位寬,xilinx使用0, 1, 2, … 1024全0AXI4一般不建議使用用戶字段
    在AXI3中未實現
    AWVALID必須1-valid
    AWREADY必須1-ready

    2.2.1 xID

    xID包括AWID、WID(僅在AXI3中實現)、BID、ARID、RID。

    當AXI Master連接到AXI Interconnect IP或是AXI SmartConnect IP時,Connect IP會將一個附加位加到該主機側的ARID,AWID和WID上。這有兩個效果:

    • 主機不必知道其他主機使用哪些ID值,因為Connect IP通過將主機號附加到原始標識符上,使每個主機使用的ID值唯一

    • 從接口上的ID標識符比主接口上的ID標識符寬

    對于寫響應,Connect IP使用BID的附加位來確定寫響應所針對的主端口。在將BID值傳遞到正確的主端口之前,互連模塊會刪除BID的附加位。

    對于讀取數據,Connect IP使用RID的附加位來確定讀取數據的目標主機端口。在將RID值傳遞到正確的主端口之前,互連模塊會刪除RID的附加位。

    所以,當Master連接了Connect IP后(幾乎是必連的,主從AXI接口間都必須加Connect IP),Master不需要關心其它Master的ID值,即使多個使用相同ID值的Master通過Connect IP連到Slave也不會造成錯亂,因為Connect IP會使用附加位來唯一標識每個Master的ID。

    2.2.2 AxBURST

    值名描述
    2’b00FIXED在固定突發中,
    1. 每次傳輸的地址都相同。
    2. 有每份數據的有效字節通道是固定的,但與已聲明WSTRB的實際字節可能不同。
    此突發類型用于重復訪問同一位置,例如在加載或清空FIFO時。
    2‘b01INCR遞增。在遞增突發中,突發中每次傳輸的地址都是前一次傳輸的地址的增量。增量值取決于傳輸的大小。例如,對于對齊的起始地址,突發大小為4字節的每次傳輸的地址為前一個地址加4。此突發類型用于訪問常規順序存儲器
    2’b10WRAP包裝,包裝突發與增量突發類似,不同之處在于,如果達到地址上限,地址會繞到一個較低的地址。
    以下限制適用于包裝突發:
    ? 起始地址必須與每次傳輸的大小對齊。
    ? 突發長度必須為2、4、8或16,即AWLEN必須為1、3、7或者15
    2’b11保留-

    2.2.3 AxSIZE

    AWSIZE不能超過整數據傳輸路徑中任意一條總線的寬度。如果AWSIZE對應的數據寬度比AXI數據總線寬度小,則稱這樣的傳輸是窄傳輸,顯然,窄傳輸需要約定數據總線的哪些位是有效數據位。

    當主機產生比其數據總線窄的傳輸時,AWBURST的值將確定傳輸使用的字節通道:

    • 在增加或包裝突發時,在突發傳輸中每份數據使用不同的字節通道。
    • 在固定的脈沖串中,每份數據使用相同的字節通道。

    下圖展示了窄傳輸中8位數據在32位總線中INCR傳輸的過程,可以看到實際數據的位序和在數據總線中所處的位序始終是一樣的,即字節不變序。8位為1字節,低字節在總線的低位,高字節在總線的高位。

    2.2.4 AxLOCK

    AxLOCKAccess type
    1‘b0Normal access 正常訪問
    1’b1Exclusive access 獨占訪問

    AXI3定義的AxLOCK[1:0],比AXI4定義的多了一個Locked access鎖定訪問, 如下表。AXI3只推薦用于舊設備之中。

    AxLOCK(AXI3)Access type2
    2‘b00Normal access 正常訪問
    2’b01Exclusive access 獨占訪問
    2’b10Locked access 鎖定訪問
    2’b11保留

    2.2.5 AxCACHE

    AxCAHCE表明訪問的內存類型,AXI3與AXI4不同的編碼不同,括號()內是AXI3編碼。

    2.2.6 AxPORT

    AxPORT共3位,每一位的值代表不同的意義。一般可設置為3‘b000,表示非特權且安全的數據訪問。

    AxPROT值功能描述
    [0]0Unprivileged access 非特權訪問AXI主站可能支持多個級別的操作特權,并將這種特權概念擴展到內存訪問。 AxPROT [0]將訪問標識為非特權或特權
    [0]1Privileged access 特權訪問-
    [1]0Secure access 安全訪問AXI主站可能支持安全和非安全操作狀態,并將這種安全性概念擴展到內存訪問。 AxPROT [1]將訪問標識為安全或不安全。 AxPROT [1]可以視為定義了兩個地址空間,一個安全地址空間和一個非安全地址空間。該信號可被視為附加地址位。安全和非安全地址空間之間的任何別名都必須正確處理。
    [1]1Non-secure access 非安全訪問-
    [2]0Data access 數據訪問該位指示事務是指令訪問還是數據訪問。 AXI協議將此指示定義為提示。并非在所有情況下都是準確的,例如,當事務包含指令和數據項的混合時。本規范建議主機將AxPROT [2]設置為LOW,以指示數據訪問,除非已知該訪問是指令訪問。
    [2]1Instruction access 指令訪問-

    2.3 寫數據通道信號

    信號源必需/可選位寬默認值描述
    WID可選可變,協議未定義位寬-寫數據識別ID, 僅在AXI3中實現
    通過AWID,WID與BID一致來對應地址和數據,故AXI3可支持亂序傳輸,而AXI4去除了WID信號,故AXI4只能順序傳輸,數據緊跟地址,或者地址緊跟數據。
    WDATA必需與AWSIZE指定的數據位寬保持一致 = 2^AWSIZE * 8-要寫入的數據
    WSTRB可選數據總線位寬 / 8 = 2^AWSIZE全0寫選通,指示哪些字節通道保存有效數據
    WSTRB為高表示數據總線的哪一/幾字節是有效數據,
    具體的WSTRB [n]為高對應于WDATA [(8n+7:8n]這一字節的數據有效
    WLAST必需1-指示寫事務中的最后一次數據傳輸
    WLAST置1表明此時刻的數據是最后一份數據
    WUSER可選可變,協議未定義位寬,xilinx使用0, 1, 2, … 1024-一般不建議使用用戶字段
    在AXI3中未實現
    WVALID必需1-valid
    WREADY必需1-ready

    2.4 寫響應通道信號

    信號源必需/可選位寬默認值描述
    BID可選可變,協議未定義位寬-寫響應ID,與AWID保持一致
    BRESP可選22‘b00寫響應,指示寫事務狀態
    BUSER可選可變,協議未定義位寬,xilinx使用0, 1, 2, … 1024全0一般不建議使用用戶字段
    在AXI3中未實現
    BVALID必需1-valid
    BREADY必需1-ready

    2.4.1 BRESP 與 RRESP

    寫響應和讀響應功能是一樣的,都是指示寫/讀交易是否成功,

    BRESP[1:0]
    RRESP[1:0]Response描述
    2’b00OKAY下面三種情況,叢機將回應OKAY:
    1. 正常訪問成功
    2. 獨占訪問失敗
    3. AxLOCK為1表明獨占訪問,但叢機不支持獨占訪問
    2’b01EXOKAY獨占訪問成功
    2’b10SLVERR叢機反映錯誤,協議建議此信號只用于出現錯誤的情況而不用于正常情況
    例如以下情況:
    1. FIFO或緩存區溢出
    2. 不支持的AxSIZE,數據位寬大于總線位寬
    3. 對只讀區域發出寫請求
    4. 叢機響應超時
    5. 嘗試訪問被禁用的或低功耗模式下的功能
    2’b11DECERRDECERR指示互連模塊無法成功解碼從屬訪問。
    如果互連無法成功解碼從屬訪問,則它必須返回DECERR響應。規范建議互連將訪問路由到默認從站,并且默認從站返回DECERR響應。
    即使發生了錯誤情況,AXI協議也要求完成事務的所有數據傳輸。任何提供DECERR響應的組件都必須滿足此要求。

    注意AXI協議要求無論是否出現錯誤,主從機都必須把一次寫/讀交易走完。對于寫交易,是在最后數據全部傳輸完成后才通過寫應答知道傳輸是否有錯誤,所以無論錯誤與否,寫交易總是能走完;而對于讀交易,讀應答位于每份讀數據的后面,所以可能第一份數據傳到主機,主機就知道交易錯誤了,但是下面的數據主機要繼續讀完,叢機也要繼續發完。

    2.5 讀地址通道信號

    信號源必需/可選位寬默認值描述
    ARID可選可變,協議未定義位寬, Xilinx使用0, 1, 2, … 32,一般為4全0寫地址識別ID
    ARADDR必需可變,協議未定義位寬, Xilinx使用12, 13, … 64,一般為32/64-讀數據地址,同AWADDR
    ARLEN可選8(AXI4是8位)
    4(AXI3是4位)
    8’h00
    4‘h0
    實際傳輸數據量 = ARLEN + 1,同AWLEN
    ARSIZE可選3數據總線寬度表示每份數據占幾個字節,同AWSIZE
    ARBURST可選22‘b01, INCR突發類型,指示在寫事務中每次傳輸之間地址如何變化, 同AWBURST
    ARLOCK可選1(AXI4是1位)
    2(AXI3是2位)
    1’b0,
    2’b00
    見 2.2.4 AxLock
    ARCACHE可選44’b0000指示不同的內存類型,同AWCHACE
    ARPROT必須3-寫事務的保護屬性:特權,安全級別和訪問類型
    提供用于禁止非法傳輸事務的訪問權限信號,同AWPROT
    ARQOS可選44’b0000服務質量標識符,AXI4中未指定AxQOS的確切用途,但建議用做讀/寫優先級指示符,QOS值越大優先級越高,同AWQOS
    在AXI3中未實現
    ARREGION可選44’b0000寫入事務的區域指示器,同AWREGION
    在AXI3中未實現
    ARUSER可選可變,協議未定義位寬,xilinx使用0, 1, 2, … 1024全0一般不建議使用用戶字段,同AWUSER
    在AXI3中未實現
    ARVALID必須1-valid
    ARREADY必須1-ready

    2.6 讀數據通道信號

    信號源必需/可選位寬默認值描述
    RID可選可變,協議未定義位寬-寫數據識別ID, 與ARID保持一致用來對應地址和數據
    RDATA必需可變,協議未定義位寬, Xilinx使用12, 13, … 64,一般為32/64-讀數據
    RRESP可選22’b00讀響應,指示讀事務狀態,同BRESP
    RLAST必需1-指示讀事務中的最后一次數據傳輸
    RLAST置1表明此時刻的數據是最后一份數據,同WLAST
    RUSER可選可變,協議未定義位寬,xilinx使用0, 1, 2, … 1024全0一般不建議使用用戶字段
    在AXI3中未實現
    RVALID必需1-valid
    RREADY必需1-ready

    三. AXI協議其它關鍵點

    3.1 通道間的時序關系

    AXI協議規定各通道間需要保證以下三種關系:

    • 寫回復必須在最后一個寫數據完成后
    • 讀數據必須在接收到讀地址信號后產生
    • 通道間的握手需要滿足通道間的依存關系

    除了這三種聯系外,協議未定義通道間的任何其它關系。這意味著寫數據可在寫地址之前位于數據總線上,或者寫數據與寫地址也可出現在相同的周期中,等等這些情況都是合乎協議的。

    前兩種聯系很好理解,接下來我們討論第三種情況:通道間的握手信號依賴。

    3.2 VALID與READY的握手機制

    AXI協議的五個通道都通過VALID和READY進行握手。VALID由數據發送端驅動,VALID置1表示發送數據有效,接收端可以接收了;READY由數據接收端驅動,READY置1表示接收端已準備好接收數據。數據總在VALID與READY同時為高的時鐘信號的上升沿完成傳輸,同時為高持續一個時鐘周期,數據就傳輸一次。

    為避免出現死鎖的情況,VALID與READY需要滿足以下條件:

    • 發送信息的AXI接口的VALID信號不得依賴于接收該信息的AXI接口的READY信號。
    • 接收信息的AXI接口應該可以等待,直到檢測到VALID信號后再聲明其對應的READY信號。當然接收端也可以不等待VALID有效,而根據自身情況置高READY。

    可見,READY信號的置高是靈活的,可以在檢測到VALID有效后再置高,也可以在自身準備好接收信息后置高而不依賴于VALID信號。即READY允許依賴VALID。VALID則不允許依賴READY。

    握手信號之間的先后順序:

    • 在讀交易時,RVALID必須在ARVALID與ARREADY有效后才置高,也就是說必須在讀地址確定后,才能發送要讀的數據。

    • 在寫交易中,BVALID必須在AWVALID與AWREADY,WVALID與WREADY都有效后才置高,也就是說必須在寫地址和寫數據都確定后,才能發送寫響應。

    總結

    以上是生活随笔為你收集整理的AXI3和AXI4协议详细说明的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。