AXI4讀操作
圖 4?15 讀通道架構(gòu)
如上圖所示,主設(shè)備向從設(shè)備通過讀地址通道指定讀數(shù)據(jù)地址及控制信號(hào),從設(shè)備通過讀數(shù)據(jù)通道將指定地址上的數(shù)據(jù)傳輸給主設(shè)備。
1、當(dāng)狀態(tài)機(jī)的當(dāng)前狀態(tài)為WAIT_START時(shí),master將ARVALID拉高。
2、slave收到ARVALID信號(hào)后,將ARREADY拉高,持續(xù)到一次burst_len傳完為止。master收到ARREADY拉高的信號(hào)后,將ARVALID拉低。
3、ARADDR在ARVALID為高時(shí)給定對應(yīng)地址。
4、RREADY信號(hào)在收到RVALID信號(hào)為高時(shí)拉高,保持一個(gè)周期,讀取出數(shù)據(jù)。
5、RVALID信號(hào)由slave控制,具體控制模式參考slave模塊的設(shè)計(jì)。
6、當(dāng)一次讀取的最后一個(gè)數(shù)據(jù)包讀取時(shí)將RLAST拉高,表示一次Burst讀取完畢。
圖4?17 讀操作信號(hào)依賴
如圖可知,讀操作的兩個(gè)channel之間存在如下的依賴關(guān)系:必須等到ARVALID和ARREADY同時(shí)為High后,RVALID才能拉高。
AXI4寫操作:
圖4?18 寫通道架構(gòu)
如上圖所示,主設(shè)備向從設(shè)備通過寫地址通道指定寫數(shù)據(jù)地址及控制信號(hào),從設(shè)備通過寫數(shù)據(jù)通道將指定數(shù)據(jù)寫到從設(shè)備的指定地址上。待數(shù)據(jù)寫入完成后,從設(shè)備通過寫響應(yīng)通道向主設(shè)備傳遞寫響應(yīng)信號(hào),表明寫入完成。
圖4?19 Write Burst 流程
1、當(dāng)狀態(tài)機(jī)的當(dāng)前狀態(tài)為WAIT_START時(shí),master將AWVALID拉高。
2、slave收到AWVALID信號(hào)后,將AWREADY拉高,持續(xù)到一次burst_len寫完為止.master收到AWREADY拉高的信號(hào)后,將AWVALID拉低。
3、AWADDR在AWVALID為高時(shí)給定對應(yīng)地址。
4、WREADY信號(hào)在收到WVALID信號(hào)為高時(shí)拉高,保持一個(gè)周期,寫入數(shù)據(jù)。
5、WVALID信號(hào)由slave控制,具體控制模式參考slave模塊說明。
6、當(dāng)一次寫入的最后一個(gè)數(shù)據(jù)包讀取時(shí)將WLAST拉高,表示一次寫入完畢。
7、BRESP和BVALID都由slave控制,當(dāng)收到WLAST信號(hào)時(shí),BVALID拉高。
8、BREADY可以一直拉高,也可以在AWREADY信號(hào)拉高后保持拉高。直到BVALID信號(hào)拉高時(shí)將其拉低即可。
其中寫操作的信號(hào)依賴關(guān)系如下:
圖4?20 寫操作依賴
如圖可知,ADDR和DATA兩個(gè)channel之間不存在依賴關(guān)系,需要滿足的是必須等到WVALID和WREADY同時(shí)為High,且最后一次傳輸完成后,BVALID才能拉高,表明寫操作結(jié)束。
通道握手信號(hào)之間的依賴關(guān)系
為了對VALID和READY之間的關(guān)系有更深刻理解,下面在展開說明一下。
為了防止發(fā)生死鎖,必須重視握手信號(hào)之間的依賴關(guān)系。
任何交易中:
l一個(gè) AXI 模塊的VALID 信號(hào)不能依賴于另一個(gè)模塊的READY 信號(hào)
lREADY 信號(hào)可以等待VALID 信號(hào)使能
-------------------注意---------------------------------------------
可以在使能 VALID 信號(hào)之后使能READY,也可以在使能VALID 信號(hào)之前將
READY 信號(hào)使能為默認(rèn)值,這樣設(shè)計(jì)更高效。.
--------------------------------------------------------------------
圖4?21和圖4?22為各握手信號(hào)之間的依賴關(guān)系圖。單箭頭指向的信號(hào)可以在指向它的信號(hào)未使能或使能后,它再使能;雙箭頭向的信號(hào),必須在指向它的信號(hào)全都使能后,它再使能。
圖4?21中所示,在一次讀交易中:
l從設(shè)備使能ARREADY 信號(hào)之前,可以在等待 ARVALID 信號(hào)被使能。
l從設(shè)備必須等待ARVALID 和ARREADY信號(hào)都有效后,再去使能RVALID 信號(hào)以返回讀數(shù)據(jù)
圖4?21 讀交易中握手信號(hào)的依賴關(guān)系
圖4?22中所示,在一次寫交易中:
l主設(shè)備必須等待從設(shè)備使能AWVALID 、WVALID信號(hào)之后,主設(shè)備再去使能AWREADY 、WREADY信號(hào)。
l從設(shè)備可以等待使能AWREADY、WVALID信號(hào)或者同時(shí)使能倆個(gè)信號(hào)后,再去使能AWREADY。
l從設(shè)備可以等待使能AWREADY、WVALID信號(hào)或者同時(shí)使能倆個(gè)信號(hào)后,再去使能AWREADY。
l從設(shè)備可以等待使能AWREADY、WVALID信號(hào)或者同時(shí)使能倆個(gè)信號(hào)后,再去使能AWREADY。
圖4?22 寫交易握手信號(hào)依賴關(guān)系
注意:
在一次寫交易中,主設(shè)備不必等AWREADY 有效之后去發(fā)送WVALID ,這一點(diǎn)是很重要的。如果主設(shè)備在發(fā)送WVALID 信號(hào)之前,必定不會(huì)等待使能AWREADY 信號(hào),反過來如果從設(shè)備在等待使能WVALID 信號(hào),再去使能AWREADY則這樣就會(huì)造成死鎖狀況。
AXI協(xié)議中的基本交易
本部分給出基于 AXI協(xié)議的基本交易的示例。每個(gè)示例都使用了VALID 和READY握手機(jī)制。地址信息及數(shù)據(jù)的傳輸都是在VALID 和READY 信號(hào)同時(shí)為高的時(shí)候傳輸。示例下面幾部分介紹:
?讀猝發(fā)示例
?連續(xù)的讀猝發(fā)示例
?寫猝發(fā)示例
本部分也介紹了交易順序。
讀猝發(fā)示例
圖4?23為一個(gè)4 拍的讀猝發(fā) 交易的時(shí)序圖。在這個(gè)例子中,主設(shè)備發(fā)送地址,一個(gè)周期后從設(shè)備接收。
主設(shè)備在發(fā)送地址的同時(shí)也發(fā)送了一些控制信息,用于記錄猝發(fā)的類型和長度,為了保持圖的清晰性,在此省略這些信號(hào)。
地址總線上出現(xiàn)地址之后,在讀數(shù)據(jù)通道上發(fā)生數(shù)據(jù)的傳輸。從設(shè)備一直保持
VALID 信號(hào)為低,直到讀數(shù)據(jù)準(zhǔn)備好。從設(shè)備發(fā)送RLAST 信號(hào)標(biāo)志著此次猝發(fā)交易中這是最后一個(gè)數(shù)據(jù)的傳輸。
圖4?23 讀猝發(fā)交易
交疊讀猝發(fā)示例
圖4?24為主設(shè)備在從設(shè)備接收第一個(gè)猝發(fā)交易的地址后發(fā)送另一個(gè)猝發(fā)交易的地址的時(shí)序圖。這樣可以保證一個(gè)從設(shè)備在完成第一個(gè)猝發(fā)交易的同時(shí)可以開始處理第二個(gè)猝發(fā) 交易的數(shù)據(jù)。
圖4?24 交疊讀猝發(fā)交易
寫猝發(fā)示例
圖4?25為一次寫交易的時(shí)序圖。當(dāng)主設(shè)備發(fā)送地址和控制信息到寫地址通道之后,交易過程開始。然后主設(shè)備通過寫數(shù)據(jù)通道發(fā)送每一個(gè)寫數(shù)據(jù),當(dāng)為最后一個(gè)需要發(fā)送的數(shù)據(jù)時(shí),主設(shè)備將WLAST 信號(hào)置高。當(dāng)從設(shè)備接收完所有的數(shù)據(jù)時(shí),從設(shè)備返回給主設(shè)備一個(gè)寫響應(yīng)信號(hào)標(biāo)志本次寫交易的結(jié)束。
圖4?25 寫猝發(fā)交易
信號(hào)描述
定義了AXI協(xié)議中使用的信號(hào)。雖然總線寬度和交易ID的寬度都是需要具體說明的,但在本章的表中先顯示32位的數(shù)據(jù)總線,一個(gè)4位的寫入數(shù)據(jù)選通,和4位的ID域。本章包含以下幾個(gè)部分:
l全局信號(hào)
l寫地址通道信號(hào)
l寫數(shù)據(jù)通道信號(hào)
l寫響應(yīng)通道信號(hào)
l讀地址通道信號(hào)
l讀數(shù)據(jù)通道信號(hào)
l低功耗接口信號(hào)
全局信號(hào)
表4?12 AXI全局信號(hào)
信號(hào)名 | AXI4 | AXI4-Lit |
ACLK | 全局時(shí)鐘。所有的信號(hào)在全局時(shí)鐘的上升沿采樣 | |
ARESETN | 全局復(fù)位,低有效。 |
寫地址通道信號(hào)
表4?13 寫地址通道信號(hào)
信號(hào)名 | 源 | AXI4 | AXI4-Lit |
AWID | 主 | 寫地址ID。這個(gè)信號(hào)用于寫地址信號(hào)組的標(biāo)記。 | 不支持 |
AWADDR | 主 | 寫地址。寫地址給出突發(fā)數(shù)據(jù)傳輸?shù)牡谝粋€(gè)傳輸?shù)刂贰?/td> | |
AWLEN | 主 | 突發(fā)長度。給出突發(fā)傳輸中準(zhǔn)確的傳輸個(gè)數(shù)。支持INCR和WRAP傳輸模式。 | 不支持 |
AWSIZE | 主 | 突發(fā)大小。這個(gè)信號(hào)用于確定突發(fā)傳輸中每個(gè)傳輸?shù)拇笮 ?/td> | 不支持 |
AWBURST | 主 | 突發(fā)類型。該信息與突發(fā)大小信息一起,表示在突發(fā)過程中,地址如何應(yīng)用于每個(gè)傳輸。支持INCR和WRAP傳輸模式。 | 不支持 |
AWLOCK | 主 | 鎖類型。該信號(hào)提供了關(guān)于傳輸原子特性的額外信息(普通或互斥訪問)。 | 不支持 |
AWCACHE | 主 | 緩存類型,建議值為0011。 | |
AWPROT | 主 | 保護(hù)類型,建議值為000。 | |
AWQOS | 主 | QoS標(biāo)識(shí)符,xilinx AXI4不支持。 | 不支持 |
AWREGION | 主 | 用于每個(gè)寫操作的地址通道上的域標(biāo)識(shí)符。 | 不支持 |
AWUSER | 主 | xilinx AXI4不支持。 | 不支持 |
AWVALID | 主 | 寫地址有效信號(hào)。為高指示地址有效。 | |
AWREADY | 從 | 寫地址準(zhǔn)備信號(hào)。為高表示從設(shè)備空閑,準(zhǔn)備接收地址;為低表示從設(shè)備忙。 |
寫數(shù)據(jù)通道信號(hào)
表4?14 寫數(shù)據(jù)通道信號(hào)
信號(hào)名 | 源 | AXI4 | AXI-Lite |
WDATA | 主 | 寫數(shù)據(jù),32位到1024位寬 | 只支持32位寬 |
WSTRB | 主 | 寫字節(jié)選通,用于表示更新存儲(chǔ)器的字節(jié)通道,對于數(shù)據(jù)總線的每8位數(shù)據(jù)有一位寫選通信號(hào)。 | 從設(shè)備端可選擇忽略。 |
WLAST | 主 | 寫最后一個(gè)數(shù)據(jù)指示信號(hào)。表示突發(fā)傳輸中的最后一個(gè)數(shù)據(jù)。 | 不支持 |
WUSER | 主 | xilinx AXI4不支持。 | 不支持 |
WVALID | 主 | 寫有效。為高指示數(shù)據(jù)有效。 | |
WREADY | 從 | 寫準(zhǔn)備。為高表示從設(shè)備空閑,準(zhǔn)備接收數(shù)據(jù);為低表示從設(shè)備忙。 |
寫響應(yīng)通道信號(hào)
表4?15 寫響應(yīng)通道信號(hào)
信號(hào)名 | 源 | AXI4 | AXI-Lite |
BID | 從 | 響應(yīng)ID。寫響應(yīng)識(shí)別標(biāo)記,BID值必須匹配AWID值。 | 不支持 |
BRESP | 從 | 寫響應(yīng)。該信號(hào)表示寫狀態(tài),可允許相應(yīng)的表示為OKAYEXOKAYSLVERRDECERR。 | EXOKAY狀態(tài)不支持 |
BUSER | 從 | xilinx AXI4不支持。 | 不支持 |
BVALID | 從 | 寫響應(yīng)有效。為高指示響應(yīng)數(shù)據(jù)有效。 | |
BREADY | 主 | 寫響應(yīng)準(zhǔn)備。為高表示主設(shè)備空閑,準(zhǔn)備接收寫響應(yīng);為低表示主設(shè)備忙。 |
讀地址通道信號(hào)
表4?16 讀地址通道信號(hào)
信號(hào)名 | 源 | AXI4 | AXI-Lite |
ARID | 主 | 讀地址ID。這個(gè)信號(hào)用于讀地址信號(hào)組的標(biāo)記。 | 不支持 |
ARADDR | 主 | 讀地址。讀地址給出突發(fā)數(shù)據(jù)傳輸?shù)牡谝粋€(gè)傳輸?shù)刂贰?/td> | |
ARLEN | 主 | 突發(fā)長度。給出突發(fā)傳輸中準(zhǔn)確的傳輸個(gè)數(shù)。支持INCR和WRAP傳輸模式。 | 不支持 |
ARSIZE | 主 | 突發(fā)大小。這個(gè)信號(hào)用于確定突發(fā)傳輸中每個(gè)傳輸?shù)拇笮 ?/td> | 不支持 |
ARBURST | 主 | 突發(fā)類型。該信息與突發(fā)大小信息一起,表示在突發(fā)過程中,地址如何應(yīng)用于每個(gè)傳輸。支持INCR和WRAP傳輸模式。 | 不支持 |
ARLOCK | 主 | 鎖類型。該信號(hào)提供了關(guān)于傳輸原子特性的額外信息(普通或互斥訪問)。 | 不支持 |
ARCACHE | 主 | 緩存類型,建議值為0011。 | |
ARPROT | 主 | 保護(hù)類型,建議值為000。 | |
ARQOS | 主 | QoS標(biāo)識(shí)符,xilinx AXI4不支持。 | 不支持 |
ARREGION | 主 | 用于每個(gè)讀操作的地址通道上的域標(biāo)識(shí)符。 | 不支持 |
ARUSER | 主 | xilinx AXI4不支持。 | 不支持 |
ARVALID | 主 | 讀地址有效信號(hào)。為高指示地址有效。 | |
ARREADY | 從 | 讀地址準(zhǔn)備信號(hào)。為高表示從設(shè)備空閑,準(zhǔn)備接收地址;為低表示從設(shè)備忙。 |
讀數(shù)據(jù)通道信號(hào)
表4?17 讀數(shù)據(jù)通道信號(hào)
信號(hào)名 | 源 | AXI4 | AXI-Lite |
RID | 從 | 讀ID標(biāo)記,該信號(hào)是讀數(shù)據(jù)信號(hào)組標(biāo)記,由從設(shè)備產(chǎn)生RID,RID必須和讀交易中的ARID匹配。 | 不支持 |
RDATA | 從 | 讀數(shù)據(jù)。32位到1024位寬 | 只支持32位寬 |
RRESP | 從 | 讀響應(yīng)。該信號(hào)表示讀狀態(tài),可允許相應(yīng)的表示為OKAYEXOKAYSLVERRDECERR。 | EXOKAY狀態(tài)不支持 |
RLAST | 從 | 讀最后一個(gè)數(shù)據(jù)指示信號(hào)。表示突發(fā)傳輸中的最后一個(gè)數(shù)據(jù)。 | 不支持 |
RUSER | 從 | xilinx AXI4不支持。 | 不支持 |
RVALID | 從 | 讀有效。為高指示數(shù)據(jù)有效。 | |
RREADY | 主 | 讀準(zhǔn)備。為高表示主設(shè)備空閑,準(zhǔn)備接收數(shù)據(jù);為低表示主設(shè)備忙。 |
AXI4-Stream信號(hào)
信號(hào)名 | 源 | 默認(rèn)值 | 功能 |
TVALID | No | N/A | Stream讀寫數(shù)據(jù)有效。為高指示數(shù)據(jù)有效。 |
TREADY | Yes | 1 | Stream讀寫讀準(zhǔn)備。為高表示對端設(shè)備空閑,準(zhǔn)備接收數(shù)據(jù);為低表示對端設(shè)備忙。 |
TDATA | Yes | 0 | Stream讀寫數(shù)據(jù),8到4096位寬。 |
TSTRB | Yes | 同TKEEP,否則為1 | 字節(jié)選通信號(hào)。用于表示更新存儲(chǔ)器的字節(jié)通道,對于數(shù)據(jù)總線的每8位數(shù)據(jù)有一位選通信號(hào)。 |
TKEEP | Yes | 1 | 字節(jié)選通信號(hào)。TKEEP未被確認(rèn)的那些相關(guān)的字節(jié)是空字節(jié),可以從數(shù)據(jù)流中去除。 |
TLAST | Yes | 0 | 表明包的邊界。 |
TID | Yes | 0 | 數(shù)據(jù)流標(biāo)識(shí)符。 |
TDEST | Yes | 0 | 數(shù)據(jù)流路由信息。 |
TUSER | Yes | 0 | 用戶定義的邊帶信息,這些信息能伴隨數(shù)據(jù)流進(jìn)行發(fā)送。 |
低功耗接口信號(hào)
表4?18 低功耗接口信號(hào)
AXI4猝發(fā)地址及選擇
地址選擇
主要描述AXI猝發(fā)類型、在一次猝發(fā)過程中如何計(jì)算地址以及字節(jié)傳輸?shù)耐ǖ馈0鹿?jié)如下:
●關(guān)于地址選擇
●猝發(fā)長度
●猝發(fā)大小
●猝發(fā)類型
●猝發(fā)地址
關(guān)于地址選擇
AXI協(xié)議是基于猝發(fā)方式,主設(shè)備開始每次的猝發(fā),是通過發(fā)送傳輸所需的控制信息和傳輸過程中所需的首字節(jié)地址的方式,隨著猝發(fā)交易進(jìn)行,從設(shè)備負(fù)責(zé)計(jì)算接下來的傳輸所需要的地址。
猝發(fā)數(shù)不能超過4KB臨界值,這是為了防止猝發(fā)長度在從設(shè)備之間出現(xiàn)交叉現(xiàn)象,同時(shí)也限制了從設(shè)備需要地址增量的大小。
猝發(fā)長度
AWLEN 或ARLEN信號(hào)說明每次猝發(fā)傳輸開始時(shí),數(shù)據(jù)傳輸?shù)膫€(gè)數(shù),如下圖所示,每猝發(fā)可以傳輸長1-16個(gè)數(shù)據(jù)。
圖4?26 每猝發(fā)可以傳輸長1-16個(gè)數(shù)據(jù)
對于循回猝發(fā)方式來講,猝發(fā)的長度必須是2,4,8,或16。
每次交易進(jìn)行時(shí),必須通過設(shè)置AWLEN 或ARLEN信號(hào)來確定傳輸長度,任何器件都不能通過盡早地終止猝發(fā)的方式去減少數(shù)據(jù)傳輸個(gè)數(shù)。在一次寫猝發(fā)的過程中,主設(shè)備通過禁止寫選通信號(hào)的方式終止進(jìn)一步的寫操作,但是它必須完成本次猝發(fā)中剩下數(shù)據(jù)傳輸。在一次讀猝發(fā)過程中,主設(shè)備能丟棄進(jìn)一步的讀到數(shù)據(jù),但是它必須完成在本次猝發(fā)中剩下的數(shù)據(jù)傳輸。
-------------------注意---------------------------------------------
當(dāng)訪問一個(gè)讀敏感設(shè)備例如FIFO時(shí),拋棄不需要的讀數(shù)據(jù)會(huì)導(dǎo)致丟失數(shù)據(jù)。主設(shè)備不會(huì)來訪問這樣一種設(shè)備,它使用的猝發(fā)長度比自身需要的還長。--------------------------------------------------------------------
猝發(fā)大小
下圖中顯示, 通過ARSIZE 或AWSIZE信號(hào)設(shè)定了,在一次猝發(fā)中,每一時(shí)鐘節(jié)拍內(nèi)傳輸數(shù)據(jù)字節(jié)的最大字節(jié)數(shù),或數(shù)據(jù)傳輸?shù)淖畲笞止?jié)數(shù)。
圖4?27 burst大小譯碼表
AXI協(xié)議通過傳輸?shù)刂穪頉Q定使用哪一個(gè)數(shù)據(jù)總線上的字節(jié)通道進(jìn)行傳輸。
對于地址遞增或地址循回的猝發(fā),并且要求傳輸數(shù)據(jù)的寬度比數(shù)據(jù)總線上的要窄,這中猝發(fā)過程中,每次數(shù)據(jù)傳輸,使用不同的字節(jié)通道,這些通道對應(yīng)于猝發(fā)中每一個(gè)時(shí)鐘節(jié)拍。一個(gè)固定格式的猝發(fā),其地址保持不變,每拍數(shù)據(jù)傳輸都使用相同的字節(jié)通道。
任何數(shù)據(jù)傳輸?shù)膶挾榷疾荒艹^交易中期間的數(shù)據(jù)總線寬度。
猝發(fā)類型
AXI 協(xié)議定義了三種猝發(fā)類型:
●地址固定的猝發(fā)
●地址遞增的猝發(fā)
●地址循回的猝發(fā)
下圖顯示了如何通過ARBURST 或 AWBURST信號(hào)選擇猝發(fā)類型。
圖4?28 burst類型譯碼表
地址固定的猝發(fā)
在固定猝發(fā)類型中,猝發(fā)過程中,每次傳輸?shù)刂繁3忠粯?。如?dāng)加載或者清空一個(gè)FIFO外設(shè)時(shí),使用這種類型可以重復(fù)訪問同一個(gè)位置。
地址遞增的猝發(fā)
在地址遞增的猝發(fā)類型中,猝發(fā)中每次傳輸所需的地址是通過增加前一個(gè)傳輸?shù)刂穪淼玫健T黾拥闹等Q于傳輸量的大小。例如:一次猝發(fā)中,每次傳輸所需的地址為四個(gè)字節(jié),那么這個(gè)地址就是有前一個(gè)地址值加四得到的。
地址循回的猝發(fā)
地址循回的猝發(fā)類型類似于地址遞增猝發(fā)類型,在地址遞增猝發(fā)類型中,每次傳輸所需的地址值是前一次傳輸?shù)刂返倪f增,而在地址循回猝發(fā)類型中,當(dāng)?shù)竭_(dá)循回的邊界時(shí),地址再次回到低地址。循回的邊界是指,每次猝發(fā)的大小乘以該猝發(fā)過程的傳輸總量。
對于地址循回的猝發(fā)有兩個(gè)限制:
●起始地址必須與數(shù)據(jù)的大小對齊
●猝發(fā)的長度必須為 2,4,8 或16
猝發(fā)地址
這一節(jié)提供一些簡單的公式,在猝發(fā)過程中,用于確定地址和傳輸字節(jié)通道。公式中使用到的變量如下:
Start_Address 主設(shè)備發(fā)起的起始地址
Number_Bytes 每次數(shù)據(jù)傳輸中允許的最大的字節(jié)數(shù)
Data_Bus_Bytes 數(shù)據(jù)總線上的字節(jié)通道數(shù)
Aligned_Address 與起始地址對齊的類型
Burst_Length 一次猝發(fā)中數(shù)據(jù)傳輸?shù)目偭?/p>
Address_N 猝發(fā)中傳輸N的地址,N是2-16之間的一個(gè)整數(shù)。
Wrap_Boundary 一次循回猝發(fā)中的最低地址
Lower_Byte_Lane 一次傳輸中最低地址對應(yīng)的字節(jié)通道
Upper_Byte_Lane 一次傳輸中最高地址對應(yīng)的字節(jié)通道
INT(x) x四舍五入后的值
使用如下公式確定猝發(fā)過程中的傳輸?shù)刂?:
● Start_Address = ADDR
● Number_Bytes=2SIZE
● Burst_Length= LEN+1
●Aligned_Address=(INT(Start_Address / Number_Bytes))x Number_Bytes
使用如下公式確定猝發(fā)中首次傳輸所需的地址
●Address_1 = Start_Address .
使用如下公式確定猝發(fā)中首次傳輸后任何傳輸所需的地址
●Address_N = Aligned_Address+(N–1) x Number_Bytes.
對于循回猝發(fā)方式,Wrap_Boundary這個(gè)變量用于記錄循回的邊界:
●Wrap_Boundary =(INT (Start_Address /( Number_Bytesx Burst_Length)))
x(Number_Bytesx Burst_Length).
如果Address_N = Wrap_Boundary +(Number_Bytesx Burst_Length),使用以下公式:
●Address_N = Wrap_Boundary .
計(jì)算完循回邊界后使用如下公式:
●Address_N = Start_Address +((N–1)x Number_Bytes) - ( Number_Bytesx Burst_Length).
通過使用以下方程可以確定一次猝發(fā)中,哪個(gè)字節(jié)通道用于首次傳輸
●Lower_Byte_Lane=Start_Address-(INT(Start_Address/ Data_Bus_Bytes))
x Data_Bus_Bytes
●Upper_Byte_Lane=Aligned_Address+(Number_Bytes-1)-(INT ( Start_Address / Data_Bus_Bytes)) x Data_Bus_Bytes.
使用如下公式可以確定一次猝發(fā)中,首次傳輸之后,所有傳輸都使用了哪些字節(jié)通道
●Lower_Byte_Lane= Address_N –(INT ( Address_N / Data_Bus_Bytes)) x Data_Bus_Bytes
●Upper_Byte_Lane= Lower_Byte_Lane+ Number_Bytes–1.
傳輸?shù)臄?shù)據(jù)公式如下:
●DATA[(8xUpper_Byte_Lane)+7:(8xLower_Byte_Lane)].
-
AXI4
+關(guān)注
關(guān)注
0文章
20瀏覽量
8915 -
axi協(xié)議
+關(guān)注
關(guān)注
0文章
8瀏覽量
2151
原文標(biāo)題:?AXI總線詳解-AXI4讀寫操作時(shí)序及AXI4猝發(fā)地址及選擇
文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論