FPGA-AXI總線協(xié)議
掃描二維碼
隨時隨地手機看文章
AXI(Advanced eXtensible Interface)是一種總線協(xié)議,該協(xié)議的第一個版本AXI3是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0協(xié)議中最重要的部分。2010發(fā)布的AMBA4.0包含了AXI的第二個版本AXI4。
AXI4總線分為主、從兩端,兩者間可以連續(xù)的進(jìn)行通信,AXI4總線采用READY、VALID握手通信機制,主設(shè)備收到從設(shè)備發(fā)送的READY,主設(shè)備將數(shù)據(jù)和VALID信號同時發(fā)給從設(shè)備。1)、AXI4:主要面向高性能地址映射通信的需求;2)、AXI4-Lite:是一個輕量級的,適用于吞吐量較小的地址映射通信總線,占用較少的邏輯資源,AXI4-Lite所有的猝發(fā)長度為1,數(shù)據(jù)總線寬度為32位或64位;
3)、AXI4-Stream:面向高速流數(shù)據(jù)傳輸,AXI4-Stream數(shù)據(jù)總線寬度為8、16、32、64、128、256、512和1024位,去掉了地址傳輸?shù)墓δ?,允許無限制的數(shù)據(jù)突發(fā)傳輸,無需考慮地址映射。
AXI總線分為五個通道:
- 讀地址通道,包含ARVALID,ARADDR,ARREADY信號;
- 寫地址通道,包含AWVALID,AWADDR,AWREADY信號;
- 讀數(shù)據(jù)通道,包含RVALID,RDATA,RREADY,RRESP信號;
- 寫數(shù)據(jù)通道,包含WVALID,WDATA,WSTRB,WREADY信號;
- 寫應(yīng)答通道,包含BVALID,BRESP,BREADY信號;
AXI4和AXI4-Lite接口信號1)全局信號
|
信號名 |
AXI4 |
AXI4-Lite |
| ACLK |
全局時鐘 |
|
| ARESETN |
全局復(fù)位,低有效 |
|
|
信號名 |
源 | AXI4 |
AXI4-Lite |
| AWID |
主 |
寫地址ID。這個信號用于寫地址信號組的標(biāo)記 | 不支持 |
|
AWADDR |
主 |
寫地址。寫地址給出突發(fā)數(shù)據(jù)傳輸?shù)牡谝粋€傳輸?shù)刂?/span> |
|
| AWLEN |
主 |
突發(fā)長度。給出突發(fā)傳輸中準(zhǔn)確的傳輸個數(shù)。支持INCR和WRAP傳輸模式。 |
不支持 |
| AWSIZE |
主 |
突發(fā)大小。這個信號用于確定突發(fā)傳輸中每個傳輸?shù)拇笮 ?/span> |
不支持 |
| AWBURST |
主 |
突發(fā)類型。該消息與突發(fā)大小消息一致,表示在突發(fā)過程中,地址如何應(yīng)用于每個傳輸。支持INCR和WRAP傳輸模式。 | 不支持 |
|
AWLOCK |
主 | 鎖類型。該信號提供了關(guān)于傳輸原子特性的額外信息 | 不支持 |
|
AWCACHE |
主 | 緩存類型,建議值為0011。 |
|
|
AWPROT |
主 | 保護(hù)類型,建議值為000。 |
|
| AWQOS |
主 |
QoS標(biāo)識符,Xilinx AXI4 不支持。 |
不支持 |
|
AWREGION |
主 | 用于每個寫操作的地址通道上的域標(biāo)識符。 |
不支持 |
| AWUSER |
主 |
Xilinx不支持 | 不支持 |
| AWVALID | 主 | 寫地址有效信號。為高指示地址有效。 |
|
| AWREADY |
從 |
寫地址準(zhǔn)備信號。為高表示從設(shè)備空閑,準(zhǔn)備接收;為低表示從設(shè)備忙。 |
|
|
信號名 |
源 | AXI4 | AXI4-Lite |
|
WDATA |
主 |
寫數(shù)據(jù),32位到1024位寬。 |
只支持32位寬 |
|
WSTRB |
主 |
寫字節(jié)選通,用于表示更新存儲器的字節(jié)通道,對于數(shù)據(jù)總線的每8位數(shù)據(jù)有一位寫選通信號。 |
從設(shè)備端可選擇忽略 |
| WLAST |
主 |
寫最后一個數(shù)據(jù)指示信號。表示突發(fā)傳輸中的最后一個數(shù)據(jù)。 |
不支持 |
| WUSER | 主 | Xilinx AXI4不支持 | 不支持 |
|
WVALID |
主 |
寫有效。為高指示數(shù)據(jù)有效。 |
|
|
WREADY |
從 |
寫準(zhǔn)備。為高表示從設(shè)備空閑,準(zhǔn)備接收數(shù)據(jù);為低表示從設(shè)備忙。 |
|
|
信號名 |
源 |
AXI4 |
AXI-Lite |
| BID |
從 |
響應(yīng)ID。寫響應(yīng)識別標(biāo)記,BID值必須匹配AWID值 |
不支持 |
|
BRESP |
從 |
寫響應(yīng)。該信號表示寫狀態(tài),可允許相應(yīng)的表示為OKAY/EXOKAY/SLVERR/DECERR。 |
EXOKAY狀態(tài)不支持 |
| BUSER |
從 |
Xilinx AXI4不支持。 | 不支持 |
| BVALID |
從 |
寫響應(yīng)有效。為高指示響應(yīng)數(shù)據(jù)有效。 |
|
|
BREADY |
主 | 寫響應(yīng)準(zhǔn)備。為高表示主設(shè)備空閑,準(zhǔn)備接收數(shù)據(jù);為低表示主設(shè)備忙。 |
|
|
信號名 |
源 | AXI4 |
AXI-Lite |
|
ARID |
主 |
讀地址ID。這個信號用于讀地址信號組的標(biāo)記。 |
不支持 |
|
ARADDR |
主 | 讀地址。讀地址給出突發(fā)數(shù)據(jù)傳輸?shù)牡谝粋€傳輸?shù)刂贰?br /> |
|
| ARLEN | 主 | 突發(fā)長度。給出突發(fā)傳輸中準(zhǔn)確的傳輸個數(shù)。支持INCR和WRAP傳輸模式。 | 不支持 |
|
ARSIZE |
主 | 突發(fā)大小。這個信息用于確定突發(fā)傳輸中每個傳輸?shù)拇笮 ?br /> | 不支持 |
|
ARBURST |
主 | 突發(fā)類型。該信息與突發(fā)大小信息一起,表示在突發(fā)過程中,地址如何應(yīng)用于每個傳輸。支持INCR和WRAP傳輸模式。 | 不支持 |
|
ARLOCK |
主 | 鎖類型。該信號提供了關(guān)于傳輸原子特性的額外信息。 | 不支持 |
|
ARCACHE |
主 |
緩存類型,建議值為0011。 |
|
|
ARPROT |
主 |
保護(hù)類型,建議值為000。 |
|
|
ARQOS |
主 | QoS標(biāo)識符,Xilinx AXI4不支持。 | 不支持 |
|
ARREGION |
主 | 用于每個讀操作的地址通道上的域標(biāo)識符。 | 不支持 |
|
ARUSER |
主 | Xilinx AXI4 不支持。 | 不支持 |
|
ARVALID |
主 |
讀地址有效信號。為高指示地址有效。 |
|
|
ARREADY |
從 |
讀地址準(zhǔn)備信號。為為高表示從設(shè)備空閑,準(zhǔn)備接收數(shù)據(jù);為低表示從設(shè)備忙。 |
|
|
信號名 |
源 | AXI4 |
AXI-Lite |
|
RID |
從 |
讀ID標(biāo)記,該信號是讀數(shù)據(jù)信號組標(biāo)記,由從設(shè)備產(chǎn)生RID,RID必須和讀交易中的ARID匹配。 |
不支持 |
|
RDATA |
從 |
讀數(shù)據(jù)。32位到1024位寬。 |
只支持32位寬 |
| RRESP | 從 | 讀響應(yīng)。該信號表示讀狀態(tài),可允許相應(yīng)的表示為OKAY/EXOKAY/SLVERR/DECERR。 |
EXOKAY狀態(tài)不支持 |
|
RLAST |
從 |
讀最后一個數(shù)據(jù)指示信號。表示突發(fā)傳輸中的最后一個數(shù)據(jù)。 |
不支持 |
|
RUSER |
從 |
Xilinx AXI4不支持。 |
不支持 |
|
RVALID |
從 | 讀有效。為高指示數(shù)據(jù)有效。 |
|
|
RRADY |
主 |
讀準(zhǔn)備。為高表示主設(shè)備空閑,準(zhǔn)備接收數(shù)據(jù);為低表示主設(shè)備忙。 |
|
|
信號名 |
源 | 默認(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é)選通信號。用于表示更新存儲器的字節(jié)通道,對于數(shù)據(jù)總線的每8位數(shù)據(jù)有一位選通信號。 |
|
TKEEP |
Yes |
1 |
字節(jié)選通信號。TKEEP未被確認(rèn)的那些相關(guān)的字節(jié)是空字節(jié),可以從數(shù)據(jù)流中去除。 |
|
TLAST |
Yes |
0 |
表明包的邊界。 |
| TID | Yes | 0 |
數(shù)據(jù)流表示符。 |
|
TDEST |
Yes |
0 |
數(shù)據(jù)流路由信息。 |
|
TUSER |
Yes | 0 |
用戶定義的邊帶信息,這些信息能伴隨數(shù)據(jù)流進(jìn)行發(fā)送。 |
主機/設(shè)備之間的握手過程以及READY和VALID握手信號的關(guān)系以及默認(rèn)值。
1、全部5個通道使用相同的VALID/READY握手機制傳輸數(shù)據(jù)及控制信息。傳輸源產(chǎn)生VALID信號來指明何時數(shù)據(jù)或控制信息有效。而目的源產(chǎn)生READY信號來指明已經(jīng)準(zhǔn)備好接受數(shù)據(jù)或控制信息。傳輸發(fā)生在VALID和READY信號同時為高的時候。VALID和READY信號的出現(xiàn)有三種關(guān)系。
(1)VALID先變高READY后變高。時序圖如下:
(2)READY先變高VALID后變高。時序圖如下:
同樣在箭頭處信息傳輸發(fā)生。
(3)VALID和READY信號同時變高。時序圖如下:
在這種情況下,信息傳輸立馬發(fā)生,如圖箭頭處指明信息傳輸發(fā)生。
2、通道之間的關(guān)系
地址、讀、寫和寫響應(yīng)通道之間的關(guān)系是靈活的。
例如,寫數(shù)據(jù)可以出現(xiàn)在接口上早于與相關(guān)聯(lián)的寫地址,也有可能寫數(shù)據(jù)與寫地址在一個周期中出現(xiàn)。
兩種關(guān)系必須被保持:
(1)讀數(shù)據(jù)必須總是跟在與其數(shù)據(jù)相關(guān)聯(lián)的地址之后。
(2)寫響應(yīng)必須總是跟在與其相關(guān)聯(lián)的寫事務(wù)的最后出現(xiàn)。
3、通道握手信號之間的依賴性
讀事務(wù)握手依賴關(guān)系如圖:
(1)設(shè)備可以在ARVALID出現(xiàn)的時候在給出ARREADY信號,也可以先給出ARREADY信號,再等待ARVALID信號。
(2)但是設(shè)備必須等待ARVALID和ARREADY信號都有效才能給出RVALID信號,開始數(shù)據(jù)傳輸。
寫事務(wù)握手依賴關(guān)系如圖:
(1)主機必須不能夠等待設(shè)備先給出AWREADY或WREADY信號后再給出信號AWVALID或WVALID。
(2)設(shè)備可以等待信號AWVALID或WVALID信號有效或者兩個都有效之后再給出AWREADY信號。
(3)設(shè)備可以等待AWVALID或WVALID信號有效或者兩個都有效之后再給出WREADY信號。





