AXI接口FIFO是從Native接口FIFO派生而來(lái)的。AXI內(nèi)存映射接口提供了三種樣式:AXI4、AXI3和AXI4-Lite。除了Native接口FIFO支持的應(yīng)用外,AXI FIFO還可以用于AXI系統(tǒng)總線和點(diǎn)對(duì)點(diǎn)高速應(yīng)用。
AXI接口FIFO不支持Builtin FIFO和 Shift Register FIFO配置。
當(dāng)需要連接到其他AXI功能時(shí),可以在Native接口FIFO支持的相同應(yīng)用中使用AXI FIFO。AXI FIFO可以通過(guò)IP集成器集成到系統(tǒng)中。
1 AXI FIFO的功能
AXI FIFO的功能概述主要體現(xiàn)在其對(duì)AXI Memory Mapped接口中讀寫(xiě)通道的便捷集成能力上。
1.1 讀寫(xiě)通道的分離
對(duì)于AXI Memory Mapped接口,AXI規(guī)范定義了寫(xiě)通道和讀通道。
寫(xiě)通道包括寫(xiě)地址通道、寫(xiě)數(shù)據(jù)通道和寫(xiě)響應(yīng)通道。
讀通道包括讀地址通道和讀數(shù)據(jù)通道。
FIFO Generate IP核提供了為AXI Memory Mapped生成單獨(dú)的寫(xiě)通道或讀通道,或者同時(shí)生成寫(xiě)通道和讀通道的能力。如下圖所示。
對(duì)于寫(xiě)通道,集成了三個(gè)FIFO:一個(gè)用于寫(xiě)地址通道,一個(gè)用于寫(xiě)數(shù)據(jù)通道,以及一個(gè)用于寫(xiě)響應(yīng)通道。
對(duì)于讀通道,集成了兩個(gè)FIFO:一個(gè)用于讀地址通道,一個(gè)用于讀數(shù)據(jù)通道。
當(dāng)同時(shí)選擇寫(xiě)通道和讀通道時(shí),F(xiàn)IFO Generate IP核將集成五個(gè)獨(dú)立的FIFO。
1.2 每個(gè)通道的獨(dú)立配置
對(duì)于每個(gè)通道,F(xiàn)IFO Generate IP核都可以獨(dú)立配置以生成基于Block RAM或Distributed RAM FIFO。每個(gè)FIFO的深度也可以獨(dú)立配置,以滿足特定應(yīng)用的數(shù)據(jù)緩存需求。如下圖所示。
AXI FIFO的使用有助于簡(jiǎn)化高速數(shù)據(jù)傳輸和處理的系統(tǒng)設(shè)計(jì),因?yàn)樗鼈兡軌蚺cAXI總線標(biāo)準(zhǔn)無(wú)縫集成,提供高吞吐量和低延遲的數(shù)據(jù)傳輸能力。這使得AXI FIFO成為高性能計(jì)算、圖像處理、視頻傳輸?shù)阮I(lǐng)域的理想選擇。
2 AXI FIFO的時(shí)序
AXI接口協(xié)議使用雙向的有效(Valid)和就緒(Ready)握手機(jī)制。信息源使用有效信號(hào)來(lái)表示通道上何時(shí)有有效的數(shù)據(jù)或控制信息可用。信息目標(biāo)使用就緒信號(hào)來(lái)表示何時(shí)可以接受數(shù)據(jù)。圖1-3展示了AXI4-Stream FIFO的寫(xiě)和讀操作的示例時(shí)序圖,而圖1-4則展示了AXI Memory Mapped 接口FIFO的寫(xiě)和讀操作的示例時(shí)序圖。
在圖1-3和圖1-4中,信息源生成有效信號(hào)(valid)以指示數(shù)據(jù)何時(shí)可用。目標(biāo)生成就緒信號(hào)(ready)以指示它可以接受數(shù)據(jù),并且只有當(dāng)有效信號(hào)和就緒信號(hào)都為高時(shí),才會(huì)發(fā)生數(shù)據(jù)傳輸。
對(duì)于AXI4-Stream FIFO,寫(xiě)操作和讀操作通常涉及連續(xù)的數(shù)據(jù)流傳輸。在圖1-3中,看到寫(xiě)操作和讀操作的時(shí)序圖,顯示了有效信號(hào)和就緒信號(hào)如何協(xié)同工作以完成數(shù)據(jù)傳輸。
而對(duì)于AXI Memory Mapped接口FIFO,寫(xiě)操作和讀操作通常與特定的內(nèi)存地址相關(guān)聯(lián)。在圖1-4中,看到寫(xiě)地址通道、寫(xiě)數(shù)據(jù)通道、寫(xiě)響應(yīng)通道以及讀地址通道和讀數(shù)據(jù)通道的時(shí)序圖。這些通道協(xié)同工作,通過(guò)有效和就緒信號(hào)的握手機(jī)制,確保數(shù)據(jù)在源和目標(biāo)之間的正確傳輸。
由于AXI FIFO是從Native接口FIFO派生而來(lái)的,因此它們之間的很多行為是相似的。就緒信號(hào)是基于FIFO中可用空間來(lái)生成的,當(dāng)FIFO中有空間時(shí),就緒信號(hào)保持高電平以允許寫(xiě)入FIFO。只有當(dāng)FIFO中沒(méi)有剩余空間進(jìn)行額外的寫(xiě)入操作時(shí),就緒信號(hào)才會(huì)被拉低。有效信號(hào)則是基于FIFO中數(shù)據(jù)的可用性來(lái)生成的,當(dāng)FIFO中有數(shù)據(jù)可供讀取時(shí),有效信號(hào)保持高電平以允許從FIFO中讀取數(shù)據(jù)。只有當(dāng)FIFO中沒(méi)有可供讀取的數(shù)據(jù)時(shí),有效信號(hào)才會(huì)被拉低。這些信息信號(hào)被映射到Native 接口FIFO的din和dout總線上。AXI FIFO的寬度是通過(guò)連接AXI接口的所有信息信號(hào)來(lái)確定的。這些信息信號(hào)包括除有效和就緒握手信號(hào)之外的所有AXI信號(hào)。
在AXI協(xié)議中,這種握手機(jī)制確保了數(shù)據(jù)在源和目標(biāo)之間的可靠傳輸。當(dāng)源設(shè)備準(zhǔn)備好發(fā)送數(shù)據(jù)時(shí),它會(huì)將有效信號(hào)置高,表示數(shù)據(jù)已經(jīng)準(zhǔn)備好。然后,目標(biāo)設(shè)備會(huì)檢查就緒信號(hào)。只有當(dāng)就緒信號(hào)也為高時(shí),目標(biāo)設(shè)備才會(huì)從源設(shè)備接收數(shù)據(jù)。這種機(jī)制確保了數(shù)據(jù)在傳輸過(guò)程中不會(huì)被丟失或發(fā)生錯(cuò)誤。
AXI FIFO僅在First Word Fall Through模式下運(yùn)行。該功能提供了在不執(zhí)行讀取操作的情況下查看FIFO中下一個(gè)可用字的能力。當(dāng)FIFO中有數(shù)據(jù)時(shí),第一個(gè)字會(huì)自動(dòng)通過(guò)FIFO并出現(xiàn)在輸出數(shù)據(jù)總線上。
注意:對(duì)于AXI接口,由于復(fù)位輸入總是異步的,因此在內(nèi)核內(nèi)部會(huì)自動(dòng)啟用安全電路。
3 AXI FIFO的直通線(Pass Through Wire)
AXI Memory Mapped接口的IP核提供了直通線選項(xiàng),使得所有輸入信號(hào)能夠直接傳遞到輸出,而無(wú)需經(jīng)過(guò)任何處理或緩存。這在某些情況下可能很有用,比如當(dāng)您希望將信號(hào)直接轉(zhuǎn)發(fā)到另一個(gè)接口或組件時(shí)。
3.1 數(shù)據(jù)包FIFO(Packet FIFO)
數(shù)據(jù)包FIFO配置確保了在接收到數(shù)據(jù)包(突發(fā)傳輸)的末尾(LAST節(jié)拍)之前,不會(huì)開(kāi)始數(shù)據(jù)包的傳輸。這樣做可以確保一旦主設(shè)備側(cè)開(kāi)始傳輸,數(shù)據(jù)就能不間斷地可用,從而避免了AXI數(shù)據(jù)通道的源端停滯。這對(duì)于數(shù)據(jù)起源于主設(shè)備的應(yīng)用場(chǎng)景特別有價(jià)值。
例如,當(dāng)實(shí)時(shí)信號(hào)通道以低于下游AXI交換機(jī)和/或從設(shè)備目的地的數(shù)據(jù)速率運(yùn)行時(shí),如高帶寬內(nèi)存,這種配置就非常有用。
數(shù)據(jù)包FIFO原理既適用于AXI4/AXI3 Memory Mapped突發(fā)事務(wù)(寫(xiě)入和讀?。策m用于AXI4-Stream數(shù)據(jù)包傳輸。這個(gè)特性有時(shí)被稱為“store-and-forward”,它描述了內(nèi)存映射寫(xiě)入和流傳輸?shù)男袨?。?duì)于內(nèi)存映射讀取,事務(wù)會(huì)延遲到FIFO中有足夠的空位來(lái)確保整個(gè)讀取數(shù)據(jù)包能夠不間斷地緩沖,這是根據(jù)AR(地址讀取)通道事務(wù)的預(yù)測(cè)進(jìn)行的。讀取事務(wù)實(shí)際上并不依賴RLAST信號(hào)。
數(shù)據(jù)包FIFO特性支持公共時(shí)鐘AXI4/AXI3和公共/獨(dú)立時(shí)鐘AXI4-Stream配置。它不支持AXI4-Lite配置。
3.2 AXI4-Stream Packet FIFO
AXI4-Stream Packet FIFO和AXI4/AXI3 Packet FIFO是兩種不同類型的FIFO,它們分別使用AXI4-Stream接口和AXI Memory Mapped接口來(lái)實(shí)現(xiàn)數(shù)據(jù)包FIFO的功能。
AXI4-Stream Packet FIFO使用AXI4-Stream接口。當(dāng)在AXI4-Stream Slave側(cè)接收到一個(gè)完整的數(shù)據(jù)包(由tlast標(biāo)記)或AXI4-Stream FIFO已滿時(shí),F(xiàn)IFO Generate IP核會(huì)在AXI4-Stream Master側(cè)指示tvalid。由于FIFO變滿而在Master側(cè)指示tvalid是一個(gè)異常情況,在這種情況下,Packet FIFO會(huì)作為一個(gè)正常的FWFT(First Word Fall Through)FIFO工作,將Slave側(cè)接收到的數(shù)據(jù)轉(zhuǎn)發(fā)到Master側(cè),直到在Slave側(cè)接收到tlast。
3.3 AXI4/AXI3 Packet FIFO
AXI4/AXI3 Packet FIFO 使用AXI Memory Mapped接口,它支持AXI協(xié)議中的寫(xiě)(W)和讀(R)通道以及相關(guān)的地址(AW/AR)通道。Packet FIFO允許在數(shù)據(jù)傳輸過(guò)程中存儲(chǔ)完整的數(shù)據(jù)包,直到數(shù)據(jù)包被完全接收或發(fā)送。
寫(xiě)通道上的Packet FIFO
當(dāng)在AXI W通道Slave側(cè)接收到一個(gè)由wlast標(biāo)記的完整數(shù)據(jù)包時(shí),F(xiàn)IFO Generate IP核會(huì)在AXI AW通道Master側(cè)指示awvalid。這意味著寫(xiě)地址(AW)的傳輸只有在W通道Slave側(cè)接收到請(qǐng)求傳輸所需的所有數(shù)據(jù)后才會(huì)被發(fā)送到AXI Write Address Channel。
寫(xiě)通道Packet FIFO與寫(xiě)地址通道(AW通道)耦合,這確保了在發(fā)送寫(xiě)請(qǐng)求之前,有足夠的空間來(lái)存儲(chǔ)與該請(qǐng)求相關(guān)的所有數(shù)據(jù)。
W通道的最小深度被設(shè)置為512,這允許寫(xiě)通道Packet FIFO存儲(chǔ)兩個(gè)最大長(zhǎng)度的數(shù)據(jù)包。
讀通道上的Packet FIFO
當(dāng)在AXI R通道Master側(cè)接收到一個(gè)由rlast標(biāo)記的完整數(shù)據(jù)包時(shí),F(xiàn)IFO Generate IP核會(huì)在AXI R通道Slave側(cè)指示rvalid。這意味著讀數(shù)據(jù)的傳輸(通過(guò)R通道)已經(jīng)完成,并且整個(gè)數(shù)據(jù)包已經(jīng)被成功接收。
讀通道Packet FIFO與讀地址通道(AR通道)耦合,這確保了在發(fā)送讀請(qǐng)求之前,Packet FIFO中有足夠的空間來(lái)存儲(chǔ)與該請(qǐng)求相關(guān)的數(shù)據(jù)。如果Packet FIFO中沒(méi)有足夠的空間,則不會(huì)向AXI Read Address Channel發(fā)送AR傳輸。
R通道的最小深度也被設(shè)置為512,允許讀通道Packet FIFO存儲(chǔ)兩個(gè)最大長(zhǎng)度的數(shù)據(jù)包。
這種機(jī)制允許數(shù)據(jù)包在傳輸過(guò)程中被緩存,確保數(shù)據(jù)傳輸?shù)倪B續(xù)性和完整性,同時(shí)避免由于數(shù)據(jù)不匹配或丟失而導(dǎo)致的錯(cuò)誤。這對(duì)于需要處理大量數(shù)據(jù)或需要確保數(shù)據(jù)完整性的應(yīng)用場(chǎng)景(如高速數(shù)據(jù)傳輸或?qū)崟r(shí)信號(hào)處理)非常有用。
原文鏈接:https://tencentcloud.csdn.net/678a2f13edd0904849a69a14.html
-
接口
+關(guān)注
關(guān)注
33文章
8885瀏覽量
152974 -
fifo
+關(guān)注
關(guān)注
3文章
397瀏覽量
44481 -
總線
+關(guān)注
關(guān)注
10文章
2936瀏覽量
89150 -
AXI
+關(guān)注
關(guān)注
1文章
132瀏覽量
17019
原文標(biāo)題:AXI接口FIFO簡(jiǎn)介
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
可以在EDK中使用Axi4Stream接口/總線嗎?
AXI流FIFO掛起
高級(jí)可擴(kuò)展接口(AXI)簡(jiǎn)介
AXI接口協(xié)議詳解
AXI接口協(xié)議詳解
AXI FIFO和AXI virtual FIFO這兩個(gè)IP的使用方法
AXI接口簡(jiǎn)介_AXI IP核的創(chuàng)建流程及讀寫(xiě)邏輯分析

AXI STREAM FIFO如何設(shè)置雙時(shí)鐘

高級(jí)可擴(kuò)展接口(AXI)簡(jiǎn)介

你必須了解的AXI總線詳解

AXI_GP接口和AXI_HP接口的相關(guān)內(nèi)容
AXI_GPIO簡(jiǎn)介與使用指南
AXI總線協(xié)議簡(jiǎn)介
AXI實(shí)戰(zhàn)(二)-AXI-Lite的Slave實(shí)現(xiàn)介紹

評(píng)論