日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

AXI总线协议

發(fā)布時間:2024/1/3 综合教程 44 生活家
生活随笔 收集整理的這篇文章主要介紹了 AXI总线协议 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

AXI特定名詞

AXI Transaction:the complete set of required operations on the AXI bus form the AXI Transaction.表示傳輸一段數(shù)據(jù)(AXI burst)所需的一整套操作;

AXI Burst:any required payload data is transferred as an AXI Burst.表示AXI待傳數(shù)據(jù);

AXI Beats:a burst can comprise multiple data transfers, or AXI Beats.表示AXI burst的組成,一個Beat就是一個transfer。
關(guān)系:一個Burst指對一個地址上的數(shù)據(jù)進(jìn)行拆分后多次傳輸,傳輸Burst的過程稱為transaction,每次傳輸內(nèi)容稱為一個‘Beat’,傳輸Beat的過程稱為transfer。

AXI組成

AXI4協(xié)議中包含五種信道,通道之間相互獨立且存在差別,通過通道進(jìn)行通信之前需要使用VALID/READY 進(jìn)行握手,Read和Write根據(jù)Master定義:

讀地址信道(Read Address Channel)
寫地址信道(Write Address Channel)
讀數(shù)據(jù)信道(Read Data Channel)
寫數(shù)據(jù)信道(Write Data Channel)
寫響應(yīng)信道(Write Response Channel)

還有兩種Component

Master component
Slave component

通信由Master發(fā)起,Master可以對Slave進(jìn)行讀數(shù)據(jù)(read)或?qū)懀╳rite)數(shù)據(jù)。每次讀寫操作都需要一個地址,讀地址信道(Read Address Channel)和寫地址信道(Write Address Channel)用于傳輸?shù)刂?。在寫完?shù)據(jù)后,Master需要確認(rèn)Slave有沒有收完數(shù)據(jù),Slave收到完整數(shù)據(jù)后,會通過寫響應(yīng)信道(Write Response Channel)給Master一個反饋(completion),表示寫操作已經(jīng)完成。

VALID/READY 握手機(jī)制

在五個信道通信之前,需要使用VALID/READY進(jìn)行握手,信道通信僅發(fā)生在VALID和READY同時有效的階段[1]:

  由數(shù)據(jù)發(fā)送端發(fā)送VALID,表示已經(jīng)將數(shù)據(jù)、地址或控制信息置于寫總線上;

  由數(shù)據(jù)接收端發(fā)送READY,表示已經(jīng)準(zhǔn)備好接收發(fā)送端的信息;

當(dāng)VALID和READY同時置高時,在時鐘上升沿到達(dá)后,表示開始數(shù)據(jù)傳輸;完成數(shù)據(jù)傳輸后,兩個信號置低。

信道中的VALID/READY

五個信道的VALID/READY信號表示如下:

A表示Address,W表示W(wǎng)rite,B表示Back(Response),R表示Read;

在握手過程中,還會用到LAST信號。LAST信號存在Write Data Channel和Read Data Channel中,分別表示為WLAST和RLAST,用于標(biāo)記burst的最后一次數(shù)據(jù)傳輸,當(dāng)slave接收到LAST信號后,說明本次數(shù)據(jù)傳輸完成。

雙向流控機(jī)制

VALID/READY 機(jī)制使用雙向流控機(jī)制,指發(fā)送端通過 VALID 置起控制發(fā)送速度的同時,接收端也可以通過將置高READY 與否控制接收速度,反壓發(fā)送方的發(fā)送速度。

握手規(guī)則

信道的握手規(guī)則

VALID信號置高后,在完成本次傳輸之前不能拉低,直到有相應(yīng)的READY被聲明;

READY信號置高后可以在VALID信號置高之前取消;

VALID信號置高與READY信號無關(guān),VALID信號不能由READY信號控制;

在一個burst的最后一次transfer時,必須由LAST信號置高。

握手信號在不同操作下的依賴關(guān)系:

PS:單箭頭表示雙方無先后要求,雙箭頭表示箭頭所指對象應(yīng)遲于箭頭出發(fā)信號發(fā)送。

讀操作握手信號依賴關(guān)系:

  讀數(shù)據(jù)通道的握手信號要在讀地址通道后傳輸

讀操作數(shù)據(jù)傳輸圖:

寫操作握手信號依賴關(guān)系:

寫操作時,寫數(shù)據(jù)通道和寫地址通道沒有先后關(guān)系;

寫反饋通道信號必須在寫數(shù)據(jù)通道和寫地址通道握手后進(jìn)行;

WVALID信號與WLAST信號相關(guān);

寫操作數(shù)據(jù)傳輸圖:

信號

全局信號

ACLK,全局時鐘信號,所有傳輸操作都發(fā)生在上升沿;

ARESETn,全局復(fù)位信號,低電平有效,可以異步復(fù)位,但是必須和ACLK同步釋放。復(fù)位過程中VALID信號都要拉低,其他所有信號可以驅(qū)動為任意值。

復(fù)位過程中,Master必須把ARVILID、AWRVLID和WVALID拉低;Slave必須把RVIALID和BVALID拉低。

寫地址通道信號:

Signal Source Description
AWID Master 寫地址ID,寫地址
AWADDR Master 寫地址,在一次burst transaction中第一個transfer的地址。
AWLEN Master burst的長度,一次burst中的transfer的數(shù)量。
AWSIZE Master burst中一次transfer的字節(jié)數(shù)。
AWBURST Master burst類型和size信息,決定本次burst中trasnfer地址的計算方式
AWLOCK Master lock類型,
AWCACHE Master 內(nèi)存類型
AWPORT Master 保護(hù)類型,
AWQOS Master QoS
AWREGION Master 區(qū)域標(biāo)志,能實現(xiàn)單一物理接口對應(yīng)多個邏輯接口
AWUSER Master user信號,在寫地址信號中可選的用戶定義信號,僅在AXI4使用
AWVALID Master 寫地址的valid信號,表示寫地址和控制信號可以發(fā)送。
AWREADY Slave 寫地址的ready信號,表示slave可以接受一個地址或相關(guān)的控制信號。

讀地址通道信號

Signal Source Description
ARID Master 讀地址ID
ARADDR Master 讀地址,首地址?
ARLEN Master burst的長度,一次burst中的transfer的數(shù)量。
ARSISE Master burst中一次transfer的字節(jié)數(shù)。
ARBURST Master burst類型和size信息,決定本次burst中trasnfer地址的計算方式
ARLOCK Master lock類型
ARCACHE Master 內(nèi)存類型,表明一次傳輸如何通過系統(tǒng)
ARPROT Master 保護(hù)烈性,一次傳輸?shù)陌踩氨?/td>
ARQOS Master QoS
ARREGION Master 區(qū)域標(biāo)志
ARVALID Master 讀地址VALID信號
ARREADY Slave 讀地址READY信號

寫數(shù)據(jù)通道信號

Signal Source Description
WID Master 寫數(shù)據(jù)ID,僅AXI3支持
WDATA Master 寫數(shù)據(jù)
WSTRB Master 標(biāo)記寫數(shù)據(jù)中有效的字節(jié),一位對應(yīng)一個字節(jié)
WLAST Master 寫LAST信號,在本次burst的最后一次transfer中置高。
WUSER Master user信號,在寫數(shù)據(jù)信號中可選的用戶定義信號,僅在AXI4使用
WVALID Master 寫數(shù)據(jù)的valid信號,表示寫地址和控制信號可以發(fā)送。
WREADY Slave 寫數(shù)據(jù)的ready信號,表示slave可以接受一個地址或相關(guān)的控制信號

特點:存在一個讀數(shù)據(jù)通道沒有的STROBE信號,用于標(biāo)識寫數(shù)據(jù)中有效的傳輸字節(jié),或者用于讀寫寬度不對稱

讀數(shù)據(jù)通道

Signal Source Description
RID Slave 讀數(shù)據(jù)ID
WDATA Slave 讀數(shù)據(jù)
RRESP Slave 讀回復(fù)信號,表示讀transfer的狀態(tài)
RLAST Slave 讀LAST信號,在本次burst的最后一次transfer中置高。
RUSER Slave user信號,在讀數(shù)據(jù)信號中可選的用戶定義信號,僅在AXI4使用
RVALID Slave 寫數(shù)據(jù)的valid信號,表示寫地址和控制信號可以發(fā)送。
RREADY Master 寫數(shù)據(jù)的ready信號,表示slave可以接受一個地址或相關(guān)的控制信號

特點:讀Response信號在讀數(shù)據(jù)通道中由slave發(fā)送,且無strobe信號。

寫回復(fù)通道信號

Signal Source Description
BID Slave 寫ID
BRESP Slave 寫回復(fù)信號,表示寫transaction的狀態(tài)
BUSER Slave user信號,僅AXI4支持
BVALID Slave 回復(fù)VALID,表示寫回復(fù)信號可以發(fā)送
BREADY Master 回復(fù)READY,表示master可以接受回復(fù)

低功耗接口信號

Signal Source Description
CSYSREQ 時鐘控制器 系統(tǒng)退出低功耗請求,此信號由時鐘控制器向外設(shè)發(fā)送
CSYSACK 外設(shè) 退出低功耗狀態(tài)確認(rèn)
CACTIVE 外設(shè) 外設(shè)請求時鐘有效

Burst傳輸

In the AHB protocol every transfer comes with an address value on HADDR. As you already know how the address will change because of what is signalled on HBURST, HTRANS and HSIZE, the HADDR information for all transfers after the start of the burst could be considered unnecessary as the target slave could calculate the addresses for transfers after the start of the burst.

In AXI the aim was to reduce unnecessary bus traffic, so here the master just issues the address for the start of a burst, and that is all that is required on the address channel. The target slave then calculates the address changes for each subsequent transfer in the burst based on what it sampled on AxADDR, AxSIZE, AxBURST and AxLEN.

So for example, if the AXI master signals an INCR burst of 4 transfers, with AxSIZE signalling 32-bit transfers, and AxADDR is 0x4, the slave can then see that the transfers for this burst will be to 0x4, 0x8, 0xC and 0x10.[2]

理解:由于每次傳輸?shù)臄?shù)據(jù)地址變化存在一定規(guī)律,因此AXI傳輸與規(guī)律相關(guān)的參數(shù),而非直接傳輸每次的數(shù)據(jù)地址

AXI協(xié)議是基于burst的,Master只給出transaction的第一個字節(jié)的地址,Slave必須計算后續(xù)transfer的地址。

通道信號描述

在地址通道中有三個信號控制進(jìn)行控制,包括:

BURST類型有三種,分別為:

AxBURST[1:0] Burst Type Description
0b00 FIXED 每個transger都使用相同地址,后續(xù)數(shù)據(jù)不斷寫入起始地址,刷新其實地址上的數(shù)據(jù)
0b01 INCR 后續(xù)地址在前一個地址的基礎(chǔ)上遞增
0b10 WRAP 從起始地址遞增至到達(dá)最高地址,再返回起始地址,重復(fù)上述操作,用于cache的訪問
0b11 Reserved

BURST len:指在一次Burst傳輸中transfer的次數(shù),從0開始,實際長度為AxLEN+1.

要求:

INCR類型最大支持長度為256,其他類型最大長度為16,所有BURST類型最少為1;
對于長度超過16的INCR BURST,可以轉(zhuǎn)換為較小的BURST,即使transaction attributes指明該transaction時Non-modifiable;
對于WRAP模式,BURST len僅能為2、4、8、16;
一次傳輸中,地址不能跨越一個4KB分區(qū),防止跨越兩個Slave的邊界;
一次transaction不能再未達(dá)到BURST len的時候提前結(jié)束。

BURST size:指在一次transfer中的最大數(shù)據(jù)寬度,burst size不能超過數(shù)據(jù)線本身寬度;當(dāng)數(shù)據(jù)線本身寬度大于BURST size時,將根據(jù)協(xié)議相關(guān)規(guī)定制定數(shù)據(jù)在部分?jǐn)?shù)據(jù)線中傳輸。

AxSIZE由三個字節(jié)表示,數(shù)據(jù)大小為2^AxSIZE[2:0]。

BURST address:

Start_Address:由Master決定,每個burst的第一個transfer的地址
Number_Bytes = burst size
Data_Bus_Bytes:總線寬度/8
Aligned_Address:Start_Address @ Number_Bytes

RRESP[1:0]和BRESP[1:0]

OKAY:Normal access success + Exclusive access failed

EXOKAY: Exclusive access okay

SLVERR: Slave error

FIFO滿或空;
transfer size不支持;
向只讀設(shè)備寫入;
Slave timeout;
access to a disabled or powered-down function

DECERR:Decode error

interconnnect不能成功向Slave access譯碼;
access一個缺省Slave,由缺省Slave回應(yīng)DECERR

在write transaction中,對于整個burst,slave只會回應(yīng)一個BRESP;

在read transavtion中,Slave可以對不同的transfer回應(yīng)不同的RRESP;

AxCACHE

參考文獻(xiàn)

[1]https://www.cnblogs.com/lkiller/p/4773235.html

[2]https://community.arm.com/developer/ip-products/system/f/embedded-forum/10057/burst-based-transactions-on-axi?ReplySortBy=Votes&ReplySortOrder=Descending

[3]https://wenku.baidu.com/view/45491979bf1e650e52ea551810a6f524ccbfcbd5.html?rec_flag=default&sxts=1582552068762

總結(jié)

以上是生活随笔為你收集整理的AXI总线协议的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。