本文將討論AMBA的第三次修訂版,該修訂版向世界介紹了高級可擴展接口(AXI)協議。
AXI協議最初是為高頻系統而設計的,旨在滿足各種組件的接口要求,同時允許靈活地互連這些組件。適用于高頻,低延遲設計,AXI仍與先前的AMBA版本向后兼容AHB和APB。
了解AXI將使您深入了解SoC的工作原理,同時使您成為一名多才多藝且全面的設計師。
AXI架構
回想一下,AHB(高級高性能總線)是單通道總線,多個主機和從機用于交換信息。優先級仲裁器確定當前哪個主機使用該總線,而中央解碼器執行從機選擇。突發執行操作可能需要花費多個總線周期才能完成。每個突發傳輸都包括一個地址和控制階段,隨后是一個數據階段。
AXI的設計理念相似,但使用多個專用通道進行讀寫。像它的前身一樣,AXI是基于突發的,并且在交換數據之前使用類似的地址和控制階段。AXI還包括許多新功能,包括亂序事務,未對齊的數據傳輸,高速緩存支持信號和低功耗接口。
AXI頻道
AXI主站和從站之間有五個獨立的通道。它們是:
讀取地址通道
讀取數據通道
寫地址通道
寫數據通道
寫響應通道
地址通道用于在執行主從之間的基本握手時發送地址和控制信息。數據通道是要交換信息的放置位置。
主機從從機讀取數據并將數據寫入從機。讀取響應信息放置在讀取數據通道上,而寫入響應信息具有專用通道。這樣,主機可以驗證寫事務已完成。
圖1顯示了通過五個AXI通道連接的AXI主從設備。
圖1.AXI通道
每次數據交換都稱為事務。事務包括地址和控制信息,發送的數據以及任何響應信息。實際數據以突發方式發送,其中包含多次傳輸。圖1顯示了由4個拍子或數據傳輸組成的讀寫突發。
我們將在本文后面詳細討論突發。
AXI信號
就像以前的AMBA版本中的AHB,ASB和APB信號一樣,每個AXI通道都有許多與之相關的信號。有兩個全局信號稱為ACLK和ARESETn。它們分別是系統的全局時鐘和復位信號。ARESETn的后綴“ n”表示此信號為低電平有效。
圖2顯示了與讀取通道相對應的信號以及全局信號。
圖2.讀取地址,讀取數據和全局信號
每個通道都有一個ID標簽,用于無序交易。具有相同ID的任何事務都必須保留順序,但是具有不同ID的事務可以按任何順序完成。這樣,即使較慢的事務首先發出,也可以在較慢的事務之前完成較快的事務。例如,如果一個主設備正在將數據寫入多個從設備,則事務ID將允許更快的從設備更快完成。
總線寬度是特定于實現的,但是這些信號以32位總線寬度顯示。從機使用RLAST信號向主機發送最后一個數據項正在傳輸的信號。
其他值得注意的信號包括突發大小,長度和類型。VALID和READY信號用于主機和從機之間的握手。這些將在本文后面討論。
緩存,鎖定和保護信號分別用于緩存,互斥訪問(原子操作)和非法訪問保護。
圖3.寫入地址,數據和響應信號
圖3顯示了寫地址,數據和響應信號。這些信號反映了上面的讀取信號,但被主機用來將數據發送到從機。WLAST向從站發出信號,表明正在發送最后一個數據項。專用的寫響應信號使主機可以知道寫事務已成功完成。
有關這些信號的更詳細說明,請參閱AMBA 3.0版,尤其是AMBA AXI協議v1.0規范。
AXI交易
如前所述,AXI數據傳輸稱為事務。事務可以采用讀或寫的形式,并包括地址/控制信息,數據和響應。數據以脈沖串的形式發送,其中包括多個稱為節拍的數據項。為了同步數據的發送和接收,AXI主站和從站在事務開始時使用READY和VALID信號執行握手。
通道握手
每個AXI通道都包含一個有效信號和一個就緒信號。這些用于同步和控制傳輸速率。這里要記住的重要一點是,源或發送者使用VALID信號表示數據或控制信息可用。當目的地或接收者實際上能夠使用該信息時,它會發出READY信號。因此,只有當VALID和READY信號都有效時,才可以進行傳輸。
圖4顯示了工作中的AXI握手。通知信息傳輸(用箭頭表示)僅在VALID和READY都較高時發生,而不管哪個先斷言。還要注意,AXI在所有傳輸中都使用時鐘上升沿。
圖4.AXI握手機制(改編自AXI規范v1.0)
AXI規范中的一個重要說明是,一個組件的VALID信號絕不能依賴于另一個組件的READY信號。READY可以等待VALID信號,但不是必須的。遵循這些規則消除了發生死鎖的可能性。如果VALID依賴于READY,而READY則依賴于VALID,則很容易看到兩個信號都不會置為有效,因為每個信號都在等待另一個信號。
AXI爆發
AXI中的數據交換采用突發形式。每個突發包括多個節拍或數據傳輸。在事務開始時發送的控制信息指示正在傳輸的突發的長度,大小和類型。
X代表R或W的AXLEN [3:0]表示突發中的拍數。寬度為4位,這意味著一個突發中最多可以進行16次傳輸。AXLEN = b0000表示每次連發有一個節拍。b0001,b0010和b0011的值分別代表兩個拍子,三個拍子和四個拍子。這種模式一直持續到十六歲。組件必須完成AXLEN指定的所有節拍,無論是否使用數據。
AXSIZE [2:0]指定突發的每個拍中有多少個字節。AXSIZE中的每個位代表另一次冪2,“ 000”代表每個節拍1個字節,“ 111”代表每個節拍最多128個字節。這些節拍的大小不能超過母線寬度。
AXburst[1:0]確定將執行的突發類型。
AXI中有三種突發類型。他們是:
固定爆發
突發增加
包裝爆裂
在固定的脈沖串中,地址不會隨著每個節拍而改變。一個典型的應用是FIFO隊列/緩沖區。
增量突發代表更典型的傳輸類型,其中在每個拍子之后,傳輸地址都會遞增。您可以將其視為與基址的偏移量。
最終的突發類型是包裝突發。包裝突發與增量突發類似,不同之處在于存在一個包裝邊界,其中地址一旦增加到該點,它就會纏繞到一個較低的地址。
圖5顯示了三種不同類型的AXI突發的簡化視圖。
圖5.AXI突發類型
AXI互連
AXI互連允許多個主機和/或多個從機相互連接。AXI規范定義了主機和從機,主機和互連以及從機和互連之間的接口。
實際上,互連包含連接到AXI主設備的從設備接口和連接到AXI從設備的主設備接口。互連中發生的事情(即,不同的主機如何與不同的從機通信)取決于實現方式。互連可以允許共享的地址總線,共享的數據總線都共享或不共享。
在下一篇文章中,我們將研究AXI互連,它們如何工作以及如何在設計中使用它們。
結論
本文是對高級可擴展接口(AXI)協議的基本介紹。我們查看了AMBA第三版中指定的舊版AXI。如前所述,您可以參考AMBA AXI協議v1.0(約一百頁),以更深入地了解AXI的第一個版本。隨著新版本的AXI(例如AXI4,AXI4-Lite和AXI4-Stream),AXI在AMBA版本4中看到了一些重大變化。
將來的AMBA文章將討論用于組件之間系統級緩存一致性的AXI4和ACE協議(AXI一致性擴展)。AXI已成為現代SoC設計中廣泛使用的協議。在學習AXI時,更簡單的總線協議(如Avalon和Wishbone)將變得更加容易。
-
AXI總線
+關注
關注
0文章
66瀏覽量
14250
發布評論請先 登錄
相關推薦
評論