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

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

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

淺談FIFO設(shè)計(jì)思路

CHANBAEK ? 來(lái)源:數(shù)字電路IC ? 作者:lookoutwl ? 2023-09-11 17:05 ? 次閱讀

FIFO在設(shè)計(jì)是一個(gè)非常常見(jiàn)并且非常重要的模塊,很多公司有成熟的IP,所以一部分人并沒(méi)有人真正研究寫(xiě)過(guò)FIFO,本文僅簡(jiǎn)述FIFO中部分值得保留的設(shè)計(jì)思路。

FIFO可以分為2大類(lèi):有直接使用寄存器搭的FIFO(多用于小型FIFO、和異步FIFO),也有使用SRAM搭的FIFO(多用于大型存儲(chǔ))。

因?yàn)镾RAM比寄存器面積小。其他更細(xì)劃分如單口,雙口等等不做詳細(xì)介紹。

本文將簡(jiǎn)述以下兩個(gè)方向:

lSRAM出口通常不是當(dāng)拍可以讀出數(shù)據(jù),因此需要邏輯對(duì)這部分做邏輯,實(shí)現(xiàn)和寄存器相同時(shí)序。

l由于第一條邏輯造成,當(dāng)用戶(hù)讀取SRAM數(shù)據(jù)時(shí)會(huì)有幾拍延遲,因此為消除延遲將會(huì)增加數(shù)據(jù)輸出開(kāi)關(guān)功能(見(jiàn)本公眾號(hào)文章模塊端口握手設(shè)計(jì)模塊多對(duì)多端口握手設(shè)計(jì)-總結(jié))以及數(shù)據(jù)輸入切換功能。

本文設(shè)計(jì)FIFO如下圖所示:

圖片

第一條中SRAM出口無(wú)法做到當(dāng)怕出數(shù)的原因是由SRAM的知道工藝造成(可以在存儲(chǔ)器芯片手冊(cè)里看到),例如在TSMC 5nm工藝下,讀使能有效到數(shù)據(jù)穩(wěn)定輸出大概需要500ps,而且如果位寬過(guò)大,在ECC時(shí)又需要幾百ps延遲,因此可能一拍數(shù)據(jù)無(wú)法收斂,因此需要幾級(jí)寄存器緩存,一般是3拍(控制信號(hào)緩存+讀數(shù)據(jù)延遲+ECC延遲)。

第二條中輸出開(kāi)關(guān)功能,參見(jiàn)本文相應(yīng)文章,功能主要保證當(dāng)FIFO有數(shù)據(jù)時(shí)會(huì)傳遞至最后一級(jí)輸出寄存器中。

第二條中的輸入切換功能,是指2個(gè)mux模塊,功能主要保證輸出reg優(yōu)先被填滿(mǎn),當(dāng)輸出reg被填滿(mǎn)之后,新數(shù)據(jù)才會(huì)被存入SRAM中。輸出寄存器數(shù)量和SRAM延時(shí)寄存器數(shù)量相同,保證當(dāng)輸出寄存器中數(shù)據(jù)在3拍讀出之后SRAM數(shù)據(jù)經(jīng)過(guò)延時(shí)之后恰好可以繼續(xù)被讀出,而不會(huì)中間出現(xiàn)間隔。

對(duì)于mux2的功能是在FIFO數(shù)據(jù)為空,且同時(shí)又讀寫(xiě)使能,可以直接把輸入數(shù)據(jù)輸出。

上述內(nèi)容僅用于同步FIFO設(shè)計(jì),而異步大型FIFO經(jīng)常采用同步SRAM緩存+異步寄存器FIFO的設(shè)計(jì)模式,有時(shí)間待續(xù)異步FIFO設(shè)計(jì)。

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

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120363
  • sram
    +關(guān)注

    關(guān)注

    6

    文章

    767

    瀏覽量

    114689
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    388

    瀏覽量

    43679
  • FIFO設(shè)計(jì)
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    4963
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FIFO隊(duì)列原理簡(jiǎn)述

    FIFO是隊(duì)列機(jī)制中最簡(jiǎn)單的,每個(gè)接口上只有一個(gè)FIFO隊(duì)列,表面上看FIFO隊(duì)列并沒(méi)有提供什么QoS保證,甚至很多人認(rèn)為FIFO嚴(yán)格意義上不算做一種隊(duì)列技術(shù),實(shí)則不然,
    發(fā)表于 07-10 09:22 ?1665次閱讀

    握手型接口的同步FIFO實(shí)現(xiàn)

    按照正常的思路,在前文完成前向時(shí)序優(yōu)化和后向時(shí)序優(yōu)化后,后面緊跟的應(yīng)該是雙向時(shí)序優(yōu)化策略了,不過(guò)不急,需要先實(shí)現(xiàn)一下握手型同步FIFO
    的頭像 發(fā)表于 12-04 14:03 ?725次閱讀
    握手型接口的同步<b class='flag-5'>FIFO</b>實(shí)現(xiàn)

    求助verilog編寫(xiě)實(shí)現(xiàn)AXIStream-FIFO功能思路

    empty、full,改為valid、last、ready等5、可用block ram實(shí)現(xiàn)6、讀寫(xiě)接口分別為AXI stream master和slave 我看了Xilinx的FIFO generator的datasheet不是很清楚時(shí)序圖,能不能講解一下編程的思路,貼出
    發(fā)表于 02-21 16:24

    什么是fifo

    1.什么是FIFOFIFO是英文First In First Out 的縮寫(xiě),是一種先進(jìn)先出的數(shù)
    發(fā)表于 07-22 16:00 ?0次下載

    高速異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)

    本文主要研究了用FPGA 芯片內(nèi)部的EBRSRAM 來(lái)實(shí)現(xiàn)異步FIFO 設(shè)計(jì)方案,重點(diǎn)闡述了異步FIFO 的標(biāo)志信號(hào)——空/滿(mǎn)狀態(tài)的設(shè)計(jì)思路,并且用VHDL 語(yǔ)言實(shí)現(xiàn),最后進(jìn)行了仿真驗(yàn)證。
    發(fā)表于 01-13 17:11 ?40次下載

    一種異步FIFO的設(shè)計(jì)方法

    摘要:使用FIFO同步源自不同時(shí)鐘域的數(shù)據(jù)是在數(shù)字IC設(shè)計(jì)中經(jīng)常使用的方法,設(shè)計(jì)功能正確的FUFO會(huì)遇到很多問(wèn)題,探討了兩種不同的異步FIFO的設(shè)計(jì)思路。兩種思路
    發(fā)表于 03-24 12:58 ?770次閱讀
    一種異步<b class='flag-5'>FIFO</b>的設(shè)計(jì)方法

    什么是fifo fifo什么意思 GPIF和FIFO的區(qū)別

    什么是fifo (First Input First Output,先入先出隊(duì)列)這是一種傳統(tǒng)的按序執(zhí)行方法,先進(jìn)入的指令先完成并引退,跟著才執(zhí)行第二條指令。1.什么是FIFO
    發(fā)表于 12-20 13:51 ?1.3w次閱讀

    如何配置自己需要的FIFO?FIFO配置全攻略

    配置FIFO的方法有兩種: 一種是通過(guò)QUARTUS II 中TOOLS下的MegaWizard Plug-In Manager 中選擇FIFO參數(shù)編輯器來(lái)搭建自己需要的FIFO,這是自動(dòng)生成
    發(fā)表于 07-20 08:00 ?17次下載
    如何配置自己需要的<b class='flag-5'>FIFO</b>?<b class='flag-5'>FIFO</b>配置全攻略

    FPGA之FIFO練習(xí)1:設(shè)計(jì)思路

    FIFO隊(duì)列具有處理簡(jiǎn)單,開(kāi)銷(xiāo)小的優(yōu)點(diǎn)。但FIFO不區(qū)分報(bào)文類(lèi)型,采用盡力而為的轉(zhuǎn)發(fā)模式,使對(duì)時(shí)間敏感的實(shí)時(shí)應(yīng)用(如VoIP)的延遲得不到保證,關(guān)鍵業(yè)務(wù)的帶寬也不能得到保證。
    的頭像 發(fā)表于 12-02 07:02 ?1685次閱讀
    FPGA之<b class='flag-5'>FIFO</b>練習(xí)1:設(shè)計(jì)<b class='flag-5'>思路</b>

    FPGA之FIFO練習(xí)3:設(shè)計(jì)思路

    根據(jù)FIFO工作的時(shí)鐘域,可以將FIFO分為同步FIFO和異步FIFO。同步FIFO是指讀時(shí)鐘和寫(xiě)時(shí)鐘為同一個(gè)時(shí)鐘。在時(shí)鐘沿來(lái)臨時(shí)同時(shí)發(fā)生讀
    的頭像 發(fā)表于 11-29 07:08 ?1880次閱讀

    FPGA之FIFO練習(xí)2:設(shè)計(jì)思路

    FIFO( First Input First Output)簡(jiǎn)單說(shuō)就是指先進(jìn)先出。由于微電子技術(shù)的飛速發(fā)展,新一代FIFO芯片容量越來(lái)越大,體積越來(lái)越小,價(jià)格越來(lái)越便宜。
    的頭像 發(fā)表于 11-18 07:10 ?1778次閱讀

    同步FIFO之Verilog實(shí)現(xiàn)

    FIFO的分類(lèi)根均FIFO工作的時(shí)鐘域,可以將FIFO分為同步FIFO和異步FIFO。同步FIFO
    的頭像 發(fā)表于 11-01 09:57 ?1998次閱讀

    FIFO設(shè)計(jì)—同步FIFO

    FIFO是異步數(shù)據(jù)傳輸時(shí)常用的存儲(chǔ)器,多bit數(shù)據(jù)異步傳輸時(shí),無(wú)論是從快時(shí)鐘域到慢時(shí)鐘域,還是從慢時(shí)鐘域到快時(shí)鐘域,都可以使用FIFO處理。
    發(fā)表于 05-26 16:12 ?1519次閱讀
    <b class='flag-5'>FIFO</b>設(shè)計(jì)—同步<b class='flag-5'>FIFO</b>

    FIFO設(shè)計(jì)—異步FIFO

    異步FIFO主要由五部分組成:寫(xiě)控制端、讀控制端、FIFO Memory和兩個(gè)時(shí)鐘同步端
    發(fā)表于 05-26 16:17 ?1542次閱讀
    <b class='flag-5'>FIFO</b>設(shè)計(jì)—異步<b class='flag-5'>FIFO</b>

    同步FIFO和異步FIFO的區(qū)別 同步FIFO和異步FIFO各在什么情況下應(yīng)用

    同步FIFO和異步FIFO的區(qū)別 同步FIFO和異步FIFO各在什么情況下應(yīng)用? 1. 同步FIFO和異步
    的頭像 發(fā)表于 10-18 15:23 ?1694次閱讀