AXI4-Stream

轉自: http://blog.csdn.net/calvin790704/article/details/53942363


現總結一下axi_stream:

1) valid 和ready實現握手;

2) strb按照byte指定data中的哪個byte是地址信息或者數據信息;

3) keep按照byte指定data中的哪個byte是字節修飾符,哪個是有效的;

4) last用於聲明最後一個,可有可沒有

5) 不同於一般數據流的是,這stream可以將空白的字節進行兩個包之間的合併,不同的傳輸stream之間可以通過tid區分,然後交叉傳輸;如果是相同id,沒有last信號,那麼他們可以合併;

6) 另外還有usr信號用於標記位置或者特殊數據項,提供輔助信息(奇偶性,控制信號),識別一個包的段

看起來很像spi i2c的那種,不過增加了交錯,合併的功能。增加了信號線可以識別空白字符和地址位置的字符。


AXI4-Stream去掉了地址項,允許無限制的數據突發傳輸規模;

一、接口信號描述

信號 

描述

ACLK

時鐘源

全局時鐘信號。所有信號在ACLK信號上升沿採樣。

ARESETn

復位源

全局復位信號。ARESETn低電平有效。

TVALID

TVALID表示主設備正在驅動一個有效的傳輸。當TVALIDTREADY都置位時,發生一個傳輸。

TREADY

TREADY表示從設備在當前週期能夠接收一次傳輸。

TDATA[(8n-1):0]

TDATA是基本的有效載荷,用來提供跨越接口的數據。數據爲整數個字節。

TSTRB[(n-1)0]

TSTRB位字節修飾符。用來描述TDATA相關字節內容作爲一個數字字節或者一個位置字節被處理。

TKEEP[(n-1)0]

TKEEP是字節修飾符。用來表明TDATA相關字節的內容是否作爲數據流的一部分被處理。TKEEP字節修飾符未被確認的那些相關字節是空字節,可以從數據流中去除。

TLAST

TLAST表明了包的邊界。

TID[(i-1):0]

TID是數據流的標識符,用來表明不同的數據流。

TDEST[(d-1):0]

TDEST爲據流提供路由信息。

TUSER[(n-1):0]

TUSER是用戶定義的邊帶信息,這它能伴隨數據流進行發送。

二、握手機制

只有當VALID READY 同時爲高時,才能進行傳輸。

VALIDREADY信號的先後順序有一下三種形式:


2.1  VALID早於READY信號



2.2  READY信號早於VALID信號


 

2.3 VALID 信號與 READY 信號同時

三、基本事務

AXI4-Stream跟AXI4的區別就是AXI4-Stream去除了地址線,這樣就不涉及讀寫數據的概念了,只有簡單的發送與接收說法,減少了延時。由於AXI4-Stream協議(amba4_axi4_stream_v1_0_protocol_spec.pdf)沒有時序圖,因此,我使用XILINX公司的產品指導手冊(pg007_srio_gen2_v3_1.pdf)裏的一個時序圖來演示AXI4-Stream各個信號的關係。如下圖所示:

 

上圖中,tready信號一直處於高電平,表示從設備做好了接收數據準備。tvalid變爲高電平的同時,tdata、tkeep、tuser也同時進行發送。在tdata最後一個字節數據時,tlast發送一個高電平脈衝。數據發送完成後,tvalid變爲低電平。這樣一次傳輸就完成了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章