h1_key

當(dāng)前位置:首頁(yè) >新聞資訊 > 行業(yè)資訊>什么是FIFO
什么是FIFO
2023-04-10 6532次

  什么是FIFO?

  FIFO: First in, First out

代表先進(jìn)的數(shù)據(jù)先出 ,后進(jìn)的數(shù)據(jù)后出。

 

  為什么需要FIFO?

FIFO存儲(chǔ)器是系統(tǒng)的緩沖環(huán)節(jié),如果沒(méi)有FIFO存儲(chǔ)器,整個(gè)系統(tǒng)就不可能正常工作。

 

  FIFO的功能可以概括為

  (1)對(duì)連續(xù)的數(shù)據(jù)流進(jìn)行緩存,防止在進(jìn)機(jī)和存儲(chǔ)操作時(shí)丟失數(shù)據(jù);

  (2)數(shù)據(jù)集中起來(lái)進(jìn)行進(jìn)機(jī)和存儲(chǔ),可避免頻繁的總線(xiàn)操作,減輕CPU的負(fù)擔(dān);

(3)允許系統(tǒng)進(jìn)行DMA操作,提高數(shù)據(jù)的傳輸速度。這是至關(guān)重要的一點(diǎn),如果不采用DMA操作,數(shù)據(jù)傳輸將達(dá)不到傳輸要求,而且大大增加CPU的負(fù)擔(dān),無(wú)法同時(shí)完成數(shù)據(jù)的存儲(chǔ)工作。

 

  FIFO的幾個(gè)重要概念

  

 

 

  讀寫(xiě)時(shí)鐘:根據(jù)FIFO工作的時(shí)鐘域分為同步/異步FIFO。同步FIFO是指讀時(shí)鐘和寫(xiě)時(shí)鐘為同一個(gè)時(shí)鐘在時(shí)鐘沿來(lái)臨時(shí)同時(shí)發(fā)生讀寫(xiě)。異步FIFO讀寫(xiě)時(shí)鐘不一致,讀寫(xiě)相互獨(dú)立。

  讀寫(xiě)控制:讀寫(xiě)控制的使能

  滿(mǎn)信號(hào):FIFO里面的信號(hào)數(shù)量達(dá)到了最大深度值

  空信號(hào):FIFO里面的信號(hào)全部被讀出

  讀寫(xiě)指針:總是指向下一個(gè)地址

深度:FIFO所能容納的最大信號(hào)數(shù)量

 

 

  如何通俗理解FIFO

其實(shí)FIFO理解起來(lái)很簡(jiǎn)單,就像一個(gè)水池,如果寫(xiě)通道打開(kāi)了,就代表我們?cè)诩铀绻x通道打開(kāi)了就代表我們?cè)诜潘?,假如不間斷的加水和放水,如果加水速度比放水速度快,那FIFO 就會(huì)有滿(mǎn)的時(shí)候,如果滿(mǎn)了還繼續(xù)加水就會(huì)溢出overflow 如果放水速度比加水速度快 ,那么 FIFO就會(huì)有空的時(shí)候。

 

 

  FIFO的空滿(mǎn)檢測(cè)

  空信號(hào):我們可以想象一下當(dāng)寫(xiě)信號(hào)較慢的時(shí)候,讀信號(hào)較快,那么讀信號(hào)指針就會(huì)追上寫(xiě)信號(hào)指針則會(huì)產(chǎn)生EMPTY的空信號(hào)。或者reset復(fù)位時(shí)也是空信號(hào)。

  

 

  滿(mǎn)信號(hào):當(dāng)寫(xiě)指針快于讀指針,寫(xiě)信號(hào)較快,很容易使得寫(xiě)指針越過(guò)最大深度后追上讀指針,那么就會(huì)產(chǎn)生滿(mǎn)溢出信號(hào)。

  

 

理解這兩種信號(hào)的機(jī)制并不難,但是使用起來(lái)就需要費(fèi)功夫的。

 

  一般有兩種方法檢測(cè):

  (1)Extra bit

  一般情況下深度為N=2^n的FIFO其地址的位寬為n,其讀寫(xiě)地址的位寬也為n。共有N個(gè)存儲(chǔ)單元,若數(shù)據(jù)位寬為W則該FIFO的容量即為N*W bit。

  現(xiàn)在在指針中添加額外的位(extra bit,即地址的MSB)變?yōu)閚+1bit,該extra bit用于指示寫(xiě)指針是否遞增并越過(guò)最后一個(gè)FIFO地址,若越過(guò)則將該MSB加1,其它位清零。對(duì)讀指針也進(jìn)行同樣的操作。如對(duì)于深度為8的FIFO,需要采用3+1bit是計(jì)數(shù)器:0000-1000、1001-1111,MSB作為折回標(biāo)志,而低3位作為地址指針。

  那么判斷機(jī)制為:

  *如果兩個(gè)指針的MSB不同,就說(shuō)明寫(xiě)指針比讀指針多折回一次:如r_addr=0000,且w_addr=1000,為滿(mǎn);

  *如果兩個(gè)指針的MSB相同,就說(shuō)明兩個(gè)指針折回次數(shù)相等。再者其余位相等(則說(shuō)明FIFO為空。

  這個(gè)方法增加一位數(shù)據(jù)的開(kāi)銷(xiāo)來(lái)獲得判斷。

  (2)設(shè)置計(jì)數(shù)器

  設(shè)置一個(gè)data_counter, 當(dāng)寫(xiě)使能有效時(shí)每寫(xiě)入一個(gè)data計(jì)數(shù)器同時(shí)加1;讀操作時(shí),每讀出一個(gè)data時(shí)該計(jì)數(shù)器減1。如此,當(dāng)data_counter為0時(shí)FIFO空,當(dāng)data_counter計(jì)數(shù)至FIFO深度deep時(shí),表示FIFO寫(xiě)滿(mǎn)。

  由于計(jì)數(shù)器會(huì)占用額外的資源,當(dāng)FIFO較大時(shí),可能會(huì)降低FIFO的讀寫(xiě)速度。

 

  • 一文讀懂衛(wèi)星通信器件種類(lèi)、功能、廠(chǎng)商、發(fā)展趨勢(shì)
  • 衛(wèi)星通信是一個(gè)復(fù)雜的系統(tǒng),它通過(guò)人造地球衛(wèi)星作為中繼站,來(lái)轉(zhuǎn)發(fā)無(wú)線(xiàn)電信號(hào),實(shí)現(xiàn)兩個(gè)或多個(gè)地球站之間的通信。這個(gè)系統(tǒng)可以大致分為三部分:空間段(衛(wèi)星本身)、地面段(用戶(hù)終端和信關(guān)站)和連接它們的無(wú)線(xiàn)電波。
    2025-10-10 29次
  • 國(guó)產(chǎn)FPGA公司、核心產(chǎn)品、應(yīng)用介紹
  • 近年來(lái),國(guó)產(chǎn)FPGA發(fā)展迅速,在技術(shù)、生態(tài)和應(yīng)用方面都取得了長(zhǎng)足進(jìn)步,成為實(shí)現(xiàn)芯片國(guó)產(chǎn)替代的關(guān)鍵力量。以下是對(duì)主要國(guó)產(chǎn)FPGA公司的詳細(xì)介紹:
    2025-09-28 280次
  • 一文讀懂?dāng)?shù)字隔離器芯片的原理、運(yùn)用、品牌、選型要點(diǎn)
  • 隔離器芯片的核心目的是在兩個(gè)電氣系統(tǒng)之間提供電氣隔離,同時(shí)允許數(shù)字信號(hào)或數(shù)據(jù)(有時(shí)甚至是電源)穿越這個(gè)隔離屏障。隔離意味著兩側(cè)電路沒(méi)有直接的電氣連接(沒(méi)有共用的地線(xiàn)或電源),從而防止危險(xiǎn)的電壓、電流浪涌、地線(xiàn)環(huán)路干擾或噪聲從一側(cè)傳遞到另一側(cè),保護(hù)人員和設(shè)備安全,并確保信號(hào)的完整性。
    2025-08-21 82次
  • 一文讀懂DRAM(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)工作原理、分類(lèi)、主要廠(chǎng)商
  • DRAM是一種易失性半導(dǎo)體存儲(chǔ)器,用于計(jì)算機(jī)和其他數(shù)字設(shè)備作為主內(nèi)存。它的名字“動(dòng)態(tài)”源于需要周期性刷新存儲(chǔ)的數(shù)據(jù)。
    2025-06-19 240次
  • 一文讀懂FPGA的工作原理、關(guān)鍵參數(shù)、品牌、運(yùn)用
  • FPGA代表Field-Programmable Gate Array,中文譯為現(xiàn)場(chǎng)可編程門(mén)陣列。它是一種非常特殊的半導(dǎo)體集成電路芯片。與 CPU、GPU 或?qū)S眉呻娐沸酒诔鰪S(chǎng)時(shí)功能就固定不同,F(xiàn)PGA的硬件邏輯功能在制造完成后,可以由用戶(hù)在現(xiàn)場(chǎng)(Field)根據(jù)需要進(jìn)行編程(Programmable)來(lái)定義。 它本質(zhì)上是由大量可配置邏輯塊、可編程互連資源和豐富的輸入/輸出單元組成的陣列(Array)。
    2025-06-05 105次

    萬(wàn)聯(lián)芯微信公眾號(hào)

    元器件現(xiàn)貨+BOM配單+PCBA制造平臺(tái)
    關(guān)注公眾號(hào),優(yōu)惠活動(dòng)早知道!
    10s
    溫馨提示:
    訂單商品問(wèn)題請(qǐng)移至我的售后服務(wù)提交售后申請(qǐng),其他需投訴問(wèn)題可移至我的投訴提交,我們將在第一時(shí)間給您答復(fù)
    返回頂部