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

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

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

你們知道FIFO最小深度計(jì)算嗎

FPGA設(shè)計(jì)論壇 ? 來(lái)源:CSDN技術(shù)社區(qū) ? 作者:昨日傍晚 ? 2021-09-10 09:23 ? 次閱讀

FIFO 最小深度計(jì)算

例子 - 1:f_wr 》 f_rd,連續(xù)讀寫(xiě)

寫(xiě)時(shí)鐘80MHz。

讀時(shí)鐘50MHz。

Burst_Len = 120,也就是要求至少安全寫(xiě)入120個(gè)數(shù)據(jù)。

連續(xù)寫(xiě)入和連續(xù)讀取,無(wú)空閑時(shí)間,寫(xiě)入后立即開(kāi)始讀取 ,讀寫(xiě)寬度相同。

Sol:

寫(xiě)速率 》 讀速率,F(xiàn)IFO遲早會(huì)被寫(xiě)滿(mǎn),但它要求至少寫(xiě)入120個(gè)數(shù)據(jù)后FIFO不滿(mǎn)。

寫(xiě)入120個(gè)數(shù)據(jù)耗時(shí) 120 * 12.5 ns = 1500 ns。

寫(xiě)入開(kāi)始后FIFO內(nèi)數(shù)據(jù)以 30M/Date 速率增加。

數(shù)據(jù)增加持續(xù)了 1500 ns ,F(xiàn)IFO最小深度:0.0000015 * 30000000 = 45

例子-1 總結(jié)公式:

de4c36ea-117d-11ec-8fb8-12bb97331649.png

例子 - 2 :f_wr 》 f_rd & 寫(xiě)速率 》 讀速率,非連續(xù)讀寫(xiě)

寫(xiě)時(shí)鐘80MHz。

讀時(shí)鐘50MHz。

Burst_Len = 120,也就是要求至少安全寫(xiě)入120個(gè)數(shù)據(jù)。

寫(xiě)入后立即開(kāi)始讀取 ,讀寫(xiě)寬度相同。

2個(gè)時(shí)鐘中有1個(gè)數(shù)據(jù)寫(xiě)入(寫(xiě)速率:80M * 1/2 = 40M)。

4個(gè)時(shí)鐘中有1個(gè)數(shù)據(jù)讀出(讀速率:50M * 1/4 = 12.5M)。

Sol:

FIFO遲早會(huì)被寫(xiě)滿(mǎn) ,但它要求至少寫(xiě)入120個(gè)數(shù)據(jù)后FIFO不滿(mǎn)。

寫(xiě)一個(gè)數(shù)據(jù)耗時(shí):2/80MHz = 25ns

需要至少寫(xiě)入120數(shù)據(jù),耗時(shí):25 * 120 = 3000ns

例子2只是讀寫(xiě)速率和例子1不同,可以直接用的公式(1) :

FIFO_DEPTH 》 (寫(xiě)速率-讀速率)* Burst_Len/寫(xiě)速率 = (40M-12.5M)*120/40M = 83

例子 - 3:f_wr 《 f_rd ,連續(xù)讀寫(xiě)

寫(xiě)時(shí)鐘30MHz。

讀時(shí)鐘50MHz。

Burst_Len = 120,也就是要求至少安全寫(xiě)入120個(gè)數(shù)據(jù)。

連續(xù)寫(xiě)入和連續(xù)讀取,無(wú)空閑時(shí)間,寫(xiě)入后立即開(kāi)始讀取 ,讀寫(xiě)寬度相同。

Sol:

FIFO_DEPTH 》 1 即可。讀速率比寫(xiě)速率快,數(shù)據(jù)不會(huì)滯留。

例子 -4:f_wr 《 f_rd & 寫(xiě)速率 》 讀速率,非連續(xù)讀寫(xiě)

寫(xiě)時(shí)鐘30MHz。

讀時(shí)鐘50MHz。

Burst_Len = 120,也就是要求至少安全寫(xiě)入120個(gè)數(shù)據(jù)。

2個(gè)時(shí)鐘中有1個(gè)數(shù)據(jù)寫(xiě)入(寫(xiě)速率:30M * 1/2 = 15M)。

4個(gè)時(shí)鐘中有1個(gè)數(shù)據(jù)讀出(讀速率:50M * 1/4 = 12.5M)。

Sol:

雖然寫(xiě)時(shí)鐘小于讀時(shí)鐘頻率,但是,宏觀(guān)上寫(xiě)速率大于讀速率??梢灾苯佑玫墓剑?) :

FIFO_DEPTH 》 (寫(xiě)速率-讀速率)* Burst_Len/寫(xiě)速率 = (15M-12.5M)*120/15M = 20

例子 1-4總結(jié)

當(dāng)滿(mǎn)足以下所有條件時(shí),就可使用公式(1):

寫(xiě)速率 》 讀速率時(shí)。

讀寫(xiě)有效數(shù)據(jù)占比 《= 0.5,且 有效數(shù)據(jù)均勻分布在所有時(shí)間上?;蛘哒f(shuō),無(wú)論微觀(guān)時(shí)間、還是宏觀(guān)時(shí)間上,讀寫(xiě)速率近似于 時(shí)鐘頻率 * 有效數(shù)據(jù)占比時(shí)。

當(dāng)每100個(gè)時(shí)鐘寫(xiě)80個(gè)數(shù)據(jù)時(shí),微觀(guān)時(shí)間上的寫(xiě)速率與數(shù)據(jù)排列有關(guān),不能將宏觀(guān)寫(xiě)速率帶入式子(1)

例子 - 5

讀寫(xiě)時(shí)鐘頻率相同。

100個(gè)時(shí)鐘有80個(gè)數(shù)據(jù)寫(xiě)入。

10個(gè)時(shí)鐘有8個(gè)數(shù)據(jù)讀出。

Burst_Len = 160,也就是要求至少安全寫(xiě)入160個(gè)數(shù)據(jù) 。

Sol:

宏觀(guān)上,讀寫(xiě)速率相同;當(dāng)FIFO足夠深時(shí),F(xiàn)IFO不會(huì)溢出。

微觀(guān)上,寫(xiě)速率有多種情況:

de5c56ce-117d-11ec-8fb8-12bb97331649.png

de830166-117d-11ec-8fb8-12bb97331649.png

為了求出安全的最小FIFO深度,我們需要考慮最差的情況。

最差的情況下,寫(xiě)入和讀出速度應(yīng)該相差最大。寫(xiě)入要最快,讀出要最慢。FIFO內(nèi)的數(shù)據(jù)增加最快。

從上表中可得出:最大寫(xiě)入速率是case 4(back to back write,中間沒(méi)有空閑,速率為時(shí)鐘頻率 f,寫(xiě)入了160個(gè) )。

讀出要最慢,在寫(xiě)160個(gè)數(shù)據(jù)期間,讀相比于寫(xiě)端可以認(rèn)為是速率均勻的,速率為 f*8/10,讀出了160 * 8 /10 = 128個(gè)。

因此 FIFO_DEPTH 》 160 - 128 = 32。用公式(1)也可以得到這個(gè)結(jié)果,寫(xiě)速率帶入f而不是f*8/10。

總結(jié):求解步驟

考慮最差的情況下,寫(xiě)入和讀出速度應(yīng)該相差最大。寫(xiě)入要最快,讀出要最慢。FIFO內(nèi)的數(shù)據(jù)增加最快。

只考慮宏觀(guān)上寫(xiě)入速率 》= 讀出速率的情況。

確定寫(xiě)入Burst_Len大小。Burst_Len指的是一段連續(xù)寫(xiě)入?yún)^(qū)間,由于沒(méi)有空隙這段時(shí)間寫(xiě)入速率最大最多。一定要對(duì)具體的數(shù)據(jù)分布情況具體分析,Burst_Len一定是最長(zhǎng)的一段連續(xù)寫(xiě)入?yún)^(qū)間。

在微觀(guān)上,確定最大寫(xiě)入速率。Burst_Len足夠長(zhǎng)時(shí),寫(xiě)入速率 = 寫(xiě)時(shí)鐘頻率(back to back write)。而在例子 - 2中,Burst_Len很短,沒(méi)有back to back write,寫(xiě)入速率 = 寫(xiě)時(shí)鐘頻率 * 寫(xiě)有效占比。

在微觀(guān)上,確定最小讀出速率。一般認(rèn)為讀出速率是均勻的,讀出速率 = 讀時(shí)鐘頻率 * 讀有效占比。

帶入公式(1)計(jì)算。

Burst_Len足夠長(zhǎng)時(shí),將上面讀出寫(xiě)入速率帶入公式(1),可得到網(wǎng)上討論最多的FIFO深度求解公式:

de8d5a26-117d-11ec-8fb8-12bb97331649.png

不建議直接用公式(2)無(wú)腦計(jì)算,上式只有Burst_Len足夠長(zhǎng),發(fā)生back to back write時(shí)才適用。建議根據(jù)1~6步驟,判斷微觀(guān)寫(xiě)速率是否均勻,帶入式子(1)計(jì)算。

編輯:jq

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

    關(guān)注

    8

    文章

    6767

    瀏覽量

    88640
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    386

    瀏覽量

    43468
  • 計(jì)算
    +關(guān)注

    關(guān)注

    2

    文章

    440

    瀏覽量

    38675

原文標(biāo)題:FIFO 最小深度計(jì)算

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    Efinity FIFO IP仿真問(wèn)題 -v1

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

    如何在CYUSB2014-BZXC中以8位模式配置Slave FIFO?

    我有關(guān)于CYUSB2014-BZXC的問(wèn)題 我想以 8 位為單位發(fā)送和接收數(shù)據(jù)。 手冊(cè)中列出的Slave FIFO是16位模式的最小值,所以請(qǐng)教我如何在8位模式下配置Slave FIFO。 我還希望獲得有關(guān) 8 位模式下信號(hào)分配
    發(fā)表于 07-04 07:40

    深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)領(lǐng)域的應(yīng)用

    隨著人工智能技術(shù)的飛速發(fā)展,深度學(xué)習(xí)作為其中的核心技術(shù)之一,已經(jīng)在計(jì)算機(jī)視覺(jué)領(lǐng)域取得了顯著的成果。計(jì)算機(jī)視覺(jué),作為計(jì)算機(jī)科學(xué)的一個(gè)重要分支,旨在讓計(jì)
    的頭像 發(fā)表于 07-01 11:38 ?545次閱讀

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

    ,并且間隔時(shí)間長(zhǎng),也就是突發(fā)寫(xiě)入。那么通過(guò)設(shè)置一定深度FIFO,可以起到數(shù)據(jù)暫存的功能,且使得后續(xù)處理流程平滑。 時(shí)鐘域的隔離:主要用異步FIFO。對(duì)于不同時(shí)鐘域的數(shù)據(jù)傳輸,可以通過(guò)FIFO
    的頭像 發(fā)表于 06-04 14:27 ?1099次閱讀
    同步<b class='flag-5'>FIFO</b>和異步<b class='flag-5'>FIFO</b>區(qū)別介紹

    關(guān)于同步FIFO和異步FIFO的基礎(chǔ)知識(shí)總結(jié)

    FIFO是一種先進(jìn)先出數(shù)據(jù)緩存器,它與普通存儲(chǔ)器的區(qū)別是沒(méi)有外部讀寫(xiě)地址線(xiàn),使用起來(lái)非常簡(jiǎn)單,缺點(diǎn)是只能順序讀寫(xiě),而不能隨機(jī)讀寫(xiě)。
    的頭像 發(fā)表于 04-09 14:23 ?2879次閱讀
    關(guān)于同步<b class='flag-5'>FIFO</b>和異步<b class='flag-5'>FIFO</b>的基礎(chǔ)知識(shí)總結(jié)

    計(jì)算機(jī)行業(yè)深度報(bào)告

    電子發(fā)燒友網(wǎng)站提供《計(jì)算機(jī)行業(yè)深度報(bào)告.pdf》資料免費(fèi)下載
    發(fā)表于 03-04 10:07 ?0次下載

    異步FIFO結(jié)構(gòu)設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《異步FIFO結(jié)構(gòu)設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 02-06 09:06 ?0次下載

    ADXL362中斷從FIFO里讀取的數(shù)據(jù)和從寄存器里讀取的數(shù)據(jù)相差特別大的原因?

    你們好,我設(shè)置中斷從FIFO里讀取的數(shù)據(jù)和從寄存器里讀取的數(shù)據(jù)相差特別大(平放在桌面上z軸正向受重力,寄存器1000左右,要比FIFO數(shù)值大200多,其他軸同樣情況),請(qǐng)問(wèn)一下哪個(gè)數(shù)據(jù)是正確的?
    發(fā)表于 12-29 08:10

    ADXL355 FIFO數(shù)據(jù)出錯(cuò)是什么原因?qū)е碌模?/a>

    在采樣率較低的時(shí)候,我把ADXL355FIFO的終端觸發(fā)值,也就是FIFO Sample這個(gè)寄存器值設(shè)置的過(guò)小時(shí),前面幾組數(shù)據(jù)總會(huì)出現(xiàn)數(shù)據(jù)為0的情況。當(dāng)我把FIFO的中斷觸發(fā)值提高時(shí)就沒(méi)有這種情況,有人
    發(fā)表于 12-28 06:45

    深度數(shù)智:專(zhuān)注開(kāi)發(fā)基于RISC-V芯片的創(chuàng)新產(chǎn)品

    深度數(shù)智一方面提供RISC-V的深度計(jì)算E2E解決方案,以開(kāi)發(fā)者為中心的高級(jí)原生工具鏈和操作系統(tǒng)。同時(shí),研發(fā)和生產(chǎn)自己創(chuàng)新的消費(fèi)電子產(chǎn)品,如dc-roma筆記本電腦、pad等,今后將在機(jī)器人、汽車(chē)、航空電子等領(lǐng)域推出更多應(yīng)用產(chǎn)品。
    的頭像 發(fā)表于 12-08 10:37 ?658次閱讀

    談一談FIFO深度

    最近加的群里面有些萌新在進(jìn)行討論**FIFO深度**的時(shí)候,覺(jué)得 **FIFO深度計(jì)算比較難以理解** 。所
    的頭像 發(fā)表于 11-28 16:19 ?1189次閱讀
    談一談<b class='flag-5'>FIFO</b>的<b class='flag-5'>深度</b>

    如何計(jì)算深度放電?深度放電如何影響電池壽命?如何保持鋰電池的健康狀態(tài)?

    如何計(jì)算深度放電?深度放電如何影響電池壽命?如何保持鋰電池的健康狀態(tài)? 深度放電是指將電池完全耗盡至低電量狀態(tài)的操作。在深度放電過(guò)程中,電池
    的頭像 發(fā)表于 11-10 15:05 ?5965次閱讀

    FIFO為什么不能正常工作?

    FIFO為什么不能正常工作?復(fù)位信號(hào)有效長(zhǎng)度不夠,接口時(shí)序不匹配,可看下面這篇文章。 本文將介紹: 非DFX工程如何確保異步FIFO自帶的set_max_delay生效? DFX工程如何確保異步
    的頭像 發(fā)表于 11-02 09:25 ?1148次閱讀
    <b class='flag-5'>FIFO</b>為什么不能正常工作?

    簡(jiǎn)述一種fifo讀控制的不合理設(shè)計(jì)案例

    本文將簡(jiǎn)述一種fifo讀控制的不合理設(shè)計(jì)案例,在此案例中,異常報(bào)文將會(huì)堵在fifo中,造成頭阻塞。
    的頭像 發(fā)表于 10-30 14:25 ?360次閱讀
    簡(jiǎn)述一種<b class='flag-5'>fifo</b>讀控制的不合理設(shè)計(jì)案例