AXI Stream介面,AXI 流介面規範
支援很多不同的流型別。流協議在傳輸和包之間定義了聯絡。
訊號 |
源 |
描述 |
ACLK |
時鐘源 |
全域性時鐘訊號。所有訊號在ACLK訊號上升沿取樣。 |
ARESETn |
復位源 |
全域性復位訊號,ARESETn低有效。 |
TVALID |
主 |
TVALID表明主裝置正在驅動一個有效的傳輸。當確認TVALID和TREADY訊號後,發生一個傳輸。 |
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[(u-1):0] |
主 |
TUSER是使用者定義的邊帶資訊,這些資訊能伴隨資料流進行傳送。 |
TVALID和TREADY握手訊號用來確定跨越介面資料的時間。
雙向的流控制機制使得主裝置和從裝置能控制跨越介面所傳送的資料和控制資訊的速度。對於一個發生的傳輸,必須確認TVALID和TREADY訊號。
一個主裝置不允許在確認TVALID前,等待確認TREADY。
一旦確認TVALID,必須一直保持這個狀態,直到產生握手訊號。
在確認相應的TREADY訊號前,一個從裝置允許等待確認TVALID。
如果從裝置確認了TREADY,在TVALID訊號確認前,允許不確認(釋放)TREADY。
上圖給出了TVALID在TREADY前的握手訊號。
從圖中可以看出,主裝置給出資料和控制訊號,並且確認TVALID訊號為高。
一旦主裝置確認了VALID,來自主裝置的資料或者控制資訊保持不變。這種狀態一直保持到從裝置驅動TREADY訊號為高,用來表示從裝置可以接收資料和控制訊號。在這種情況下,一旦從裝置確認TREADY為高,則開始進行傳輸。箭頭標記的地方表示傳輸開始。
上圖給出了TREADY在TVALID前的握手訊號圖。
從圖中可以看出,從裝置在資料和控制資訊有效前,驅動TREADY訊號為高。
這表示,目的裝置能在一個ACLK週期內接收資料和控制資訊。在這種情況下,一旦主機確認TVALID訊號為高,則開始傳輸。箭頭標記的地方表示傳輸開始。
上圖給出了TVALID和TREADY握手的圖。在一個ACLK週期內,主裝置確認TVALID為高,從裝置確認TREADY為高。在箭頭標記的地方產生傳輸。