目錄
AXI4總線
1、什么是AXI
2、AXI4協(xié)議的優(yōu)勢
AXI4的工作模式
AXI4讀操作:
AXI4寫操作
AXI4和AXI4-Lite、AXI4-Stream接口信號
握手信號
AXI相關術語
AXI4總線
1、什么是AXI
??? AXI(Advanced eXtensible Interface高級可擴展總線)是一種總線協(xié)議
??? AXI4包含3種類型的接口:
1)AXI4:主要面向高性能地址映射通信的需求;(突發(fā)數據)(地址映射模式)
2)AXI4-Lite:是一個輕量級的,適用于吞吐量較小的地址映射通信總線;(無突發(fā))
(地址映射模式)
3)AXI4-Stream:面向高速流數據傳輸(流模式)
2、AXI4協(xié)議的優(yōu)勢
可以掛載多個master和slave ,互相交互信息?
??? 1)高效:通過標準化的AXI接口,開發(fā)者只需要學習一種IP核的通訊協(xié)議即可;
??? 2)易用:針對具體應用提供合適的接口協(xié)議。
?????? AXI4:面向地址映射的接口,在單地址傳輸的情況下最大允許256個時鐘周期的數據突發(fā)長度;
?????? AXI4-Lite:一個輕量級的地址映射單次傳輸接口,占用較少的資源;
?????? AXI4-Stream:去掉了地址傳輸的功能,允許無限制的數據突發(fā)傳輸,無需考慮地址映射。
??? 3)易得:標準化的AXI接口協(xié)議資源,不僅可以在xilinx官網上獲得,也可以在全球范圍內ARM的所有合作伙伴處獲得。
?????? 大量的IP core支持AXI4協(xié)議;
?????? 大量的第三方AXI工具可提供多樣的系統(tǒng)開發(fā)、驗證和功能定制。
AXI4的工作模式
??? AXI4和AXI4-Lite包含5個不同的通道:
(1)寫地址通道
(2)寫數據通道
(3)寫響應通道
(4)讀地址通道
?(5)讀數據通道
數據可以在主從設備間同步的雙向傳輸,并且數據傳輸大小可以改變。AXI4將數據傳輸的突發(fā)長度限制為最大256,AXI4-Lite每次傳輸僅運輸傳輸一個數據。
AXI4讀操作:
如圖1所示,AXI4協(xié)議主從設備間的讀操作使用獨立的讀地址和讀數據通道,只需要一個地址就可以執(zhí)行最大為256的突發(fā)長度的讀操作。
?
- 首先master去判斷arready信號,當該信號為高時,代表slave已經準備好接收新的地址信息,否則master不能給slave發(fā)送地址信息
- 當第一步完成后,master通過read_addrsess通道給slave發(fā)送地址,具體操作:master必須拉高一個arvalid信號,在arvalid信號為高的時候,將對應的地址發(fā)送給slave
- 當第二步執(zhí)行完成后,slave就會通過read_data通道返回數據,master必須在rready和rvalid信號同時為高時,將數據讀取,否則不能讀取數據;當最后一個數據發(fā)送時,slave會將rlast信號同時拉高,代表最后一個數據發(fā)送完成。
PS?:在數據讀取時,讀取的數據從圖中可以看到不是連續(xù)讀取,說明slave是空閑時才傳遞
AXI4寫操作
如圖2所示,AXI4協(xié)議主從設備間的寫操作使用寫地址、寫數據和寫響應通道。只需要一個地址就可以執(zhí)行最大為256的突發(fā)長度的寫操作。
?
?
- 首先master去判斷awready信號,當該信號為高時,代表slave已經準備好接收新的地址信息,否則master不能給slave發(fā)送地址信息
-
當第一步完成后,master通過write_addrsess通道給slave發(fā)送地址,具體操作:master必須拉個一個awvalid信號,在awvalid信號為高的時候,將對應的地址發(fā)送給slave
- 然后發(fā)送寫數據,master必須在wready為高的時候,將wvalid信號拉高,同時將數據發(fā)送給salve,當master發(fā)送最后一個數據時,將wlast信號拉高一個周期,告訴slave這是最后一個數據,當slave收到wlast信號為高時,就會將收到的數據按照指定的地址寫入ddr
? ? ? ? 4.當master發(fā)送完寫數據后,必須通過writer response 收到slave的應答信號,Bready會拉? ? ? 高,在Bvalid也為高電平時,slave會將bresp信號拉高一個周期,master只要判斷到該信號為高電平,既可以給slave發(fā)送要寫的數據
AXI4和AXI4-Lite、AXI4-Stream接口信號
??? 1)全局信號
信號名 |
AXI4 |
AXI4-Lit |
ACLK |
全局時鐘 |
|
ARESETN |
全局復位,低有效。 |
?2)寫地址通道信號
信號名 |
源 |
AXI4 |
AXI4-Lit |
AWID |
主 |
寫地址ID。這個信號用于寫地址信號組的標記。 |
不支持 |
AWADDR |
主 |
寫地址。 寫地址給出突發(fā)數據傳輸的第一個傳輸地址。 |
|
AWLEN |
主 |
突發(fā)長度。給出突發(fā)傳輸中準確的傳輸個數。支持INCR和WRAP傳輸模式。 突發(fā)長度=awlen+1 |
不支持 |
AWSIZE |
主 |
突發(fā)大小。 這個信號用于確定突發(fā)傳輸中每個傳輸的大小。 總線位寬=2^size Betyes |
不支持 |
AWBURST |
主 |
突發(fā)類型。該信息與突發(fā)大小信息一起,表示在突發(fā)過程中,地址如何應用于每個傳輸。支持INCR和WRAP傳輸模式。 |
不支持 |
AWLOCK |
主 |
鎖類型。該信號提供了關于傳輸原子特性的額外信息(普通或互斥訪問)。 |
不支持 |
AWCACHE |
主 |
緩存類型,建議值為0011。 |
|
AWPROT |
主 |
保護類型,訪問權限,建議值為000。 |
|
AWQOS |
主 |
QoS標識符,xilinx AXI4不支持。 |
不支持 |
AWREGION |
主 |
用于每個寫操作的地址通道上的域標識符。通過該標識實現一個物理端口對應多個邏輯端口 |
不支持 |
AWUSER |
主 |
xilinx AXI4不支持。 |
不支持 |
AWVALID |
主 |
寫地址有效信號。為高指示地址有效。 |
|
AWREADY |
從 |
寫地址準備信號。為高表示從設備空閑,準備接收地址;為低表示從設備忙。 |
??? 3)寫數據通道信號
信號名 |
源 |
AXI4 |
AXI-Lite |
WDATA |
主 |
寫數據,32位到1024位寬 |
只支持32位寬 |
WSTRB |
主 |
寫字節(jié)選通,用于表示更新存儲器的字節(jié)通道,對于數據總線的每8位數據有一位寫選通信號。 |
從設備端可選擇忽略。 |
WLAST |
主 |
寫最后一個數據指示信號。表示突發(fā)傳輸中的最后一個數據。 |
不支持 |
WUSER |
主 |
xilinx AXI4不支持。 |
不支持 |
WVALID |
主 |
寫有效。為高指示數據有效。 |
|
WREADY |
從 |
寫準備。為高表示從設備空閑,準備接收數據;為低表示從設備忙。 |
??? 4)寫響應通道
信號名 |
源 |
AXI4 |
AXI-Lite |
BID |
從 |
響應ID。寫響應識別標記,BID值必須匹配AWID值。 |
不支持 |
BRESP |
從 |
寫響應。該信號表示寫狀態(tài),可允許相應的表示為OKAY\EXOKAY\SLVERR\DECERR。 |
EXOKAY狀態(tài)不支持 |
BUSER |
從 |
xilinx AXI4不支持。 |
不支持 |
BVALID |
從 |
寫響應有效。為高指示響應數據有效。 |
|
BREADY |
主 |
寫響應準備。為高表示主設備空閑,準備接收寫響應;為低表示主設備忙。 |
??? 5)讀地址通道
信號名 |
源 |
AXI4 |
AXI-Lite |
ARID |
主 |
讀地址ID。這個信號用于讀地址信號組的標記。 |
不支持 |
ARADDR |
主 |
讀地址。讀地址給出突發(fā)數據傳輸的第一個傳輸地址。 |
|
ARLEN |
主 |
突發(fā)長度。給出突發(fā)傳輸中準確的傳輸個數。支持INCR和WRAP傳輸模式。 |
不支持 |
ARSIZE |
主 |
突發(fā)大小。這個信號用于確定突發(fā)傳輸中每個傳輸的大小。 |
不支持 |
ARBURST |
主 |
突發(fā)類型。該信息與突發(fā)大小信息一起,表示在突發(fā)過程中,地址如何應用于每個傳輸。支持INCR和WRAP傳輸模式。 |
不支持 |
ARLOCK |
主 |
鎖類型。該信號提供了關于傳輸原子特性的額外信息(普通或互斥訪問)。 |
不支持 |
ARCACHE |
主 |
緩存類型,建議值為0011。 |
|
ARPROT |
主 |
保護類型,建議值為000。 |
|
ARQOS |
主 |
QoS標識符,xilinx AXI4不支持。 |
不支持 |
ARREGION |
主 |
用于每個讀操作的地址通道上的域標識符。 |
不支持 |
ARUSER |
主 |
xilinx AXI4不支持。 |
不支持 |
ARVALID |
主 |
讀地址有效信號。為高指示地址有效。 |
|
ARREADY |
從 |
讀地址準備信號。為高表示從設備空閑,準備接收地址;為低表示從設備忙。 |
??? 6)讀數據通道
信號名 |
源 |
AXI4 |
AXI-Lite |
RID |
從 |
讀ID標記,該信號是讀數據信號組標記,由從設備產生RID,RID必須和讀交易中的ARID匹配。 |
不支持 |
RDATA |
從 |
讀數據。32位到1024位寬 |
只支持32位寬 |
RRESP |
從 |
讀響應。該信號表示讀狀態(tài),可允許相應的表示為OKAY\EXOKAY\SLVERR\DECERR。 |
EXOKAY狀態(tài)不支持 |
RLAST |
從 |
讀最后一個數據指示信號。表示突發(fā)傳輸中的最后一個數據。 |
不支持 |
RUSER |
從 |
xilinx AXI4不支持。 |
不支持 |
RVALID |
從 |
讀有效。為高指示數據有效。 |
|
RREADY |
主 |
讀準備。為高表示主設備空閑,準備接收數據;為低表示主設備忙。 |
??? 7)AXI4-Stream信號
信號名 |
源 |
默認值 |
功能 |
TVALID |
No |
N/A |
Stream讀寫數據有效。為高指示數據有效。 |
TREADY |
Yes |
1 |
Stream讀寫讀準備。為高表示對端設備空閑,準備接收數據;為低表示對端設備忙。 |
TDATA |
Yes |
0 |
Stream讀寫數據,8到4096位寬。 |
TSTRB |
Yes |
同TKEEP,否則為1 |
字節(jié)選通信號。用于表示更新存儲器的字節(jié)通道,對于數據總線的每8位數據有一位選通信號。 |
TKEEP |
Yes |
1 |
字節(jié)選通信號。TKEEP未被確認的那些相關的字節(jié)是空字節(jié),可以從數據流中去除。 |
TLAST |
Yes |
0 |
表明包的邊界。 |
TID |
Yes |
0 |
數據流標識符。 |
TDEST |
Yes |
0 |
數據流路由信息。 |
TUSER |
Yes |
0 |
用戶定義的邊帶信息,這些信息能伴隨數據流進行發(fā)送。 |
握手信號
主機發(fā)送valid信號(數據有效)
從機發(fā)送ready信號(準備好了)
?
Master (主機):我們自己
Slave(從機): 例如MIG_DDR
握手信號有三種情況,都是對的,分別如下:
(1)vaild在前,ready在后
?(2)vaild在后,ready在前
?
?(3)vaild,ready一起
?
?
AXI相關術語
Channel (通道)
– Independent collection of AXI signals associated to a VALID signal
????
Interface (接口)
– Collection of one or more channels that expose an IP core’s function, connecting a master to a slave
– Each IP core may have multiple interfaces.
– Also: AXI4, AXI4-Lite, AXI4-Stream
????
Bus (總線)
– Multiple-bit signal (not an interface or channel) 多bit信號
一個接口里面有多個通道,每個通道有多個總線
?
Transfer (傳輸)
– Single clock cycle where information is communicated, qualified by a VALID handshake. (一個時鐘周期的傳輸)
Data beat.
Transaction (事務)
– Complete communication operation across a channel, composed of a one or more transfers
Burst (突發(fā))文章來源:http://www.zghlxwxcb.cn/news/detail-781772.html
– Transaction that consists of more than one transfer文章來源地址http://www.zghlxwxcb.cn/news/detail-781772.html
到了這里,關于FPGA——AXI4總線詳解的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!