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

高級可擴(kuò)展接口(AXI)簡介

你必須了解的AXI總線詳解

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

評論