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

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

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

在FPGA設(shè)計(jì)中FIFO的使用技巧

FPGA設(shè)計(jì)論壇 ? 來源:EETOP ? 作者:lucien_1986 ? 2021-09-09 11:15 ? 次閱讀

FIFO是在FPGA設(shè)計(jì)中使用的非常頻繁,也是影響FPGA設(shè)計(jì)代碼穩(wěn)定性以及效率等得關(guān)鍵因素。在數(shù)據(jù)連續(xù)讀取時(shí),為了能不間斷的讀出數(shù)據(jù)而又不導(dǎo)致FIFO為空后還錯(cuò)誤的讀出數(shù)據(jù)??梢詫IFO的Empty和Almost_empty以及讀使能配合起來使用,來保證能夠連續(xù)讀,并準(zhǔn)確的判斷FIFO空滿狀態(tài),提前決定是否能啟動(dòng)讀使能。

具體的實(shí)施辦法是:當(dāng)Empty為1,立即停止讀;當(dāng)Empty為0,Almost_empty為0時(shí),可以放心讀;當(dāng)Empty為0,但是Almost_empty為1時(shí),如果上一拍讀使能Read也為1,那么不能讀;當(dāng)Empty為0,但是Almost_empty為1時(shí),如果上一拍讀使能Read為0,可以讀最后一拍。

在FIFO使用時(shí),使用到Almost_full信號(hào)以及讀寫counter來控制FIFO的讀滿預(yù)警,如果數(shù)據(jù)不是在空滿判斷的下一拍寫入FIFO,則設(shè)計(jì)FIFO的滿預(yù)警時(shí)要小心。如果你不確定判斷滿預(yù)警之后要延遲多少拍才能真正寫入FIFO,那么盡量讓FIFO有足夠滿預(yù)警裕量。

例如,在wr_data_count為128才是真的滿了,你可以設(shè)成wr_data_count為120的時(shí)候就給出滿預(yù)警,可以保證設(shè)計(jì)的可靠和安全。當(dāng)然,如果你能準(zhǔn)確的算出判斷滿預(yù)警與真正寫入FIFO的延遲,可以用精確的滿預(yù)警閾值。

當(dāng)需要使用到數(shù)據(jù)位寬轉(zhuǎn)換時(shí),如將128位的數(shù)據(jù)轉(zhuǎn)換成64位的數(shù)據(jù),最好不要用XILINX自己生成的位寬轉(zhuǎn)換FIFO。可以例化兩個(gè)64位的FIFO,自己控制128轉(zhuǎn)64。這樣可以大大的節(jié)省資源,是XILINX CORE生成的FIFO資源的一半。

另外,當(dāng)需要使用到位寬大于18bits,且深度小于等于512的FIFO時(shí),建議使用XILINX COREGenerator來產(chǎn)生,它可以將一個(gè)36bits位寬512深度的FIFO在一個(gè)18×1024的BLOCK RAM中實(shí)現(xiàn)。如果我們自己用BLOCK RAM來實(shí)現(xiàn)一個(gè)FIFO,那只能例化一個(gè)36×1024的BLOCK RAM基元,造成浪費(fèi)。

責(zé)任編輯:haq

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

    關(guān)注

    1629

    文章

    21738

    瀏覽量

    603463
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2167

    瀏覽量

    121441
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    388

    瀏覽量

    43684

原文標(biāo)題:FIFO使用技巧

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA 實(shí)時(shí)信號(hào)處理應(yīng)用 FPGA圖像處理的優(yōu)勢(shì)

    優(yōu)勢(shì)之一是其并行處理能力。與傳統(tǒng)的CPU或GPU相比,FPGA可以同時(shí)執(zhí)行多個(gè)操作,這在圖像處理尤為重要,因?yàn)閳D像處理通常涉及大量的并行數(shù)據(jù)流和復(fù)雜的算法。例如,進(jìn)行圖像濾波或邊緣檢測(cè)時(shí),
    的頭像 發(fā)表于 12-02 10:01 ?533次閱讀

    FPGA 人工智能的應(yīng)用

    隨著人工智能技術(shù)的飛速發(fā)展,FPGA(現(xiàn)場(chǎng)可編程門陣列)AI領(lǐng)域扮演著越來越重要的角色。FPGA以其獨(dú)特的靈活性、低延遲和高能效等優(yōu)勢(shì),為AI應(yīng)用提供了強(qiáng)大的硬件支持。 1. FPGA
    的頭像 發(fā)表于 12-02 09:53 ?501次閱讀

    AFE4960如何正確的從FIFO讀取樣本呢?

    我有一些問題想請(qǐng)教。 雙芯片串行模式下,MCU 收到 AFE4960 發(fā)送的 FIFO_RDY 中斷信號(hào)后,開始通過 SPI 通信從 AFE4960 的 FIFO 讀取樣本。 具
    發(fā)表于 11-14 06:41

    FIFO Generator的Xilinx官方手冊(cè)

    都知道FF資源FPGA是非常珍貴的。 built-in FIFO:這種類型的FIFO只有7系列之后(包括UltraScale)才有。筆者
    的頭像 發(fā)表于 11-12 10:46 ?413次閱讀
    <b class='flag-5'>FIFO</b> Generator的Xilinx官方手冊(cè)

    FIFO的深度應(yīng)該怎么計(jì)算

    FIFOFPGA/IC設(shè)計(jì)中經(jīng)常使用到的模塊,它經(jīng)常被用在兩個(gè)模塊之間進(jìn)行數(shù)據(jù)的緩存,以避免數(shù)據(jù)傳輸過程丟失。同時(shí)FIFO也經(jīng)常被用在
    的頭像 發(fā)表于 10-25 15:20 ?319次閱讀
    <b class='flag-5'>FIFO</b>的深度應(yīng)該怎么計(jì)算

    FPGA物聯(lián)網(wǎng)的應(yīng)用前景

    FPGA(現(xiàn)場(chǎng)可編程門陣列)物聯(lián)網(wǎng)的應(yīng)用前景非常廣闊,其高度的靈活性和可編程性使其成為物聯(lián)網(wǎng)應(yīng)用不可或缺的核心組件。以下是對(duì)FPGA
    的頭像 發(fā)表于 10-25 09:22 ?479次閱讀

    Efinity FIFO IP仿真問題 -v1

    Efinity目前不支持聯(lián)合仿真,只能通過調(diào)用源文件仿真。 我們生成一個(gè)fifo IP命名為fifo_sim Deliverables中保留Testbench的選項(xiàng)。 IP的生成目
    的頭像 發(fā)表于 10-21 11:41 ?1019次閱讀
    Efinity <b class='flag-5'>FIFO</b> IP仿真問題 -v1

    FPGA人工智能的應(yīng)用有哪些?

    和安全的云計(jì)算和網(wǎng)絡(luò)服務(wù)。 三、具體應(yīng)用場(chǎng)景 圖像分類:圖像分類任務(wù),FPGA可以承擔(dān)前置處理、圖像卷積、全連接等任務(wù)。通過FPGA的并行計(jì)算能力,可以大幅提高算法運(yùn)行速度和處理性
    發(fā)表于 07-29 17:05

    如何使用FX3同步從屬fifo模式通過FPGA傳輸傳感器數(shù)據(jù)?

    作為多路復(fù)用器選擇引腳。 不過,切換到從屬 FIFO 之前,我們固件調(diào)用了[i]CyU3PGpioDeInit(),以啟用 GPIF II
    發(fā)表于 07-17 08:04

    如何獲取FIFO接收的字節(jié)數(shù)?

    我正在嘗試 UART0 上接收一個(gè)字符串,并在最基本的步驟獲取 RX FIFO 緩沖區(qū)可用的字節(jié)數(shù)。 我試著使用神奇的公式fifo_l
    發(fā)表于 07-10 06:03

    同步FIFO和異步FIFO區(qū)別介紹

    1. FIFO簡(jiǎn)介 FIFO是一種先進(jìn)先出數(shù)據(jù)緩存器,它與普通存儲(chǔ)器的區(qū)別是沒有外部讀寫地址線,使用起來非常簡(jiǎn)單,缺點(diǎn)是只能順序讀寫,而不能隨機(jī)讀寫。 2. 使用場(chǎng)景 數(shù)據(jù)緩沖:也就是數(shù)據(jù)寫入過快
    的頭像 發(fā)表于 06-04 14:27 ?1631次閱讀
    同步<b class='flag-5'>FIFO</b>和異步<b class='flag-5'>FIFO</b>區(qū)別介紹

    FPGA能否正確接收來自FX3同步從站FIFO的數(shù)據(jù)?

    您好,我無法理解 AN65974 描述的時(shí)序圖,以下是我從 FPGA Verilog 的角度對(duì)時(shí)序的理解, 1.復(fù)位時(shí),SLCS、SLRD 和 SLOE 全部斷態(tài)。 2. t1 時(shí),斷定
    發(fā)表于 05-31 08:09

    FX3與FPGA的連接線是否可以省略地址線?

    您好, FX3 同步從 FIFO 示例,F(xiàn)X3 的 GPIF 充當(dāng)從 FIFO,外部 FPGA 充當(dāng)主
    發(fā)表于 05-31 06:21

    STM32FIFO指的是什么?

    STM32,FIFO指的是什么?是數(shù)據(jù)結(jié)構(gòu)還是硬件上的寄存器還是其他的東西?請(qǐng)老師們指教
    發(fā)表于 04-12 07:14

    同步從fifo的例程,如何理解U2P和P2U的工作方式?

    我想問一下同步從fifo的例程,如何理解U2P和P2U的工作方式,官方的文檔解釋有些抽象 如果FPGA通過FX3實(shí)現(xiàn)數(shù)據(jù)向PC的傳輸?shù)脑?,通過GPIF II 接口將數(shù)據(jù)放進(jìn)去
    發(fā)表于 02-28 06:47