IC/FPGA筆試/面試題分析(九)關(guān)于FIFO最小深度計算的問題

      網(wǎng)友投稿 936 2025-04-01

      IC/FPGA邏輯設(shè)計筆試題中最常見的體型莫過于FIFO最小深度的計算了,以前看到過計算FIFO最小深度,需要代入公式,直到看到這篇文檔,才覺得使用邏輯分析的方法來看更能讓人理解的更為深刻。


      計算FIFO深度最小深度的總的思路大概是:

      算出寫時鐘周期,讀時鐘周期;

      從描述中提取出突發(fā)寫數(shù)據(jù)個數(shù)(Burst Length),一次寫這么多數(shù)據(jù)需要多久?同時,這么長時間,讀了多少數(shù)據(jù)?

      之后,Burst length 減去 讀出的數(shù)據(jù),就是FIFO的最小深度。

      理解這些東西且看下文,下文是從上述文檔中拿出來的例子,本人邊做邊寫,讓自己加深印象,同時更方便大伙那就更好了。

      注意:突發(fā)的意思是數(shù)據(jù)在那個時候集中過來。。。(大概可以這么理解)

      目錄

      概述:

      第一種情況:

      第二種情況:

      第三種情況:

      第四種情況:

      第五種情況:

      第六種情況:

      第7種情況:

      最后一種情況:

      寫在最后:

      概述:

      當一些數(shù)據(jù)必須從一個模塊傳輸?shù)搅硪粋€模塊以避免數(shù)據(jù)丟失時,我們需要在不同時鐘域工作的兩個模塊之間使用異步FIFO。 只有當您讀取速度慢并且寫入速度很快以緩沖較慢模塊未讀取的數(shù)據(jù)時,才需要FIFO。

      FIFO的深度(大小)應該是這樣的,F(xiàn)IFO可以存儲較慢模塊不能讀取的所有數(shù)據(jù)。 FIFO僅在數(shù)據(jù)突發(fā)時才有效; 你不能有連續(xù)的數(shù)據(jù)輸入和輸出。 如果存在連續(xù)的數(shù)據(jù)流,那么所需FIFO的大小應該是無限的。 您需要知道突發(fā)速率,突發(fā)大小,頻率等,以確定FIFO的適當大小。

      第一種情況:

      寫時鐘快于讀時鐘,寫和讀的過程中沒有空閑周期,也即在突發(fā)(burst)過程中,讀和寫都在各自的時鐘域內(nèi)連續(xù)進行。

      例:

      分析過程:

      寫時鐘周期T_A = 1000/80 ns = 12.5ns;同理讀時鐘周期為20ns;

      突發(fā)寫長度為120個數(shù)據(jù),寫120個數(shù)據(jù)耗時120*12.5 = 1500ns;

      1500ns時間內(nèi)讀出數(shù)據(jù)1500/20ns = 75個;

      故最小FIFO深度為120 - 75 = 45;

      第二種情況:

      寫時鐘頻率大于讀時鐘頻率,但在讀寫的過程中存在空閑周期。

      例如:

      分析:

      寫時鐘周期T_A = 12.5ns,讀時鐘周期為T_B = 20ns;

      兩個寫時鐘寫一個數(shù)據(jù),也就是寫一個數(shù)據(jù)需要時間2*T_A = 25ns,那么由于突發(fā)寫數(shù)據(jù)個數(shù)為120個,寫這么多數(shù)據(jù)需要時間120*25ns = 3000ns;

      4個讀時鐘周期讀一個數(shù)據(jù),因此讀一個數(shù)據(jù)需要時間80ns,3000ns讀了3000/80 = 37.5個數(shù)據(jù)(0.5不算一個數(shù)據(jù),沒讀完整),約等于37個數(shù)據(jù)。

      所以,F(xiàn)IFO的最小深度為120 - 37 = 83;

      第三種情況:

      寫時鐘慢于讀時鐘,且讀寫過程中沒有空閑周期;

      例如:

      分析:

      這種情況下永遠也不會發(fā)生數(shù)據(jù)丟失的情況;

      fifo的深度為1即可。

      第四種情況:

      寫時鐘頻率小于讀時鐘頻率,但讀寫過程中存在空閑周期;

      例如:

      分析:

      寫時鐘周期1000/30 ns = 100/3 ns;

      讀時鐘周期 20ns;

      寫一個數(shù)據(jù)需要2個時鐘,也就是200/3 ns;

      讀一個數(shù)據(jù)需要4個時鐘,也就是80 ns;

      寫120個數(shù)據(jù)需要時間8000ns,這段時間內(nèi)讀出數(shù)據(jù)8000/80 = 100個;

      因此,F(xiàn)IFO的最小深度為120 - 100 = 20;

      第五種情況:

      讀寫時鐘速率相同,且無空閑時鐘。

      IC/FPGA筆試/面試題分析(九)關(guān)于FIFO最小深度計算的問題

      例如:

      分析:

      如果讀寫時鐘之間沒有相位差,則不需要FIFO就可以進行讀寫呀;

      如果二者存在相位差,只需要FIFO的深度為1即可。

      第六種情況:

      讀寫時鐘頻率一致,但在讀寫過程中存在空閑周期。

      例如:

      分析:兩個時鐘寫一個數(shù)據(jù),需要時間40ns;

      4個時鐘讀一個數(shù)據(jù),需要80ns;

      由于突發(fā)長度為120,需要120*40 = 4800ns寫完;這段時間讀出數(shù)據(jù)個數(shù):4800/80 = 60;

      所以,F(xiàn)IFO最小深度為120 - 60 = 60;

      第7種情況:

      特定條件下,最壞情況分析FIFO最小深度;

      例如:

      分析:

      首先,從條件可知,寫頻率等于讀頻率;

      其次,讀寫可以在如下限制下的任意時刻發(fā)生:

      “writing of 80 data items will be completed in 100 cycles” and ”reading of 8 data items will be completed in 10 cycles”.

      可能的情況有:

      為了獲得更安全的FIFO深度,我們需要考慮最壞的情況,以防數(shù)據(jù)丟失;

      對于最壞的情況,寫入和讀取之間的數(shù)據(jù)速率之間的差異應該是最大的。 因此,對于寫操作,應考慮最大數(shù)據(jù)速率,對于讀操作,應考慮最小數(shù)據(jù)速率。

      從上表可以看出,最快的寫數(shù)據(jù)速率應該為第4種情況,寫操作在最小的時間內(nèi)完成;

      由于突然寫長度為160,所以160個時鐘寫160個數(shù)據(jù);

      由于讀速度為10個時鐘讀8個數(shù)據(jù),因此一個數(shù)據(jù)需要10/8個時鐘;

      所以160個時鐘讀了160*8/10 = 128個數(shù)據(jù);

      所以FIFO的最小深度為160-128=32.

      最后一種情況:

      條件轉(zhuǎn)彎抹角的給出,需要自己提取關(guān)鍵信息;(一般考試都是這種,提出出來關(guān)鍵信息后,在按照上面的方法來分析即可)

      例如:

      假如clkA = 25MHz,則CLKB = 100MHz;

      TA= 40ns, TB = 10ns;

      en_B = 100*40 = 4000ns;占空比為1/4;

      我們認為B為寫時鐘,寫使能時間為4000/4 = 1000ns,則突發(fā)寫長度為1000/10 = 100個數(shù)據(jù);

      在1000ns內(nèi)讀出數(shù)據(jù)為1000/40 = 25個數(shù)據(jù),所以FIFO最小深度為100 - 25 = 75

      寫在最后:

      不知不覺間,從剛開始建立IC/FPGA筆試面試交流群到現(xiàn)在,陸續(xù)已經(jīng)加入100多人,很多是從CSDN來的,也有一些各位邀請的。

      從和各位的討論中,覺得受益匪淺,這不僅僅是技術(shù)上的收益,同時還開闊了眼界,增長了見識,可謂是英雄豪杰云集于此,真是榮幸。

      如果我是王勃,定為此寫一篇類似的滕王閣序。。。(哈哈)

      最后,還是繼續(xù)歡迎路過的同行俊杰能夠加入進來,我們并不孤單。加我微信,拉你進群(ljs521615)

      FPGA

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:業(yè)務(wù)部部門流程圖制作模板(業(yè)務(wù)部部門流程圖制作模板圖片)
      下一篇:文檔有些字打不出來怎么辦
      相關(guān)文章
      久久久久亚洲?V成人无码| 亚洲av手机在线观看| 亚洲AV无码精品无码麻豆| 久久久久亚洲精品男人的天堂| 亚洲国产a级视频| 亚洲AV中文无码乱人伦在线视色 | 在线观看日本亚洲一区| 亚洲AV无码一区二区三区在线| 亚洲精品第一国产综合精品| 亚洲高清日韩精品第一区| 亚洲视频在线观看网址| 亚洲神级电影国语版| 亚洲人成在线中文字幕| 亚洲免费福利在线视频| 亚洲熟妇成人精品一区| 亚洲成在人线aⅴ免费毛片| 久久亚洲精品高潮综合色a片| 国产成人精品亚洲一区| 亚洲乱码中文字幕综合234| 三上悠亚亚洲一区高清| 亚洲一区二区三区无码中文字幕| 久久亚洲综合色一区二区三区| 亚洲高清专区日韩精品| 久久av无码专区亚洲av桃花岛| 亚洲欧洲高清有无| 国产精品亚洲片夜色在线| 亚洲色少妇熟女11p| 国产精品亚洲一区二区在线观看| 亚洲 综合 国产 欧洲 丝袜| 国产精品亚洲美女久久久| 亚洲av永久无码精品国产精品| 亚洲va在线va天堂va不卡下载 | 亚洲精品理论电影在线观看| 日本亚洲高清乱码中文在线观看| 亚洲精品第一国产综合境外资源| 夜夜春亚洲嫩草影院| 亚洲a在线视频视频| 亚洲一级免费毛片| 亚洲精品中文字幕| 亚洲精品视频免费观看| 人人狠狠综合久久亚洲婷婷|