天天看點

關于AXI-Stream的介紹

一般來說都接口都隻支援AXI或AXI-lite,AXI-stream需要去做轉接

AXI4-Stream協定是一種用來連接配接需要交換資料的兩個部件的标準接口,它可以用于連接配接一個産生資料的主機和一個接受資料的從機。當然它也可以用于連接配接多個主機和從機。該協定支援多種資料流使用相同共享總線集合,允許建構類似于路由、寬窄總線、窄寬總線等更為普遍的互聯。AXI4-Stream接口的信号線定義如圖1所示[1]。比較重要的信号線有:

ACLK為時鐘線,所有信号都在ACLK上升沿被采樣;

ARESETn為複位線,低電平有效;

TVALID為主機資料同步線,為高表示主機準備好發送資料;

TREADY為從機資料同步線,為高表示從機準備好接收資料;這兩根線完成了主機與從機的握手信号,一旦二者都變高有效,資料傳輸開始。

TDATA為資料線,主機發送,從機接收。

TKEEP為主機資料有效訓示,為高代表對應的位元組為有效位元組,否則表示發送的為空位元組。

TLAST為主機最後一個字訓示,下一clk資料将無效,TVALID将變低。

TID,TDEST,TUSER均為多機通信時的信号,這裡不涉及,不予考慮。

關于AXI-Stream的介紹

Xilinx提供的流式IP核有很多用途,可以實作音頻流、視訊流、資料流到記憶體或者相反方向的傳輸。有人問了,記憶體是PS控制的,怎麼才能把PS裡DDR2的内容以Stream形式發出去呢(例如以固定速度送往DA,完成信号發生器的設計)?答案就是利用AXI總線做轉換。ZYNQ的PS部分是ARM Cortex A9系列,支援AXI4,AXI-Lite總線。PL部分也有相應AXI總線接口,這樣就能完成PS到PL的互聯。僅僅這樣還不夠,需要PL部分實作流式轉換,即AXI-Stream接口實作。Xilinx提供的從AXI到AXI-Stream轉換的IP核有:AXI-DMA,AXI-Datamover,AXI-FIFO-MM2S以及AXI-VDMA等。這些IP核可以在XPS的IP

 Catalog視窗中看到。

AXI-DMA:實作從PS記憶體到PL高速傳輸高速通道AXI-HP到AXI-Stream的轉換;

AXI-FIFO-MM2S:實作從PS記憶體到PL通用傳輸通道AXI-GP到AXI-Stream的轉換;

AXI-Datamover:實作從PS記憶體到PL高速傳輸高速通道AXI-HP到AXI-Stream的轉換,隻不過這次是完全由PL控制的,PS是完全被動的;

AXI-VDMA:實作從PS記憶體到PL高速傳輸高速通道AXI-HP到AXI-Stream的轉換,隻不過是專門針對視訊、圖像等二維資料的。

除了上面的還有一個AXI-CDMAIP核,這個是由PL完成的将資料從記憶體的一個位置搬移到另一個位置,無需CPU來插手。這個和我們這裡用的Stream沒有關系,是以不表。

這裡要和大家說明白一點,就是AXI總線和接口的差別。總線是一種标準化接口,由資料線、位址線、控制線等構成,具有一定的強制性。接口是其實體實作,即在硬體上的配置設定。在ZYNQ中,支援AXI-Lite,AXI4和AXI-Stream三種總線,但PS與PL之間的接口卻隻支援前兩種,AXI-Stream隻能在PL中實作,不能直接和PS相連,必須通過AXI-Lite或AXI4轉接。PS與PL之間的實體接口有9個,包括4個AXI-GP接口和4個AXI-HP接口、1個AXI-ACP接口,均為記憶體映射型AXI接口。

上面的IP是完成總線協定轉換,如果需要做某些處理(如變換、疊代、訓練……),則需要生成一個自定義Stream類型IP,與上面的Stream接口連接配接起來,實作資料輸入輸出。使用者的功能在自定義Stream類型IP中實作。

--------------------- 

作者:蔔居 

來源:CSDN 

原文:https://blog.csdn.net/kkk584520/article/details/9290019 

版權聲明:本文為部落客原創文章,轉載請附上博文連結!

繼續閱讀