之前文章為大家介紹了AXI的協議與架構,本篇我們接著往下講AXI的讀寫傳輸
內容概括
這次為大家講述的內容包括:
AXI讀寫傳輸
0****1
讀寫傳輸
3.1
握手過程
5個傳輸通道均使用VALID/READY信號對傳輸過程的地址、數據、控制信號進行握手。使用雙向握手機制,傳輸僅僅發生在 VALID 、 READY 同時有效的時候 。
- VALID信號表示地址/數據/應答信號總線上的信號是有效的,由傳輸發起方控制
- READY信號表示傳輸接收方已經準備好接收,由傳輸接收方控制。
VALID和READY的先后關系具有三種情況:
- ALID先有效,等待READY有效后完成傳輸(VALID一旦有效后在傳輸完成前不可取消)。
- READY先有效,等待VALID有效后完成傳輸(READY可以在VALID有效前撤銷)。
- VALID和READY同時有效,立刻完成傳輸。
此外,需要注意的是允許READY信號等待VALID信號再有效,即即使從機準備好,也可以不提供READY信號,等到主機發送VALID信號再提供READY信號。對應的VALID信號不允許等待READY信號,即不允許VALID等待READY信號拉高后再拉高,否則容易產生死鎖現象。
3.2
讀操作順序
讀操作順序:
上圖為讀操作的依賴關系,ARREADY可以等待ARVALID信號,RVALID必須等待ARVALID和ARREADY同時有效后(一次地址傳輸發生)才能能有效。
寫操作順序:
AXI3中寫操作中唯一的強依賴關系是寫響應通道BVALID,僅當WVALID和WREADY信號同時有效(數據傳輸完成)且WLAST信號有效(突發傳輸的最后一個數據傳輸完成)后才會被置位;
3.3
突發式讀寫
按照傳統的RAM的讀寫方式,給定一個Address,只能讀取或者寫入一個Data,但是在Burst模式下,給定一個Address,可以連續寫入或者讀取多組數據。當地址出現在地址總線后,傳輸的數據將出現在讀數據通道上。設備保持 VALID 為低直到讀數據有效。為了表明一次突發式讀寫的完成,設備用 RLAST 信號來表示最后一個被傳輸的數據。
突發式讀寫時序圖:
這一過程的開始時,主機發送地址和控制信息到寫地址通道中,然后主機發送每一個寫數據到寫數據通道中。當主機發送最后一個數據時, WLAST 信號就變為高。當設備接收完所有數據之后他將一個寫響應發送回主機來表明寫事務完成。
a. 突發長度(AxLEN)
突發長度為每次突發傳輸的傳輸次數 ,范圍限制116(AXI4增量模1256)且不能跨越4kb的地址空間,每次突發傳輸不允許提前終止(可以通過關閉所有數據字段的方式使一段傳輸數據無效,但傳輸行為必須完成)。每次傳輸的突發長度為AxLEN[3:0] + 1(AXI增量模式AxLEN[7:0] + 1.
- ARLEN[7:0]:讀地址通道的突發長度接口
- AWLEN[7:0]:寫地址通道的突發長度接口
對于回卷模式突發傳輸,突發長度僅能是2,4,8或16。
b.突發尺寸(AxSIZE)
突發尺寸為每次傳輸的byte數量,與突發傳輸的地址預測相關性很強。每次的突發尺寸不能超過數據通道的寬度;若突發尺寸小于數據通道寬度,需要指定哪些位數是有效的。突發尺寸為2^AxSIZE[2:0]^。
- ARSIZE[2:0]:讀地址通道突發尺寸
- AWSIZE[2:0]:寫地址通道突發尺寸
c.突發類型(AxBURST)
AXI支持三種突發類型:
- FIXED (AxBURST[1:0]=0b00):固定突發模式,每次突發傳輸的地址相同
- INCR (AxBURST[1:0]=0b01):增量突發模式,突發傳輸地址遞增,遞增量與突發尺寸相關
- WRAP (AxBURST[1:0]=0b10):回卷突發模式,突發傳輸地址可溢出性遞增,突發長度僅支持2,4,8,16。地址空間被劃分為長度[突發尺寸*突發長度]的塊,傳輸地址不會超出起始地址所在的塊,一旦遞增超出,則回到該塊的起始地址
本文借鑒自:
http://xilinx.eetrend.com/blog/2020/100052459.html
-
協議
+關注
關注
2文章
614瀏覽量
39841 -
傳輸
+關注
關注
0文章
154瀏覽量
27731 -
AXI
+關注
關注
1文章
134瀏覽量
17100
發布評論請先 登錄
使用SpinalHDL實現一個支持AXI協議的互聯架構
AMBA AXI協議指南
學習架構-AMBA AXI簡介
AMBA 3.0 AXI總線接口協議的研究與應用
深入 AXI4總線 (四):RAM 讀取實戰

評論