【AXI】AXI 學習筆記 -1 — AXI Protocol
1. AXI 架構
AXI protocol中包含最基本的5個獨立的通道,分別是:
- Read address, which has signal names beginning with AR. (Read address channel signals)
- Read data, which has signal names beginning with R.
- Write address, which has signal names beginning with AW.
- Write data, which has signal names beginning with W.
- Write response, which has signal names beginning with B.
| 通道名稱 | 功能 | 訊號前綴 |
|---|---|---|
| Read Address | 傳送讀取請求位址 | AR |
| Read Data | 傳送讀取資料 | R |
| Write Address | 傳送寫入請求位址 | AW |
| Write Data | 傳送寫入資料 | W |
| Write Response | 傳送寫入回應狀態 | B |
在這些通道中在交換資料時,需要透過 “握手機制” 進行資料的交換和傳輸
2. 快速理解"握手機制"
所有5個交易通道使用相同的 VALID / READY 握手流程來傳輸位址、資料和控制資訊。
AXI 協定中的每個通道都使用 VALID 與 READY 兩個訊號來完成握手與傳輸資料。這套機制定義如下:
- 傳送端 在資料有效時,將 VALID 設為 1。
- 接收端 當準備好接收資料時,將 READY 設為 1。
- 當 VALID = 1 且 READY = 1,資料就會被成功傳輸,並且完成一次握手。
2.1 為什麼 VALID/READY 容易搞混?
以 Master 和 Slave 判別輸出入容易讓人搞混,為甚麼這麼說呢? ,這邊舉個例子
- 在剛開始學習的時候,容易誤以為VALID都是由Master發出。 當然並非如此。
- 這時我們就會再去進一步的學到每個通道中的訊號,如上述所說,每個通道都有 VALID / READY
- 於是我們會去看,訊號的定義表(如A2.5),就會去看說這個訊號from Master 或 Slave,
這時我們就會開始搞混VALID/READY到底在那裡是input哪裡是output

那我們必須從 每個通道的意義 來了解,比如說讀操作中,有 AR通道 和 R通道
-
在讀操作時的Master端有這四個握手訊號: ARVALID, ARREADY, RVALID, RREADY ,
其中:-
ARVALID 是請求讀數據,所以:
要求 取資料的那方為 Master,Master output ARVALID
被要求 取資料的那方為 Slave,Slave input ARVALID -
RREADY 是屬於讀數據通道,用意是"準備好了沒",所以說:
得到(接收) 資料的那方為 Master,Master(接受端)需要發出 “我準備好接收資料了” 的訊號,—> Master output RREADY
發送(來源) 資料的那方為 Slave,Slave(發送端)等待 “對方準備好接收資料了” 的訊號,—> Slave input RREADY
-
❗❗❗從上述例子得知,是否由 Master 或 Slave 發出 VALID/READY,要依照 “通道的功能角色” 來判斷,而不是只看是哪一方。
**** GPT版本 範例講解 ****
🔹 ARVALID / ARREADY:讀取位址通道(AR)
這一階段的行為是 Master 向 Slave 提出讀請求。
ARVALID:表示 Master 已準備好一筆讀取位址與控制資訊
→ 由 Master 發出 (output)ARREADY:表示 Slave 準備好接收該筆請求
→ 由 Slave 發出 (output)
✅ 當ARVALID=1且ARREADY=1,握手完成,Slave 正式接收該筆讀取請求。
🔹 RVALID / RREADY:讀取資料通道(R)
這一階段的行為是 Slave 將資料傳給 Master。
RVALID:表示 Slave 資料已準備好
→ 由 Slave 發出 (output)RREADY:表示 Master 準備好接收資料
→ 由 Master 發出 (output)
✅ 當RVALID=1且RREADY=1,資料會被成功傳送給 Master。
參考資料
- << IHI0022F_b_amba_axi_protocol_spec.pdf >>
3652

被折叠的 条评论
为什么被折叠?



