一、FIFO全名
FIRST IN FIRST OUT(先入先出)。顧名思義,FIFO是一個數據具有先進先出的存儲器。
二.FIFO種類
在vivado軟件的IP catalog搜索FIFO時候,會出來很多FIFO類型

(1)AXI4-Stream FIFO 是提供對與其他IP連接的AXI4-Stream接口的內存映射訪問。
(2)AXI4-Stream Data FIFO 支持 AXI4-Stream 協議,具備packet 包傳輸模式。
(3)AXI Data FIFO 就是數據FIFO 功能較為單一,接口為Stream接口
(4)FIFO Generator支持Native 模式,AXI Memory Mapped 模式 AXI Steam 模式功能比較齊全。通常在沒有AXI時候就使用Native模式。

其中,最常見的就是FIFO的Native模式,可以設置為同步異步FIFO。
同步FIFO僅有一個時鐘輸入,所有信號都與這一個時鐘信號有關。

異步FIFO有寫端口和讀端口分別有獨立的時鐘。相關的寫信號都同步在讀時鐘下,所有相關的讀信號都同步在讀時鐘下。

三、FIFO的IP配置
1.Basic配置
Interface type:Native 模式、AXI Memory Mapped 模式、 AXI Steam 模式。
通常在沒有AXI時候就使用Native模式。
common和Independent代表同步和異步,如果需要讀寫同步就選擇common,讀寫異步有順序選擇異步。
其余不用修改設置

2.Native Ports
StandardFIFO需要讀使能后一 個時鐘輸出才有效。
一般選擇First Word Fall Through 這樣寫入的數據,會先在讀端口準備好。
寫位寬由輸入的數據位寬決定,寫深度取決于需要緩存數據的個數,讀數據位寬取決于個人需要讀取多少位寬,讀數據寬度由上述三者自動確定,不需要設置。
其余設置盡量保持相同即可。

3.Status Flags
almost full 和 almost empty flag表示FIFO的滿信號和空信號,選上之后可以不用。

其余配置默認即可。
四、FIFO的應用
1.半空、半滿控制讀寫FIFO
半空是針對讀FIFO計數器而言,半滿是針對寫FIFO計數器而言。例如FIFO輸入32bit深度1024;輸出128bit深度256,這里的半空值就是128,半滿值就是512。
例如
寫狀態機,每次寫出512bit數據:
狀態0:當寫入FIFO計數器小于512則進入狀態1
狀態1:當連續寫入FIFO512個數據后,再次進入狀態0等待 讀狀態機的設計,每次讀出128bt數據。
讀狀態機設計,每次讀出128bit數據:
狀態0:當讀FIFO計數器大于128則進入狀態1
狀態1:連續讀出FIFO128個數據后,再次進入狀態0等待(如果有問題,可以私信作者,分享代碼給你)
2.標志信號控制FIFO的讀寫
(1)當FIFO非滿的時候寫。
(2)當FIFO非空的時候讀。
-
存儲器
+關注
關注
39文章
7738瀏覽量
171650 -
接口
+關注
關注
33文章
9519瀏覽量
157015 -
fifo
+關注
關注
3文章
407瀏覽量
45743
原文標題:一文帶你詳解FIFO:種類、IP配置、應用
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
存儲器有哪些種類
FIFO存儲器的相關資料分享
通用存儲器 包括各種類型存儲器的VHDL描述,如FIFO,雙
存儲器的種類及各種性能參數
基于Verilog HDL語言與雙體存儲器的交替讀寫機制實現32X8 FIFO設計
如何創建UltraScale存儲器接口設計
TMS320C67系列DSP的EMIF與異步FIFO存儲器的接口設計詳細資料介紹
如何配置存儲器保護單元(MPU)
FIFO存儲器的種類、IP配置及應用
評論