0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FIFO的一些基礎(chǔ)知識(shí)

CHANBAEK ? 來源:FPGA入門到精通 ? 作者: 未可知摩爾 ? 2023-08-07 15:41 ? 次閱讀

FPGA廠商提供了豐富的IP核,基礎(chǔ)性IP核都是可以直接免費(fèi)調(diào)用的,比如FIFO、RAM等等。

本文主要介紹FIFO的一些基礎(chǔ)知識(shí),幫助大家能夠理解FIFO的基礎(chǔ)概念。

一、FIFO介紹

FIFO全稱是First In First Out,即先進(jìn)先出。

FIFO是一個(gè)數(shù)據(jù)緩存隊(duì)列,主要特點(diǎn)就是數(shù)據(jù)順序?qū)懭耄侔凑胀瑯拥捻樞蜉敵鰯?shù)據(jù),即先進(jìn)去的數(shù)據(jù)先被取出來。

1、FIFO的通俗理解

FIFO可以類比一個(gè)水池。

當(dāng)寫通道打開時(shí),就相當(dāng)于往水池里加水;而當(dāng)讀通道打開時(shí),就相當(dāng)于從水池中放水。

如果持續(xù)不斷地加水和放水,如果加水速度超過了放水速度,那么水池就會(huì)滿了,這時(shí)FIFO就會(huì)發(fā)生溢出,水會(huì)溢出水池。

相反,如果放水速度快于加水速度,那么水池就會(huì)變空,F(xiàn)IFO就會(huì)出現(xiàn)空的情況。

2、FIFO的分類

根據(jù)FIFO輸入時(shí)鐘的區(qū)別,可以分為同步FIFO和異步FIFO。

同步 FIFO 只有一個(gè)獨(dú)立的時(shí)鐘端口 clock,所有的輸入輸出信號(hào)都同步于 clock 信號(hào)。

異步FIFO有兩個(gè)時(shí)鐘,寫端口和讀端口分別有獨(dú)立的時(shí)鐘,所有寫相關(guān)的信號(hào)都是屬于寫時(shí)鐘,所有與讀相關(guān)的信號(hào)都屬于讀時(shí)鐘。

3、FIFO IP

FIFO一般不需要自己去寫代碼實(shí)現(xiàn),F(xiàn)PGA官方軟件都提供了FIFO IP,直接使用即可。

FPGA IP特性:

  • 配置選項(xiàng)和控制手段廣泛:提供了豐富的配置選項(xiàng)和控制手段,可以根據(jù)用戶的需求進(jìn)行靈活配置。
  • 靈活的接口和支持多種數(shù)據(jù)寬度:接口設(shè)計(jì)靈活,同時(shí)支持多種不同數(shù)據(jù)寬度的操作。
  • 支持多種讀寫模式:支持單寫單讀、單寫多讀、多寫單讀、多寫多讀等讀寫模式,可以適應(yīng)不同的應(yīng)用場景。
  • 多種存儲(chǔ)方式:支持異步、同步等不同的存儲(chǔ)方式,可以根據(jù)需求選擇合適的存儲(chǔ)方式。
  • 可配置的參數(shù):可以配置深度、寬度、讀寫數(shù)據(jù)寬度等參數(shù),使得用戶可以按需定制FIFO的特性。

二、FIFO的應(yīng)用

FIFO的應(yīng)用非常廣泛,其中同步fifo主要用于處理數(shù)據(jù)緩存,異步fifo主要用于處理跨時(shí)鐘數(shù)據(jù)傳輸處理。

常用的應(yīng)用場景如下:

接口數(shù)據(jù)/消息緩沖:FIFO可以用于緩存數(shù)據(jù)或消息,以應(yīng)對(duì)數(shù)據(jù)流量突發(fā)情況,同時(shí)降低或消除背壓的頻率,減小上級(jí)模塊的復(fù)雜度。

接口協(xié)議隔離:在模塊與復(fù)雜的協(xié)議進(jìn)行對(duì)接時(shí),F(xiàn)IFO可以作為隔離后的用戶接口,降低模塊接口協(xié)議設(shè)計(jì)復(fù)雜度,并實(shí)現(xiàn)協(xié)議接口的IP化,提高系統(tǒng)的復(fù)用性。

跨時(shí)鐘域處理:FIFO可以用于處理異步時(shí)鐘域的數(shù)據(jù)、消息和總線。通過FIFO,可以實(shí)現(xiàn)簡單、快速、安全的跨時(shí)鐘域處理。

數(shù)據(jù)位寬轉(zhuǎn)換:FIFO可以用于實(shí)現(xiàn)數(shù)據(jù)的位寬轉(zhuǎn)換,例如從512位轉(zhuǎn)換為256位。

三、FIFO的重要概念

圖片

1、主要端口

讀寫時(shí)鐘:同步FIFO是指讀時(shí)鐘和寫時(shí)鐘為同一個(gè)時(shí)鐘。異步FIFO讀寫時(shí)鐘是獨(dú)立的兩個(gè)時(shí)鐘。

讀寫使能:讀寫控制的使能

滿信號(hào):FIFO里面的緩存數(shù)據(jù)數(shù)量達(dá)到了最大深度值

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

深度:FIFO所能容納的最大數(shù)據(jù)數(shù)量

2、FIFO的存儲(chǔ)結(jié)構(gòu)

FIFO通常采用循環(huán)存儲(chǔ)結(jié)構(gòu),即存儲(chǔ)空間是一個(gè)環(huán)形的緩沖區(qū)。

數(shù)據(jù)寫入時(shí),從第一個(gè)寫入地址開始,依次向后寫入;數(shù)據(jù)讀取時(shí),從第一個(gè)讀取地址開始,依次向后讀取。

當(dāng)寫入數(shù)據(jù)量達(dá)到FIFO的深度時(shí),將不能再寫入數(shù)據(jù),此時(shí)需要停止寫入操作,等待讀取操作將數(shù)據(jù)讀出,否則將發(fā)生溢出。

同樣,當(dāng)讀取數(shù)據(jù)量達(dá)到FIFO的深度時(shí),將不能再讀取數(shù)據(jù),此時(shí)需要停止讀取操作,等待寫入操作將數(shù)據(jù)寫入。

3、FIFO的空滿狀態(tài)

FIFO具有空標(biāo)志和滿標(biāo)志,用于指示FIFO的存儲(chǔ)狀態(tài)。

當(dāng)FIFO空時(shí),寫入操作將停止,直到FIFO非空;當(dāng)FIFO滿時(shí),讀取操作將停止,直到FIFO非滿。

空滿狀態(tài)的判斷通常采用比較讀寫指針的位置關(guān)系,例如當(dāng)寫入指針等于讀取指針時(shí),F(xiàn)IFO為空;當(dāng)寫入指針比讀取指針多一位(達(dá)到FIFO的深度)時(shí),F(xiàn)IFO為滿。

4、FIFO的讀寫操作

FIFO的讀寫操作遵循先進(jìn)先出的原則。

寫入數(shù)據(jù)時(shí),根據(jù)寫地址將數(shù)據(jù)寫入FIFO的空閑位置;讀取數(shù)據(jù)時(shí),根據(jù)讀地址從FIFO的存儲(chǔ)位置讀取數(shù)據(jù)。

在連續(xù)的讀寫操作中,讀寫指針會(huì)自動(dòng)遞增,以便在下次讀寫時(shí)正確指向FIFO的下一個(gè)位置。

5、FIFO的同步處理

由于FIFO通常涉及不同時(shí)鐘域之間的數(shù)據(jù)傳輸,因此需要進(jìn)行同步處理。

在異步FIFO中,寫入時(shí)鐘和讀取時(shí)鐘是不同的,需要使用握手協(xié)議進(jìn)行同步。

在同步FIFO中,讀寫時(shí)鐘是同一個(gè)時(shí)鐘,但仍然需要進(jìn)行時(shí)序分析,以保證數(shù)據(jù)的穩(wěn)定性和可靠性

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21744

    瀏覽量

    603660
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    388

    瀏覽量

    43693
  • IP核
    +關(guān)注

    關(guān)注

    4

    文章

    327

    瀏覽量

    49507
  • 數(shù)據(jù)緩存
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    7065
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于電腦的一些基礎(chǔ)知識(shí)

    關(guān)于電腦的一些基礎(chǔ)知識(shí)
    發(fā)表于 05-30 16:27

    有關(guān)電腦的一些基礎(chǔ)知識(shí)

    有關(guān)電腦的一些基礎(chǔ)知識(shí)
    發(fā)表于 05-30 16:28

    關(guān)于protel的一些基礎(chǔ)知識(shí)

    關(guān)于protel的一些基礎(chǔ)知識(shí)
    發(fā)表于 05-31 09:16

    關(guān)于protel的一些基礎(chǔ)知識(shí)

    關(guān)于protel的一些基礎(chǔ)知識(shí)
    發(fā)表于 05-31 09:56

    pwm的一些基礎(chǔ)知識(shí)和應(yīng)用小程序

    自己總結(jié)的一些pwm的基礎(chǔ)知識(shí),和大家分享
    發(fā)表于 03-25 15:50

    整理的一些模擬電路教程和基礎(chǔ)知識(shí)分享

    整理的一些模擬電路教程和基礎(chǔ)知識(shí)推薦課程:張飛硬件電路P1訓(xùn)練營(1-5部)http://t.elecfans.com/topic/33.html?elecfans_trackid=bbs_post
    發(fā)表于 03-27 16:41

    模擬電路教程和一些模電基礎(chǔ)知識(shí)

    里面包含模擬電路教程和一些模電基礎(chǔ)知識(shí)
    發(fā)表于 04-04 10:38

    分享一些嵌入式方面的基礎(chǔ)知識(shí)

    同時(shí)更關(guān)鍵的是為了補(bǔ)齊一些嵌入式方面的基礎(chǔ)知識(shí),做如下筆記,持續(xù)記錄:1.嵌入式系統(tǒng)基礎(chǔ)知識(shí)(1) 嵌入式系統(tǒng)組成嵌入式系統(tǒng)是:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能
    發(fā)表于 11-08 07:41

    介紹嵌入式系統(tǒng)的一些基礎(chǔ)知識(shí)

    本文主要介紹嵌入式系統(tǒng)的一些基礎(chǔ)知識(shí),希望對(duì)各位有幫助。嵌入式系統(tǒng)基礎(chǔ)1、嵌入式系統(tǒng)的定義(1)定義:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體...
    發(fā)表于 12-21 07:32

    筆記本電池一些基礎(chǔ)知識(shí)

    筆記本電池一些基礎(chǔ)知識(shí) 電池指的是將化學(xué)能、光能、原子能等其它形式的能轉(zhuǎn)化為電能的裝置。它分為次電池(俗稱干電池)和二次電池(即可反復(fù)充電電池),
    發(fā)表于 10-28 14:27 ?500次閱讀

    51單片機(jī)串口通信的一些基礎(chǔ)知識(shí)免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是51單片機(jī)串口通信的一些基礎(chǔ)知識(shí)免費(fèi)下載。
    發(fā)表于 08-21 17:31 ?9次下載
    51單片機(jī)串口通信的<b class='flag-5'>一些</b><b class='flag-5'>基礎(chǔ)知識(shí)</b>免費(fèi)下載

    usb通信的一些基礎(chǔ)知識(shí)

    目前了解了usb通信層面的一些基礎(chǔ)知識(shí)如下。如果有空還要再了解hid報(bào)告描述符及協(xié)議的數(shù)據(jù)包波形。
    發(fā)表于 05-18 10:18 ?4419次閱讀

    嵌入式系統(tǒng)的一些基礎(chǔ)知識(shí)

    本文主要介紹嵌入式系統(tǒng)的一些基礎(chǔ)知識(shí),希望對(duì)各位有幫助。
    的頭像 發(fā)表于 02-18 10:44 ?2416次閱讀

    5G通信技術(shù)的一些基礎(chǔ)知識(shí)

    隨著社會(huì)的進(jìn)步和技術(shù)的發(fā)展,5G生活離我們愈來愈近了,這里和大家分享下5G通信技術(shù)的一些基礎(chǔ)知識(shí)。
    的頭像 發(fā)表于 02-09 16:11 ?2.1w次閱讀
    5G通信技術(shù)的<b class='flag-5'>一些</b><b class='flag-5'>基礎(chǔ)知識(shí)</b>

    細(xì)談SolidWorks教育版的一些基礎(chǔ)知識(shí)

    SolidWorks教育版是款廣泛應(yīng)用于工程設(shè)計(jì)和教育領(lǐng)域的三維建模軟件。它具備直觀易用的操作界面和強(qiáng)大的設(shè)計(jì)功能,為學(xué)生提供了個(gè)學(xué)習(xí)和實(shí)踐的平臺(tái)。在本文中,我們將詳細(xì)探討SolidWorks教育版的一些
    的頭像 發(fā)表于 04-01 14:35 ?344次閱讀