0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AXI4 、 AXI4-Lite 、AXI4-Stream接口

FPGA之家 ? 來(lái)源:FPGA之家 ? 作者:FPGA之家 ? 2022-07-04 09:40 ? 次閱讀


第一次接觸AXI 4 總線(xiàn)是在使用xilinx zynq的時(shí)候,當(dāng)時(shí)用的時(shí)候一團(tuán)霧水,現(xiàn)在霧水少了些,但還是有很多地方?jīng)]有接觸到。本文作為自己的總結(jié),有任何問(wèn)題,歡迎批評(píng)指正。

什么是AXI總線(xiàn)?

AXI 作為 ARM AMBA 微控制器總線(xiàn)的一部分,第一次出現(xiàn)在AMBA 3.0中。后面AMBA 4.0發(fā)布,AXI4出現(xiàn)了。

AXI 4總線(xiàn)和別的總線(xiàn)一樣,都用來(lái)傳輸bits信息(包含了數(shù)據(jù)或者地址)。AXI4總線(xiàn)有三種類(lèi)型,分別是AXI4、AXI4-Lite、AXI4-Stream。

AXI4 是一種高性能memory-mapped總線(xiàn),AXI4-Lite是一只簡(jiǎn)單的、低通量的memory-mapped 總線(xiàn),而 AXI4-Stream 可以傳輸高速數(shù)據(jù)流。從字面意思去理解,AXI4-Lite是AXI4的輕量版。這里保留了memory-mapped的寫(xiě)法,主要是為了與AXI4-Stream區(qū)分開(kāi)。

memory-mapped 可以這樣去理解,假設(shè)有master A , 和 slave B, A與B通過(guò)AXI4或者AXI4-Lite連接通訊,A可以把B這個(gè)外設(shè)看作A上的某個(gè)地址。當(dāng)A向B傳輸數(shù)據(jù)時(shí),就等同于A向這個(gè)地址傳輸數(shù)據(jù)。

AXI4-Stream與AXI4、AXI4-Lite不同, 它不需要地址通道。

AXI4 、 AXI4-Lite 、AXI4-Stream接口

AXI4 和 AXI4-Lite接口包含5個(gè)不同的通道:兩個(gè)讀通道和三個(gè)寫(xiě)通道。

兩個(gè)讀通道:讀地址通道(read address channel)、讀數(shù)據(jù)通道(read data channel);

三個(gè)寫(xiě)通道:寫(xiě)地址通道(write address channel)、寫(xiě)數(shù)據(jù)通道(write data channel)、寫(xiě)響應(yīng)通道(write response channel);

7b6a5bba-fb2e-11ec-ba43-dac502259ad0.jpg

AXI4讀通道操作 圖片源自參考[1]

7b7e80a4-fb2e-11ec-ba43-dac502259ad0.jpg

AXI4 寫(xiě)通道操作 圖片源自參考[1]

讀通道和寫(xiě)通道是分開(kāi)的,因此可以完成數(shù)據(jù)的雙向傳輸。此外AXI4能夠?qū)崿F(xiàn)burst傳輸,換句說(shuō)就是,可以在一個(gè)地址后傳輸多個(gè)數(shù)據(jù),最多可以達(dá)256 字節(jié)。AXI4-Lite不支持burst傳輸。

AXI4-Stream 只有一個(gè)通道,不需要地址,可以burst 傳輸無(wú)限的數(shù)據(jù)。

常見(jiàn)的輔助IP

AXI Interconnect IP 和AXI SmartConnect IP :

上文提到AXI4 和 AXI4-Lite采用了memory-mapped 的方式,無(wú)論是1個(gè)master和1個(gè)slave、1個(gè)master和N個(gè)slave、N個(gè)master和1個(gè)slave、N個(gè)master和M個(gè)slave,采用這兩個(gè)ip能幫助我們完成映射。

AXI FIFOs :

緩存數(shù)據(jù),或者跨時(shí)鐘域時(shí)有用。

AXI Direct Memory Access (DMA) engines

當(dāng)我們有一個(gè)AXI4-stream接口的IP想與AXI4接口的IP相連時(shí),可以通過(guò)AXI DMA完成轉(zhuǎn)換。

ZYNQ上的AXI接口

7be432f0-fb2e-11ec-ba43-dac502259ad0.jpg

圖片源自 zynq 7 processing system ip

zynq的ps上共留了9個(gè)AXI接口,其中兩個(gè)GP AXI master、兩個(gè)GP AXI slave、四個(gè)HP AXI slave、以及一個(gè)ACP AXI slave。

這些接口都是AXI3類(lèi)型的,但使用AXI4-Lite、AXI4 的IP仍然可以與這些接口通訊,因?yàn)樵趯?shí)際使用中,軟件會(huì)使用AXI Interconnect ip幫助我們完成接口的轉(zhuǎn)換。

主要參考

[1] ug1037-vivado-axi-reference-guide

[2] ug585-Zynq-7000-TRM

AXI4-Stream在AXI4家族中相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,接下來(lái)主要回答兩個(gè)問(wèn)題:

(1)AXI4-Stream 傳輸?shù)臄?shù)據(jù)流都包含什么?

(2)AXI4-Stream 的接口信號(hào)有哪些?master和slave是如何握手的?

數(shù)據(jù)流

AXI4-Stream傳輸?shù)臄?shù)據(jù)流包含三種類(lèi)型:data type、position type、null type。

data type是最有意義的數(shù)據(jù);position type 作為占位符使用,可以用來(lái)表征date type 的相對(duì)位置,null type不包含任何有用的信息。

數(shù)據(jù)流的結(jié)構(gòu)可以有很多種,例如:可以只傳數(shù)據(jù),也即都是data type,不包含position type和null type;也可以將data type 和 null type 混著傳輸;還可以將position type 和 data type混著傳輸。當(dāng)然,三者混著傳輸也沒(méi)有問(wèn)題。

7c20b888-fb2e-11ec-ba43-dac502259ad0.jpg

全都是data type

7c34f1cc-fb2e-11ec-ba43-dac502259ad0.jpg

data type 和 position type 混搭

那么問(wèn)題來(lái)了,數(shù)據(jù)流傳輸類(lèi)型有三種,在傳輸?shù)倪^(guò)程中如何分辨這三種類(lèi)型呢?AXI4-Stream的接口信號(hào)可以幫助我們進(jìn)行區(qū)分,接下來(lái)看看都有哪些接口信號(hào)。

接口信號(hào)

先來(lái)一圖盡覽:

7c6eebe8-fb2e-11ec-ba43-dac502259ad0.jpg

ACLK和ARESETn信號(hào),不必多說(shuō),時(shí)鐘和復(fù)位信號(hào);

接下來(lái)是TVALID和TREADY信號(hào),這兩個(gè)信號(hào)作為握手信號(hào),分別從master 和 slave發(fā)出。如何握手呢?想想一下,你和別人握手的過(guò)程,大概分為三個(gè)階段:雙方心里進(jìn)行某種心理活動(dòng)、伸手、握手上下抖動(dòng);AXI4-Stream上握手也大體經(jīng)歷這三個(gè)過(guò)程。

(1)雙方心里進(jìn)行某種心理活動(dòng):相當(dāng)于 master 和 slave 在自己內(nèi)部搞事情,搞完自己的事情才能閑下來(lái)去握手,master搞完事情發(fā)出 TVALID high 信號(hào),slave 搞完事情發(fā)出TREADY high 信號(hào)。

(2)伸手的過(guò)程其實(shí)比較講究,現(xiàn)實(shí)生活中也是。你和別人握手,可能對(duì)方先伸手、也可能你先伸手、也可能你倆同時(shí)伸手。master和slave也是如此,可能 TVALID high 信號(hào)比TREADY high 早,可能TVALID比TREADY晚,也可能同時(shí)出現(xiàn)。

(3)握手上下抖動(dòng):當(dāng)你們兩個(gè)都抬起了手,接下來(lái)就是隆重的握手階段,在握手的時(shí)候,你可以感受到對(duì)方的手那么有力量......master和slave在TVALID 和 TREADY同為高時(shí)開(kāi)始傳輸數(shù)據(jù)。

7c81d53c-fb2e-11ec-ba43-dac502259ad0.jpg

TVALID 先高為敬

7c9fd762-fb2e-11ec-ba43-dac502259ad0.jpg

TREADY 先高為敬

7cba392c-fb2e-11ec-ba43-dac502259ad0.jpg

TVALID TREADY 同時(shí)變高

TDATA不多說(shuō)了,它就是數(shù)據(jù)流。前文中提到在數(shù)據(jù)流中有三種類(lèi)型,分別為data type、position type和null type,那么在傳輸?shù)臅r(shí)候如何區(qū)分呢?要靠TKEEP和TSTRB。

為了便于說(shuō)明,假設(shè)n為數(shù)據(jù)總線(xiàn)的字節(jié)數(shù),即TDATA的字節(jié)數(shù),可以把TDATA表示為T(mén)DATA[(8*n-1):0],TKEEP和TSTRB有n位,和TDATA上的每個(gè)字節(jié)一一對(duì)應(yīng),二者共同表示TDATA上每個(gè)字節(jié)的類(lèi)型。舉個(gè)例子,n = 2、TDATA = 0x0036、TKEEP = 2'b01、 TSTRB= 2'b01。由于TKEEP和TSTRB高位為0,那么TDATA的高階字節(jié)為null type;由于TKEEP和TSTRB地位為1,那么TDATA的低階字節(jié)為data type。

有一點(diǎn)需要注意,TKEEP為0、TSTRB為1的情況是不能使用的。

7ccea402-fb2e-11ec-ba43-dac502259ad0.jpg

TKEEP 和 TSTRB 表示數(shù)據(jù)流中字節(jié)類(lèi)型

TLAST信號(hào),用來(lái)表示一個(gè)包的結(jié)尾。例如發(fā)送大小為32字節(jié)的包,在發(fā)送第32個(gè)字節(jié)的時(shí)候,可以把TLAST信號(hào)拉高,來(lái)表示這個(gè)包發(fā)送完了。

TID和TDEST信號(hào):當(dāng)我們?cè)谕粋€(gè)接口傳輸不同數(shù)據(jù)流時(shí)有用,一般來(lái)講,AXIS4-Stream Interconnect Core IP可以幫助我們完成這個(gè)過(guò)程。TUSER信號(hào)用來(lái)傳輸一些額外的信息。

參考

[1] ug1037-vivado-axi-reference-guide.pdf

[2] IHI0051A_amba4_axi4_stream_v1_0_protocol_spec.pdf

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7903

    瀏覽量

    153682
  • AXI總線(xiàn)
    +關(guān)注

    關(guān)注

    0

    文章

    66

    瀏覽量

    14496

原文標(biāo)題:從零學(xué)習(xí)AXI4總線(xiàn)

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Zynq中AXI4-LiteAXI-Stream功能介紹

    Zynq中AXI4-Lite功能 AXI4-Lite接口AXI4的子集,專(zhuān)用于和元器件內(nèi)的控制寄存器進(jìn)行通信。AXI-Lite允許構(gòu)建簡(jiǎn)單
    的頭像 發(fā)表于 09-27 11:33 ?9294次閱讀
    Zynq中<b class='flag-5'>AXI4-Lite</b>和<b class='flag-5'>AXI-Stream</b>功能介紹

    AXI VIP設(shè)計(jì)示例 AXI接口傳輸分析

    賽靈思 AXI Verification IP (AXI VIP) 是支持用戶(hù)對(duì) AXI4AXI4-Lite 進(jìn)行仿真的 IP。它還可作為 A
    發(fā)表于 07-08 09:24 ?2071次閱讀

    XILINX FPGA IP之AXI Traffic Generator

    AXI Traffic Generator IP 用于在AXI4AXI4-Stream互連以及其他AXI4系統(tǒng)外設(shè)上生成特定序列(流量)。它根據(jù)IP的編程和選擇的操作模式生成各種類(lèi)型
    的頭像 發(fā)表于 11-23 16:03 ?3583次閱讀
    XILINX FPGA IP之<b class='flag-5'>AXI</b> Traffic Generator

    一文詳解Video In to AXI4-Stream IP核

    Video In to AXI4-Stream IP核用于將視頻源(帶有同步信號(hào)的時(shí)鐘并行視頻數(shù)據(jù),即同步sync或消隱blank信號(hào)或者而后者皆有)轉(zhuǎn)換成AXI4-Stream接口形式,實(shí)現(xiàn)了
    的頭像 發(fā)表于 04-03 09:28 ?930次閱讀
    一文詳解Video In to <b class='flag-5'>AXI4-Stream</b> IP核

    AMBA 4 AXI4、AXI4-LiteAXI4-流協(xié)議斷言用戶(hù)指南

    您可以將協(xié)議斷言與任何旨在實(shí)現(xiàn)AMBA?4 AXI4接口一起使用?, AXI4 Lite?, 或AXI
    發(fā)表于 08-10 06:39

    AXI4接口協(xié)議的基礎(chǔ)知識(shí)

    AXI-4 Memory Mapped也被稱(chēng)之為AXI-4 Full,它是AXI4接口協(xié)議的基礎(chǔ),其他AXI4
    的頭像 發(fā)表于 09-23 11:20 ?6429次閱讀
    <b class='flag-5'>AXI4</b><b class='flag-5'>接口</b>協(xié)議的基礎(chǔ)知識(shí)

    一文詳解ZYNQ中的DMA與AXI4總線(xiàn)

    在ZYNQ中,支持AXI-LiteAXI4AXI-Stream三種總線(xiàn),但PS與PL之間的接口卻只支持前兩種,AXI-Stream只能在
    的頭像 發(fā)表于 09-24 09:50 ?6010次閱讀
    一文詳解ZYNQ中的DMA與<b class='flag-5'>AXI4</b>總線(xiàn)

    ZYNQ中DMA與AXI4總線(xiàn)

    接口的構(gòu)架 在ZYNQ中,支持AXI-Lite,AXI4AXI-Stream三種總線(xiàn),但PS與PL之間的接口卻只支持前兩種,
    的頭像 發(fā)表于 11-02 11:27 ?4587次閱讀
    ZYNQ中DMA與<b class='flag-5'>AXI4</b>總線(xiàn)

    AXI-Stream代碼

    AXI-Stream代碼詳解 AXI4-StreamAXI4的區(qū)別在于AXI4-Stream沒(méi)有ADDR接口,這樣就不涉及讀寫(xiě)數(shù)據(jù)的概念了
    的頭像 發(fā)表于 11-05 17:40 ?4079次閱讀
    <b class='flag-5'>AXI-Stream</b>代碼

    關(guān)于AXI4-Stream協(xié)議總結(jié)分享

    XI4-StreamAXI4的區(qū)別就是AXI4-Stream去除了地址線(xiàn),這樣就不涉及讀寫(xiě)數(shù)據(jù)的概念了,只有簡(jiǎn)單的發(fā)送與接收說(shuō)法,減少了延時(shí)。由于AXI4-Stream協(xié)議(amba
    的頭像 發(fā)表于 06-23 10:08 ?2589次閱讀

    AXI4-Stream Video 協(xié)議和AXI_VDMA的IP核介紹

    本文主要介紹關(guān)于AXI4-Stream Video 協(xié)議和AXI_VDMA的IP核相關(guān)內(nèi)容。為后文完成使用帶有HDMI接口的顯示器構(gòu)建圖像視頻顯示的測(cè)試工程做準(zhǔn)備。
    的頭像 發(fā)表于 07-03 16:11 ?9506次閱讀

    如何在Vitis HLS中使用C語(yǔ)言代碼創(chuàng)建AXI4-Lite接口

    您是否想創(chuàng)建自己帶有 AXI4-Lite 接口的 IP 卻感覺(jué)無(wú)從著手?本文將為您講解有關(guān)如何在 Vitis HLS 中使用 C 語(yǔ)言代碼創(chuàng)建 AXI4-Lite 接口的基礎(chǔ)知識(shí)。
    的頭像 發(fā)表于 07-08 09:40 ?2175次閱讀

    AMBA協(xié)議規(guī)范解析

    發(fā),同時(shí)提高部分功能模塊工作性能,集成的IP通常采用業(yè)界比較規(guī)范的總線(xiàn)協(xié)議,完成功能處理和數(shù)據(jù)傳輸。目前,常用的IP基本上均提供AXI4AXI4-LiteAXI4-Stream接口
    的頭像 發(fā)表于 05-04 14:51 ?2066次閱讀
    AMBA協(xié)議規(guī)范解析

    Xilinx FPGA AXI4總線(xiàn)(一)介紹【AXI4】【AXI4-Lite】【AXI-Stream

    從 FPGA 應(yīng)用角度看看 AMBA 總線(xiàn)中的 AXI4 總線(xiàn)。
    發(fā)表于 06-21 15:21 ?2703次閱讀
    Xilinx FPGA <b class='flag-5'>AXI4</b>總線(xiàn)(一)介紹【<b class='flag-5'>AXI4</b>】【<b class='flag-5'>AXI4-Lite</b>】【<b class='flag-5'>AXI-Stream</b>】

    FPGA通過(guò)AXI總線(xiàn)讀寫(xiě)DDR3實(shí)現(xiàn)方式

    AXI總線(xiàn)由一些核心組成,包括AXI主處理器接口AXI4)、AXI處理器到協(xié)處理器接口
    發(fā)表于 04-18 11:41 ?1754次閱讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品