chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

FPGA開源工坊 ? 來源:FPGA開源工坊 ? 2024-10-25 15:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文首發(fā)于公眾號 FPGA開源工坊

FIFO是FPGA/IC設(shè)計中經(jīng)常使用到的模塊,它經(jīng)常被用在兩個模塊之間進(jìn)行數(shù)據(jù)的緩存,以避免數(shù)據(jù)在傳輸過程中丟失。同時FIFO也經(jīng)常被用在跨時鐘域處理中。

FIFO深度的計算是FPGA和IC筆面試中經(jīng)常被問到的一個問題,在這篇文章里面我們就來討論一下FIFO的深度應(yīng)該怎么計算。

FIFO的深度如果設(shè)置的小了就會有丟數(shù)的風(fēng)險,設(shè)置的大了會有資源的浪費。

在討論如何計算FIFO的深度之前,應(yīng)該先明白一個概念,那就是突發(fā)傳輸 ,也就是burst。

突發(fā)傳輸

為什么要明確突發(fā)傳輸?shù)母拍钅兀课覀兗僭O(shè)有以下幾種開發(fā)場景。

場景一:讀比寫快

假如說一個FIFO在不間斷的向里面寫入數(shù)據(jù)和讀出數(shù)據(jù),并且向FIFO里面寫數(shù)據(jù)的速度比從FIFO里面讀數(shù)據(jù)的速度要慢,那么是不是這個FIFO永遠(yuǎn)都不會被寫滿了。

場景二:寫比讀快

假如說一個FIFO在不間斷的向里面寫入數(shù)據(jù)和讀出數(shù)據(jù),并且寫入的速度比讀出的速度快,那么是不是意味著這個FIFO的深度無論設(shè)置多少都終將會被寫滿。

所以不間斷在對FIFO不間斷的進(jìn)行讀寫的情形中討論FIFO深度是沒有意義的。

而我們要討論的FIFO深度其實是在突發(fā)傳輸中才是有意義的。

突發(fā)傳輸:就是說一個又一個的數(shù)據(jù)包,每一個數(shù)據(jù)包之間是有間隙的。

每一個數(shù)據(jù)包的長度叫做burst length 突發(fā)長度

FIFO的最小深度就與突發(fā)長度,讀寫速率有關(guān)系。

計算出來FIFO的深度關(guān)鍵就在于計算出來在讀寫突發(fā)的這段時間內(nèi),有多少數(shù)據(jù)沒有被讀走,這個數(shù)據(jù)的多少就是FIFO的最小深度。

計算公式

FIFO的深度可以用下面的公式計算出來

可以看到在上述公式里面的關(guān)鍵就是確定burst length。

下面就通過幾個例子來說明burst length的計算。

例子

例一

某大廠的筆試題:

設(shè)計同步FIFO,每100個cycle可以寫入80個數(shù)據(jù),每10個cycle可以讀出8個數(shù)據(jù),F(xiàn)IFO的深度至少為:

A: 16

B: 32

C: 64

D: 72

首先從題目中知道同步FIFO,所以rd_clk和wr_clk是一樣的。

第二每10個cycle中可以讀出8個數(shù)據(jù),那么rd_rate就是8/10也就是0.8

現(xiàn)在關(guān)鍵就是burst length的計算了。

每100個cycle可以寫入80個數(shù)據(jù),那么是不是意味著這80個數(shù)據(jù)可以在100個cycle的周期的任意時間寫進(jìn)FIFO里面。那么什么時候是連續(xù)寫入數(shù)據(jù)最多的極端情況呢,這個極端情況就是burst length最大的時候。

這個極端情況就是在連續(xù)的200個cycle中,是不是可以寫入160個數(shù)據(jù),那么這160個數(shù)據(jù)背靠背的連續(xù)寫入就是極端情況了。

如下圖所示:

80d0dd66-9052-11ef-a511-92fbcf53809c.png

在連續(xù)兩百個周期內(nèi),前20個周期空閑,中間160個時鐘向FIFO寫入數(shù)據(jù),最后20個時鐘再次空閑。

所以burst length就是160

所以FIFO的最小深度為

例二

有一個FIFO設(shè)計,輸入時鐘100MHz,輸出時鐘80MHz,輸入數(shù)據(jù)模式是固定的,其中1000個時鐘中有800個時鐘傳輸連續(xù)數(shù)據(jù),另外200個空閑,請問為了避免FIFO下溢/上溢,最小深度是多少

A: 320

B: 80

C: 160

D: 200

根據(jù)題意wr_clk是100, rd_clk是800。

因為輸入數(shù)據(jù)的模式是固定的,所以不用考慮背靠背的情況,所以burst length是800

題目中沒有說明在輸出的時候讀使能是否會拉低,所以我們認(rèn)為FIFO一直在輸出,也就是rd_rate是1

所以FIFO的深度為:

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

    關(guān)注

    1660

    文章

    22394

    瀏覽量

    635411
  • IC設(shè)計
    +關(guān)注

    關(guān)注

    38

    文章

    1373

    瀏覽量

    108247
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    407

    瀏覽量

    45701
  • 時鐘域
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

    10029

原文標(biāo)題:FPGA|IC筆面試--FIFO深度計算

文章出處:【微信號:FPGA開源工坊,微信公眾號:FPGA開源工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    FPGA學(xué)習(xí)-總結(jié)fifo設(shè)計中深度H的計算

    對于fifo來說,H的設(shè)置至關(guān)重要。既要保證功能性,不溢出丟數(shù),也要保證性能流水。深度設(shè)置過小會影響功能,過大又浪費資源。因此,總結(jié)下fifo設(shè)計中深度H的
    發(fā)表于 08-29 11:19 ?2016次閱讀

    談一談FIFO深度

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

    求助,F(xiàn)PGA fifo深度不夠怎么辦?

    圖像壓縮之后的數(shù)據(jù)存入fifo,然后經(jīng)過nrf2401發(fā)送。。但是由于圖片尺寸比較大,導(dǎo)致fifo深度不夠,受限于FPGA芯片尺寸的限制,fifo
    發(fā)表于 05-22 14:34

    FIFO深度怎么設(shè)計

    FIFO先進(jìn)深度?我也想知道我的輸入是否改變?yōu)?個數(shù)據(jù)單元(每個16位)的突發(fā),應(yīng)該是什么深度?謝謝,阿倫以上來自于谷歌翻譯以下為原文Hi All, I have a design
    發(fā)表于 01-10 10:45

    如何計算異步FIFO深度和單獨的時鐘源

    fifo不為空時,用rd clk = 50 MHz連續(xù)讀出數(shù)據(jù)。從模擬開始,在5次寫入后,fifo空置為空。如何正確計算深度?最初,我的深度
    發(fā)表于 04-09 06:25

    如何計算Async Fifo Depth

    嗨,我想計算異步fifo深度,但我很困惑如何計算它。 fifo參數(shù)如下:寫Clk Freq = 60 MHz。讀取Clk Freq = 1
    發(fā)表于 04-17 08:25

    什么是fifo深度?

    - 恒定8 MB /秒(一旦開始讀取,您將需要保持?jǐn)?shù)據(jù)速率,不允許上溢/下溢)什么應(yīng)該fifo深度?謝謝,以上來自于谷歌翻譯以下為原文Hi, I have a design problem where
    發(fā)表于 04-26 10:56

    談?wù)?b class='flag-5'>FIFO閾值的閾值設(shè)置及深度計算

    `立即學(xué)習(xí)—60天FPGA工程師入門就業(yè)項目實戰(zhàn)特訓(xùn)營(3月16日開班) 談?wù)?b class='flag-5'>FIFO閾值的閾值設(shè)置及深度計算1.什么是FIFO2.什么情況下使用FIFO3.什么
    發(fā)表于 02-19 21:09

    【教程】“最惡劣”的FIFO深度計算

    FIFO內(nèi)緩存數(shù)據(jù)最多。計算此時寫入數(shù)據(jù)-該階段讀出數(shù)據(jù)即為FIFO的最小深度?! ?Nwr = 120x = Nwr - Nrd = 120 - 96 = 24.二.為保證數(shù)據(jù)連續(xù)輸
    發(fā)表于 02-22 20:37

    LabVIEW FPGA模塊實現(xiàn)FIFO深度設(shè)定

    為了解決基于LabVIEWFPGA模塊的DMAFIFO深度設(shè)定不當(dāng)帶來的數(shù)據(jù)不連續(xù)問題,結(jié)合LabVIEWFPGA的編程特點和DMA FIFO的工作原理,提出了一種設(shè)定 FIFO 深度
    發(fā)表于 09-26 13:45 ?8041次閱讀
    LabVIEW FPGA模塊實現(xiàn)<b class='flag-5'>FIFO</b><b class='flag-5'>深度</b>設(shè)定

    基于LabVIEW FPGA模塊程序設(shè)計特點的FIFO深度設(shè)定詳解

    為了解決基于LabVIEWFPGA模塊的DMAFIFO深度設(shè)定不當(dāng)帶來的數(shù)據(jù)不連續(xù)問題,結(jié)合LabVIEWFPGA的編程特點和DMA FIFO的工作原理,提出了一種設(shè)定FIFO深度的方
    發(fā)表于 01-04 14:25 ?5255次閱讀
    基于LabVIEW FPGA模塊程序設(shè)計特點的<b class='flag-5'>FIFO</b><b class='flag-5'>深度</b>設(shè)定詳解

    FIFO最小深度計算所有情況

    由于平時我們工作中,FIFO都是直接調(diào)用IP核,對于FIFO深度選擇并沒有很在意,而在筆試面試過程中,經(jīng)常被問及的問題之一就是如何計算FIFO
    的頭像 發(fā)表于 05-11 14:37 ?2722次閱讀
    <b class='flag-5'>FIFO</b>最小<b class='flag-5'>深度計算</b>所有情況

    你們知道FIFO最小深度計算

    FIFO 最小深度計算 例子 - 1:f_wr 》 f_rd,連續(xù)讀寫 寫時鐘80MHz。 讀時鐘50MHz。 Burst_Len = 120,也就是要求至少安全寫入120個數(shù)據(jù)。 連續(xù)寫入和連續(xù)
    的頭像 發(fā)表于 09-10 09:23 ?2654次閱讀
    你們知道<b class='flag-5'>FIFO</b>最小<b class='flag-5'>深度計算</b>嗎

    如何簡單快速地計算FIFO的最小深度

    的基礎(chǔ)上。連續(xù)無止境的突發(fā)不考慮。比如寫時鐘100M,讀時鐘50M,無限制的讀寫,那么FIFO深度只能是無窮大了,因為寫比讀快,FIFO一定永遠(yuǎn)都不夠用。所以在實際運用中,不會存在無限制的對
    的頭像 發(fā)表于 02-26 17:41 ?4254次閱讀
    如何簡單快速地<b class='flag-5'>計算</b><b class='flag-5'>FIFO</b>的最小<b class='flag-5'>深度</b>

    FIFO最小深度計算的方法

    由于平時我們工作中,FIFO都是直接調(diào)用IP核,對于FIFO深度選擇并沒有很在意,而在筆試面試過程中,經(jīng)常被問及的問題之一就是如何計算FIFO
    的頭像 發(fā)表于 07-03 17:25 ?3664次閱讀