AMBA_AXI總線(xiàn)詳解
掃描二維碼
隨時(shí)隨地手機(jī)看文章
第一部分
1、AXI簡(jiǎn)介:AXI(Advanced eXtensible Interface)是一種總線(xiàn)協(xié)議,該協(xié)議是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0協(xié)議中最重要的部分,是一種面向高性能、高帶寬、低延遲的片內(nèi)總線(xiàn)。它的地址/控制和數(shù)據(jù)相位是分離的,支持不對(duì)齊的數(shù)據(jù)傳輸,同時(shí)在突發(fā)傳輸中,只需要首地址,同時(shí)分離的讀寫(xiě)數(shù)據(jù)通道、并支持顯著傳輸訪問(wèn)和亂序訪問(wèn),并更加容易就行時(shí)序收斂。AXI 是AMBA 中一個(gè)新的高性能協(xié)議。AXI 技術(shù)豐富了現(xiàn)有的AMBA 標(biāo)準(zhǔn)內(nèi)容,滿(mǎn)足超高性能和復(fù)雜的片上系統(tǒng)(SoC)設(shè)計(jì)的需求。
2、 AXI 特點(diǎn):單向通道體系結(jié)構(gòu)。信息流只以單方向傳輸,簡(jiǎn)化時(shí)鐘域間的橋接,減少門(mén)數(shù)量。當(dāng)信號(hào)經(jīng)過(guò)復(fù)雜的片上系統(tǒng)時(shí),減少延時(shí)。
支持多項(xiàng)數(shù)據(jù)交換。通過(guò)并行執(zhí)行猝發(fā)操作,極大地提高了數(shù)據(jù)吞吐能力,可在更短的時(shí)間內(nèi)完成任務(wù),在滿(mǎn)足高性能要求的同時(shí),又減少了功耗。
獨(dú)立的地址和數(shù)據(jù)通道。地址和數(shù)據(jù)通道分開(kāi),能對(duì)每一個(gè)通道進(jìn)行單獨(dú)優(yōu)化,可以根據(jù)需要控制時(shí)序通道,將時(shí)鐘頻率提到最高,并將延時(shí)降到最低。

第二部分
本部分對(duì)AXI1.0協(xié)議的各章進(jìn)行整理。
第一章
本章主要介紹AXI協(xié)議和AXI協(xié)議定義的基礎(chǔ)事務(wù)。
1、 AXI總線(xiàn)共有5個(gè)通道分別是read address channel
、 write address channel 、 read data channel 、 write data channel、 write response channel。每一個(gè)AXI傳輸通道都是單方向的。
2、每一個(gè)事務(wù)都有地址和控制信息在地址通道(address channel)中,用來(lái)描述被傳輸數(shù)據(jù)的性質(zhì)。
3、讀事務(wù)的結(jié)構(gòu)圖如下:
4、寫(xiě)事務(wù)的結(jié)構(gòu)圖如下:
5、這5條獨(dú)立的通道都包含一個(gè)信息信號(hào)和一個(gè)雙路的VALD、READY握手機(jī)制。
6、信息源通過(guò)VALID信號(hào)來(lái)指示通道中的數(shù)據(jù)和控制信息什么時(shí)候有效。目地源用READY信號(hào)來(lái)表示何時(shí)能夠接收數(shù)據(jù)。讀數(shù)據(jù)和寫(xiě)數(shù)據(jù)通道都包括一個(gè)LAST信號(hào),用來(lái)指明一個(gè)事物傳輸?shù)淖詈笠粋€(gè)數(shù)據(jù)。
7、讀和寫(xiě)事務(wù)都有他們自己的地址通道,這地址通道攜帶著傳輸事務(wù)所必須的地址和信息。
8、讀數(shù)據(jù)通道傳送著從設(shè)備到主機(jī)的讀數(shù)據(jù)和讀響應(yīng)信息。讀響應(yīng)信息指明讀事務(wù)的完成狀態(tài)。
9、寫(xiě)數(shù)據(jù)通路傳送著主機(jī)向設(shè)備的寫(xiě)數(shù)據(jù)。每八個(gè)數(shù)據(jù)都會(huì)有一個(gè)byte lane ,用來(lái)指明數(shù)據(jù)總線(xiàn)上面的哪些byte有效。寫(xiě)響應(yīng)通道提供了設(shè)備響應(yīng)寫(xiě)事務(wù)的一種方式。這完成信號(hào)每一次突發(fā)式讀寫(xiě)會(huì)產(chǎn)生一個(gè)。
10、主機(jī)和設(shè)備的接口和互聯(lián)圖如下:
11、傳輸?shù)刂沸畔⒑蛿?shù)據(jù)都是在VALID和READY同時(shí)為高時(shí)有效。
12、突發(fā)式讀的時(shí)序圖如下:
當(dāng)?shù)刂烦霈F(xiàn)在地址總線(xiàn)后,傳輸?shù)臄?shù)據(jù)將出現(xiàn)在讀數(shù)據(jù)通道上。設(shè)備保持VALID為低直到讀數(shù)據(jù)有效。為了表明一次突發(fā)式讀寫(xiě)的完成,設(shè)備用RLAST信號(hào)來(lái)表示最后一個(gè)被傳輸?shù)臄?shù)據(jù)。
13、重疊突發(fā)式讀時(shí)序圖如下:
設(shè)備會(huì)在第一次突發(fā)式讀完成后處理第二次突發(fā)式讀數(shù)據(jù)。也就意味著,主機(jī)一開(kāi)始傳送了兩個(gè)地址給設(shè)備。設(shè)備在完全處理完第一個(gè)地址的數(shù)據(jù)之后才開(kāi)始處理第二個(gè)地址的數(shù)據(jù)。
14、突發(fā)式寫(xiě)時(shí)序圖如下:
這一過(guò)程的開(kāi)始時(shí),主機(jī)發(fā)送地址和控制信息到寫(xiě)地址通道中,然后主機(jī)發(fā)送每一個(gè)寫(xiě)數(shù)據(jù)到寫(xiě)數(shù)據(jù)通道中。當(dāng)主機(jī)發(fā)送最后一個(gè)數(shù)據(jù)時(shí),WLAST信號(hào)就變?yōu)楦摺.?dāng)設(shè)備接收完所有數(shù)據(jù)之后他將一個(gè)寫(xiě)響應(yīng)發(fā)送回主機(jī)來(lái)表明寫(xiě)事務(wù)完成。
15、AXI協(xié)議支持亂序傳輸。他給每一個(gè)通過(guò)接口的事務(wù)一個(gè)IDtag。協(xié)議要求相同ID tag的事務(wù)必須有序完成,而不同ID tag可以亂序完成。
第二章
本章主要介紹一些信號(hào)描述,其中包括全局信號(hào)、寫(xiě)地址通道信號(hào)、寫(xiě)數(shù)據(jù)通道信號(hào)、寫(xiě)響應(yīng)通道信號(hào)、讀地址通道信號(hào)、讀數(shù)據(jù)通道信號(hào)、低功耗接口信號(hào)。本章的所有表都是以32位的數(shù)據(jù)總線(xiàn)、4位的寫(xiě)數(shù)據(jù)閘門(mén)、4位的ID段。
1、全局信號(hào)
|
信號(hào) |
源 |
描述 |
|
ACLK |
Clock source |
全局時(shí)鐘信號(hào) |
|
ARESETn |
Reset source |
全局復(fù)位信號(hào),低電平有效 |
2、寫(xiě)地址通道信號(hào)
|
信號(hào) |
源 |
描述 |
|
AWID[3:0] |
主機(jī) |
寫(xiě)地址ID,這個(gè)信號(hào)是寫(xiě)地址信號(hào)組的ID tag。 |
|
AWADDR[31:0] |
主機(jī) |
寫(xiě)地址。 |
|
AWLEN[3:0] |
主機(jī) |
突發(fā)式寫(xiě)的長(zhǎng)度。此長(zhǎng)度決定突發(fā)式寫(xiě)所傳輸?shù)臄?shù)據(jù)的個(gè)數(shù)。 |
|
AWSIZE[2:0] |
主機(jī) |
突發(fā)式寫(xiě)的大小。 |
|
AWBURST[1:0] |
主機(jī) |
突發(fā)式寫(xiě)的類(lèi)型。 |
|
AWLOCK[1:0] |
主機(jī) |
鎖類(lèi)型。 |
|
AWCACHE[3:0] |
主機(jī) |
Cache類(lèi)型。這信號(hào)指明事務(wù)的bufferable、cacheable、write-through、write-back、allocate attributes信息。 |
|
AWPROT[2:0] |
主機(jī) |
保護(hù)類(lèi)型。 |
|
AWVALID |
主機(jī) |
寫(xiě)地址有效。 1 = 地址和控制信息有效 0 = 地址和控制信息無(wú)效 這個(gè)信號(hào)會(huì)一直保持,直到AWREADY變?yōu)楦摺?/span> |
|
AWREADY |
設(shè)備 |
寫(xiě)地址準(zhǔn)備好。這個(gè)信號(hào)用來(lái)指明設(shè)備已經(jīng)準(zhǔn)備好接受地址和控制信息了。 1 = 設(shè)備準(zhǔn)備好 0 = 設(shè)備沒(méi)準(zhǔn)備好 |
3、寫(xiě)數(shù)據(jù)通道信號(hào)
|
信號(hào) |
源 |
描述 |
|
WID[3:0] |
主機(jī) |
寫(xiě)ID tag,WID的值必須與AWID的值匹配 |
|
WDATA[31:0] |
主機(jī) |
寫(xiě)的數(shù)據(jù)。 |
|
WSTRB[3:0] |
主機(jī) |
寫(xiě)閥門(mén)。WSTRB[n]標(biāo)示的區(qū)間為WDATA[(8*n)+7:(8*n)]
|
|
WLAST |
主機(jī) |
寫(xiě)的最后一個(gè)數(shù)據(jù)。 |
|
WVALID |
主機(jī) |
寫(xiě)有效 1 = 寫(xiě)數(shù)據(jù)和閥門(mén)有效 0 = 寫(xiě)數(shù)據(jù)和閥門(mén)無(wú)效 |
|
WREADY |
設(shè)備 |
寫(xiě)就緒。指明設(shè)備已經(jīng)準(zhǔn)備好接受數(shù)據(jù)了 1 = 設(shè)備就緒 0 = 設(shè)備未就緒 |
4、寫(xiě)響應(yīng)通道信號(hào)
|
信號(hào) |
源 |
描述 |
|
BID[3:0] |
設(shè)備 |
響應(yīng)ID , 這個(gè)數(shù)值必須與AWID的數(shù)值匹配。 |
|
BRESP[1:0] |
設(shè)備 |
寫(xiě)響應(yīng)。這個(gè)信號(hào)指明寫(xiě)事務(wù)的狀態(tài)??赡苡械捻憫?yīng):OKAY、EXOKAY、SLVERR、DECERR。 |
|
BVALID |
設(shè)備 |
寫(xiě)響應(yīng)有效。 1 = 寫(xiě)響應(yīng)有效 0 = 寫(xiě)響應(yīng)無(wú)效 |
|
BREADY |
主機(jī) |
接受響應(yīng)就緒。該信號(hào)表示主機(jī)已經(jīng)能夠接受響應(yīng)信息。 1 = 主機(jī)就緒 0 = 主機(jī)未就緒 |
5、讀地址通道信號(hào)
|
信號(hào) |
源 |
描述 |
|
ARID[3:0] |
主機(jī) |
讀地址ID。 |
|
ARADDR[31:0] |
主機(jī) |
讀地址。 |
|
ARLEN[3:0] |
主機(jī) |
突發(fā)式讀長(zhǎng)度。 |
|
ARSIZE[2:0] |
主機(jī) |
突發(fā)式讀大小。 |
|
ARBURST[1:0] |
主機(jī) |
突發(fā)式讀類(lèi)型。 |
|
ARLOCK[1:0] |
主機(jī) |
鎖類(lèi)型。 |
|
ARCACHE[3:0] |
主機(jī) |
Cache類(lèi)型。 |
|
ARPROT[2:0] |
主機(jī) |
保護(hù)類(lèi)型。 |
|
ARVALID |
主機(jī) |
讀地址有效。信號(hào)一直保持,直到ARREADY為高。 1 = 地址和控制信息有效 0 = 地址和控制信息無(wú)效 |
|
ARREADY |
設(shè)備 |
讀地址就緒。指明設(shè)備已經(jīng)準(zhǔn)備好接受數(shù)據(jù)了。 1 = 設(shè)備就緒 0 = 設(shè)備未就緒 |
6、讀數(shù)據(jù)通道信號(hào)
|
信號(hào) |
源 |
描述 |
|
RID[3:0] |
設(shè)備 |
讀ID tag。RID的數(shù)值必須與ARID的數(shù)值匹配。 |
|
RDATA[31:0] |
設(shè)備 |
讀數(shù)據(jù)。 |
|
RRESP[1:0] |
設(shè)備 |
讀響應(yīng)。這個(gè)信號(hào)指明讀傳輸?shù)臓顟B(tài):OKAY、EXOKAY、SLVERR、DECERR。 |
|
RLAST |
設(shè)備 |
讀事務(wù)傳送的最后一個(gè)數(shù)據(jù)。 |
|
RVALID |
設(shè)備 |
讀數(shù)據(jù)有效。 1 = 讀數(shù)據(jù)有效。 0 = 讀數(shù)據(jù)無(wú)效。 |
|
RREADY |
主機(jī) |
讀數(shù)據(jù)就緒。 1 = 主機(jī)就緒 0 = 主機(jī)未就緒 |
7、低功耗接口信號(hào)
|
信號(hào) |
源 |
描述 |
|
CSYSREQ |
CLOCK controller |
系統(tǒng)低功耗請(qǐng)求。此信號(hào)來(lái)自系統(tǒng)時(shí)鐘控制器,使外圍設(shè)備進(jìn)入低功耗狀態(tài)。 |
|
CSYSACK |
外圍設(shè)備 |
低功耗請(qǐng)求應(yīng)答。 |
|
CACTIVE |
外圍設(shè)備 |
Clock active 1 = 外圍設(shè)備時(shí)鐘請(qǐng)求 0 = 外圍設(shè)備時(shí)鐘無(wú)請(qǐng)求 |
第三章
本章介紹主機(jī)/設(shè)備之間的握手過(guò)程以及READY和VALD握手信號(hào)的關(guān)系以及默認(rèn)值。
1、全部5個(gè)通道使用相同的VALID/READY握手機(jī)制傳輸數(shù)據(jù)及控制信息。傳輸源產(chǎn)生VLAID信號(hào)來(lái)指明何時(shí)數(shù)據(jù)或控制信息有效。而目地源產(chǎn)生READY信號(hào)來(lái)指明已經(jīng)準(zhǔn)備好接受數(shù)據(jù)或控制信息。傳輸發(fā)生在VALID和READY信號(hào)同時(shí)為高的時(shí)候。VALID和READY信號(hào)的出現(xiàn)有三種關(guān)系。
(1)VALID先變高READY后變高。時(shí)序圖如下:
在箭頭處信息傳輸發(fā)生。
(2)READY先變高VALID后變高。時(shí)序圖如下:
同樣在箭頭處信息傳輸發(fā)生。
(3)VALID和READY信號(hào)同時(shí)變高。時(shí)序圖如下:
在這種情況下,信息傳輸立馬發(fā)生,如圖箭頭處指明信息傳輸發(fā)生。
2、通道之間的關(guān)系
地址、讀、寫(xiě)和寫(xiě)響應(yīng)通道之間的關(guān)系是靈活的。
例如,寫(xiě)數(shù)據(jù)可以出現(xiàn)在接口上早于與其相關(guān)聯(lián)的寫(xiě)地址。也有可能寫(xiě)數(shù)據(jù)與寫(xiě)地址在一個(gè)周期中出現(xiàn)。
兩種關(guān)系必須被保持:
(1)讀數(shù)據(jù)必須總是跟在與其數(shù)據(jù)相關(guān)聯(lián)的地址之后。
(2)寫(xiě)響應(yīng)必須總是跟在與其相關(guān)聯(lián)的寫(xiě)事務(wù)的最后出現(xiàn)。
3、通道握手信號(hào)之間的依賴(lài)性
讀事務(wù)握手依賴(lài)關(guān)系如圖:
(1)設(shè)備可以在ARVALID出現(xiàn)的時(shí)候在給出ARREADY信號(hào),也可以先給出ARREADY信號(hào),再等待ARVALID信號(hào)。
(2)但是設(shè)備必須等待ARVALID和ARREADY信號(hào)都有效才能給出RVALID信號(hào),開(kāi)始數(shù)據(jù)傳輸。
寫(xiě)事務(wù)握手依賴(lài)關(guān)系如圖:
(1)主機(jī)必須不能夠等待設(shè)備先給出AWREADY或WREADY信號(hào)信號(hào)后再給出信號(hào)AWVALID或WVLAID。
(2)設(shè)備可以等待信號(hào)AWVALID或WVALID信號(hào)有效或者兩個(gè)都有效之后再給出AWREADY信號(hào)。
(3)設(shè)備可以等待AWVALID或WVALID信號(hào)有效或者兩個(gè)信號(hào)都有效之后再給出WREADY信號(hào)。
第四章
本章主要介紹AXI突發(fā)式讀寫(xiě)的類(lèi)型和在一次突發(fā)式讀寫(xiě)事務(wù)內(nèi)如何計(jì)算地址和byte lanes。
1、突發(fā)式讀寫(xiě)的地址必須以4KB對(duì)齊。
2、信號(hào)AWLEN或信號(hào)ARLEN指定每一次突發(fā)式讀寫(xiě)所傳輸?shù)臄?shù)據(jù)的個(gè)數(shù)。
具體信息如下圖:
3、ARSIZE信號(hào)或AWSIZE信號(hào)指定每一個(gè)時(shí)鐘節(jié)拍所傳輸?shù)臄?shù)據(jù)的最大位數(shù)。
具體信息如下圖:
需要注意的是任何傳輸?shù)腟IZE都不能超過(guò)數(shù)據(jù)總線(xiàn)的寬度。
4、AXI協(xié)議定義了三種突發(fā)式讀寫(xiě)的類(lèi)型:固定式的突發(fā)讀寫(xiě)、增值式突發(fā)讀寫(xiě)、包裝式突發(fā)讀寫(xiě)。用信號(hào)ARBURST或AWBURST來(lái)選擇突發(fā)式讀寫(xiě)的類(lèi)型。具體信息如下圖:
(1)固定式突發(fā)讀寫(xiě)是指地址是固定的,每一次傳輸?shù)牡刂范疾蛔?。這樣的突發(fā)式讀寫(xiě)是重復(fù)的對(duì)一個(gè)相同的位置進(jìn)行存取。例如FIFO。
(2)增值式突發(fā)讀寫(xiě)是指每一次讀寫(xiě)的地址都比上一次的地址增加一個(gè)固定的值。
(3)包裝式突發(fā)讀寫(xiě)跟增值式突發(fā)讀寫(xiě)類(lèi)似。包裝式突發(fā)讀寫(xiě)的地址是包數(shù)據(jù)的低地址當(dāng)?shù)竭_(dá)一個(gè)包邊界。
包裝式突發(fā)讀寫(xiě)有兩個(gè)限制:
1起始地址必須以傳輸?shù)膕ize對(duì)齊。
2突發(fā)式讀寫(xiě)的長(zhǎng)度必須是2、4、8或者16。
5、關(guān)于一些地址的計(jì)算公式。
Start_Address 主機(jī)發(fā)送的起始地址
Number_Bytes 每一次數(shù)據(jù)傳輸所能傳輸?shù)臄?shù)據(jù)byte的最大數(shù)量
Data_Bus_Bytes 數(shù)據(jù)總線(xiàn)上面byte lanes的數(shù)量
Aligned_Address 對(duì)齊版本的起始地址
Burst_Length 一次突發(fā)式讀寫(xiě)所傳輸?shù)臄?shù)據(jù)的個(gè)數(shù)
Address_N 每一次突發(fā)式讀寫(xiě)所傳輸?shù)牡刂窋?shù)量,范圍是2-16
Wrap_Boundary 包裝式突發(fā)讀寫(xiě)的最低地址
Lower_Byte_Lane 傳輸?shù)淖畹偷刂返腷yte lane
Upper_Byte_Lane 傳輸?shù)淖罡叩刂返腷yte lane
INT(x) 對(duì)x進(jìn)行向下取整
下面是計(jì)算公式:
Start_Address = ADDR
Number_Bytes = 2SIZE
Burst_Length = LEN + 1
Aligned_Address = (INT(Start_Address / Number_Bytes) ) x Number_Bytes
Address_1 = Start_Address
Address_N = Aligned_Address + (N – 1) x Number_Bytes
Wrap_Boundary = (INT(Start_Address / (Number_Bytes x Burst_Length)))
x (Number_Bytes x Burst_Length)
如果有Address_N = Wrap_Boundary + (Number_Bytes x Burst_Length),則后面的公式成立Address_N = Wrap_Boundary。
第一次突發(fā)式讀寫(xiě):
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
除了第一次讀寫(xiě)之后的讀寫(xiě):
Lower_Byte_Lane = Address_N – (INT(Address_N / Data_Bus_Bytes))
x Data_Bus_Bytes
Upper_Byte_Lane = Lower_Byte_Lane + Number_Bytes – 1
DATA[(8 x Upper_Byte_Lane) + 7 : (8 x Lower_Byte_Lane)]。
第五章
本章描述了AXI協(xié)議支持的系統(tǒng)級(jí)的Cache和保護(hù)單元。
1、ARCACHE[3:0]和AWCACHE[3:0]的編碼如下圖:
在一些情況下,信號(hào)AWACAHE可以用來(lái)確定哪個(gè)部件來(lái)提供寫(xiě)響應(yīng)。如果寫(xiě)事務(wù)被指定為bufferable ,那么他接受來(lái)自橋或者系統(tǒng)級(jí)的cache提供的寫(xiě)響應(yīng)。如果事務(wù)被指定為non-bufferable,那么寫(xiě)響應(yīng)必須有最終目的源提供。
2、AWPROT或者ARPROT信號(hào)提供三種級(jí)別的存取保護(hù):
(1)正常存取或者特權(quán)存取, ARPROT[0] 和 AWPROT[0]
(2)安全性存取或者沒(méi)有安全性存取, ARPROT[1] 和 AWPROT[1]
(3)指令存取或者數(shù)據(jù)存取 ARPROT[2] 和 AWPROT[2]
信號(hào)ARPROT[2:0] 和 信號(hào)AWPROT[2:0]的編碼如下圖:
第六章
本章描述了AXI協(xié)議工具的獨(dú)占式存取和鎖存取機(jī)制。
1、當(dāng)對(duì)自動(dòng)存取時(shí)能之后,可以通過(guò)信號(hào)ARLOCK[1:0]或信號(hào)AWLOCK[1:0]來(lái)配置獨(dú)占式存取和鎖存取。編碼如下圖:
我們通過(guò)信號(hào)ARLOCK[1:0]或AWLOCK[1:0]來(lái)選擇獨(dú)占式存取,用信號(hào)RRESP[1:0]或BRESP[1:0]來(lái)指明獨(dú)占式存取的成功與否。
2、主機(jī)在請(qǐng)求獨(dú)占式存取時(shí),設(shè)備會(huì)返回兩個(gè)響應(yīng)分別是EXOKAY和OKAY。EXOKAY是指設(shè)備支持獨(dú)占式存取,而OKAY是指設(shè)備不支持獨(dú)占式存取。、
3、如果一個(gè)設(shè)備不支持獨(dú)占式存取,可以忽略信號(hào)ARLOCK[1:0]和AWLOCK[1:0]。他必須提供OKAY響應(yīng)對(duì)正常式存取和獨(dú)占式存取。如果一個(gè)設(shè)備要支持獨(dú)占式存取則必須有硬件監(jiān)視器。
4、通過(guò)信號(hào)ARLOCK[1:0]或信號(hào)AWLOCK[1:0]對(duì)事務(wù)加鎖,需要確定只允許主機(jī)存取設(shè)備區(qū)域直到一個(gè)未加鎖的事務(wù)從同一個(gè)主機(jī)完成。此處推薦鎖存取只用來(lái)支持legacy devices。
5、推薦遵循下面兩天建議,但是不強(qiáng)制:
(1)保持所有鎖事務(wù)序列都在相同的4KB地址區(qū)域內(nèi)。
(2)限制用瑣事務(wù)序列對(duì)兩個(gè)事務(wù)加鎖。
第七章
本章描述了AXI讀寫(xiě)事務(wù)的四個(gè)設(shè)備響應(yīng)。
1、AXI協(xié)議對(duì)讀事務(wù)和寫(xiě)事務(wù)都有響應(yīng)。對(duì)于讀事務(wù),讀響應(yīng)與讀數(shù)據(jù)一起發(fā)送給主機(jī),而寫(xiě)事務(wù)將寫(xiě)響應(yīng)通過(guò)寫(xiě)響應(yīng)通道傳送。AXI協(xié)議的響應(yīng)類(lèi)型有OKAY、EXOKAY、SLVERR、DECERR。
2、通過(guò)信號(hào)RRESP[1:0]和BRESP[1:0]來(lái)編碼響應(yīng)信號(hào),具體如下圖:
協(xié)議規(guī)定請(qǐng)求的需要傳輸?shù)臄?shù)據(jù)數(shù)量必須被執(zhí)行,即使有錯(cuò)誤報(bào)告。在一次突發(fā)式讀寫(xiě)的剩余數(shù)據(jù)不會(huì)被取消傳輸,即使有單個(gè)錯(cuò)誤報(bào)告。
3、AXI協(xié)議的四種響應(yīng)類(lèi)型:正常存取成功、獨(dú)占式存取、設(shè)備錯(cuò)誤、譯碼錯(cuò)誤。AXI協(xié)議要求,在一個(gè)傳輸事務(wù)中的所有數(shù)據(jù)必須傳輸完成,即使有錯(cuò)誤狀態(tài)發(fā)生。
第八章
本章描述AXI協(xié)議用事務(wù)ID tags來(lái)處理多地址和亂序傳輸。
1、下面介紹5中事務(wù)IDs:
(1)AWID 這個(gè)ID tag是寫(xiě)地址群組信號(hào)。
(2)WID 這個(gè)是寫(xiě)ID tag在寫(xiě)事務(wù)中,與寫(xiě)數(shù)據(jù)在一起,主機(jī)傳送一個(gè)WID去匹配與地址相一致的AWID。
(3)BID 這個(gè)ID tag是寫(xiě)響應(yīng)事務(wù)中。設(shè)備會(huì)傳送BID去匹配與AWID和WID相一致的事務(wù)。
(4)ARID 這個(gè)ID tag是讀地址群組信號(hào)。
(5)RID 這個(gè)ID tag是在讀事務(wù)中。設(shè)備傳送RID去匹配與ARID相一致的事務(wù)。
2、主機(jī)可以使用一個(gè)事務(wù)的ARID或者AWID段提供的附加信息排序主機(jī)的需要。事務(wù)序列規(guī)則如下:
(1)從不同主機(jī)傳輸?shù)氖聞?wù)沒(méi)有先后順序限制。他們可以以任意順序完成。
(2)從同一個(gè)主機(jī)傳輸?shù)牟煌琁D事務(wù),也沒(méi)有先后順序限制。他們可以以任意順序完成。
(3)相同數(shù)值的AWID寫(xiě)事務(wù)數(shù)據(jù)序列必須按照順序依次寫(xiě)入主機(jī)發(fā)送的地址內(nèi)。
(4)相同數(shù)值的ARID讀事務(wù)數(shù)據(jù)序列必須遵循下面的順序:
1當(dāng)從相同設(shè)備讀相同的ARID時(shí),設(shè)備必須確保讀數(shù)據(jù)按照相同的地址順序接受。
2當(dāng)從不同的設(shè)備讀相同的ARID時(shí),接口處必須確保讀數(shù)據(jù)按照主機(jī)發(fā)送的相同的地址順序。
(5)在相同的AWID和ARID的讀事務(wù)和寫(xiě)事務(wù)之間沒(méi)有先后順序限制。如果主機(jī)要求有順序限制,那么必須確保第一次事務(wù)完全完成后才開(kāi)始執(zhí)行第二個(gè)事務(wù)。
3、當(dāng)一個(gè)主機(jī)接口與interconnect相連時(shí),interconnect會(huì)在信號(hào)ARID、AWID、WID段添加一位,每一個(gè)主機(jī)端口都是獨(dú)一無(wú)二的。
這樣做有兩個(gè)影響:
(1)主機(jī)不需要去知道其他主機(jī)的ID數(shù)值,因?yàn)閕nterconnect是ID值是唯一的,當(dāng)將主機(jī)number添加到段中。
(2)在設(shè)備接口處的ID段的寬度要比主機(jī)接口處的ID段寬。
對(duì)于讀數(shù)據(jù),interconnect附加一位到RID段中,用來(lái)判斷哪個(gè)主機(jī)端口讀取數(shù)據(jù)。Interconnect會(huì)移除RID段中的這一位在將RID的值送往正確的主機(jī)端口之前。
第九章
本章描述了AXI讀寫(xiě)數(shù)據(jù)總線(xiàn)傳輸?shù)牟煌笮『徒涌谌绾斡米止?jié)不變endian去握手混合endian傳輸。
1、Narrow傳輸,當(dāng)主機(jī)產(chǎn)生的數(shù)據(jù)寬度小于數(shù)據(jù)總線(xiàn)寬度時(shí),地址和控制信息決定哪一個(gè)byte lanes為有效的數(shù)據(jù)。下面是兩個(gè)應(yīng)用byte lanes的例子:
Example 1:
Example 2:
2、下面是一個(gè)數(shù)據(jù)不變性存取需求的數(shù)據(jù)結(jié)構(gòu)的例子。他包含頭信息,例如source、destination identifiers這些信息是采用little-endian格式,但是payload是big-endian 字節(jié)流,具體情況如下圖:
數(shù)據(jù)不變性確保在數(shù)據(jù)結(jié)構(gòu)中l(wèi)ittle-endian存取頭信息的部分不會(huì)破壞其他big-endian數(shù)據(jù)。
第十章
本章描述AXI協(xié)議不對(duì)齊握手傳輸。
1、AXI協(xié)議允許主機(jī)使用低階地址行去標(biāo)示一個(gè)不對(duì)齊的起始地址在突發(fā)讀寫(xiě)中。低階地址行的信息必須包含byte lane strobes信息。
2、下面是幾個(gè)例子來(lái)表明數(shù)據(jù)以對(duì)齊或者不對(duì)齊的地址為起始地址,分別在32位和64位數(shù)據(jù)總線(xiàn)上面?zhèn)鬏數(shù)那闆r。其中暗色的框表示沒(méi)有傳輸?shù)臄?shù)據(jù)。
第十一章
本章主要描述AXI時(shí)鐘和復(fù)位信號(hào)的時(shí)序。
1、在復(fù)位期間,以下接口必須遵循:
(1)主機(jī)接口必須將ARVALID、AWVALID、WVALID信號(hào)置低。
(2)設(shè)備接口必須將RVALID、BVALID信號(hào)置低。
(3)所有其它信號(hào)可以為任意值。
2、主機(jī)接口必須開(kāi)始將ARVALID、AWVLAID或WVALID置高僅僅在ARESETn信號(hào)變高后的ACK的第一個(gè)上升沿。具體情況如下圖:
第十二章
本章主要描述AXI協(xié)議在進(jìn)入和離開(kāi)低功耗狀態(tài)期間的時(shí)鐘控制接口。
1、低功耗時(shí)鐘控制接口包括下面兩個(gè)信號(hào):
(1)來(lái)自外圍設(shè)備的信號(hào),用于指明什么時(shí)候時(shí)鐘使能能或者禁能。
(2)兩個(gè)握手信號(hào)用于系統(tǒng)時(shí)鐘控制器請(qǐng)求退出或者進(jìn)入低功耗狀態(tài)。
2、時(shí)鐘控制接口的一個(gè)主要信號(hào)時(shí)CACTIVE,外圍設(shè)備用這個(gè)信號(hào)來(lái)指明請(qǐng)求時(shí)鐘使能。外圍設(shè)備置CACTIVE有效去請(qǐng)求時(shí)鐘,系統(tǒng)時(shí)鐘控制器必須馬上使能時(shí)鐘。如果外圍設(shè)備將CACTIVE置為無(wú)效,則系統(tǒng)時(shí)鐘控制器將自己決定是否使能或者禁能外圍設(shè)備時(shí)鐘。
3、AXI協(xié)議提供雙線(xiàn) request/acknowledge 握手來(lái)支持請(qǐng)求:
(1)CSYSREQ 當(dāng)外圍設(shè)備請(qǐng)求進(jìn)入低功耗狀態(tài)時(shí),系統(tǒng)時(shí)鐘控制器將CSYSREQ置低,平時(shí)CSYSREQ都是置高的。
(2)CSYSACK 外圍設(shè)備用CSYSACK信號(hào)作為進(jìn)入低功耗狀態(tài)和離開(kāi)低功耗狀態(tài)的應(yīng)答信號(hào)。
下面是CSYSREQ和CSYSACK信號(hào)之間的時(shí)序圖:
系統(tǒng)時(shí)鐘控制器在T1時(shí)刻發(fā)出請(qǐng)求,外圍設(shè)備在T2時(shí)刻給予應(yīng)答,此時(shí)進(jìn)入低功耗狀態(tài)。在T3時(shí)刻,CSYSREQ變高,請(qǐng)求離開(kāi)低功耗狀態(tài),在T4時(shí)刻得到應(yīng)答,此時(shí)離開(kāi)低功耗狀態(tài)進(jìn)入正常模式。
4、外圍設(shè)備可以選擇接受請(qǐng)求也可以選擇不接受請(qǐng)求。主要通過(guò)信號(hào)CACTIVE來(lái)決定。
接受請(qǐng)求的情況:
不接受請(qǐng)求的情況:
5、既可以通過(guò)系統(tǒng)也可以通過(guò)外圍設(shè)備來(lái)退出低功耗狀態(tài)。只要置信號(hào)CACTIVE和CSYSREQ這兩個(gè)信號(hào)中的一個(gè)為高就可以退出低功耗模式。
而系統(tǒng)可以通過(guò)置CSYSREQ為高來(lái)退出低功耗模式。
6、時(shí)鐘控制框圖如下:






