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

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

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

異步FIFO有寫端口和讀端口分別有獨(dú)立的時(shí)鐘。相關(guān)的寫信號都同步在讀時(shí)鐘下,所有相關(guān)的讀信號都同步在讀時(shí)鐘下。

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

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

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

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