常見IC設計 FPGA面試問題之 FIFO深度計算

2021-08-21 13:54:27 字數 1349 閱讀 5191

原文可以看fifo depth calculation 這篇文章。

fifo深度計算的關鍵在於:

在規定時間內傳輸的資料等於接收的資料,寫快讀慢的情況下,突發burst寫入的資料減去該burst時間內讀出的資料,多餘的資料需要能緩衝下來,讓接收端在剩下空閒的時間能從容地把多餘的資料讀出來。

下面看幾道例題。

case1:

計算方法(本題假設寫資料和讀資料位寬相同):

case2

這種情況和case1相同

case3

計算方法

case4

和case3相同,只是問題描述方式不同

case5

這種寫慢讀快的情況fifo的深度為1就夠了。

case6

這個case看似是寫慢讀快,但是因為有idle週期的存在導致

case7

這種情況不需要fifo,如果clka和clkb有相位差,可以採用兩級dff或者深度為1的fifo即可。

case8

同樣算等效時鐘頻率就行了。

case9

可能有下面幾種情況,以及每種情況下寫完160個burst所需要的週期數

考慮最壞的情況case4,160個cycle就要寫完160個資料的burst,在這160個時鐘週期內能從fifo中讀走

160/10∗

8=128 160/10

∗8=128

個資料,所以fifo的深度為160-128=32

case10

假設clkb=100mhz, 則clka=25mhz, 看起來是乙個寫慢讀快的情況,不需要fifo。

但是因為第三個條件en_b的duty cycle只有1/4個週期,也就是在這個burst期間只有1/4的時間能從fifo中讀出資料,這1/4週期的時間內是讀快寫慢,fifo不需要快取資料。其餘3/4個週期只有寫,沒有讀,所以fifo的深度要能快取下這3/4個週期中寫入的資料。

從第二個條件可以看出burst的資料為100,總burst的時間為

100/25m

hz=4000ns

100/25m

hz=4000ns

, 3/4個週期就是3000ns,所以fifo的深度為

3000ns

∗25mh

z=75 3000ns

∗25mh

z=75

SVM常見面試問題

答 幾何間隔與樣本的誤分次數間存在關係 其中的分母就是樣本到分類間隔距離,分子中的r是所有樣本中的最長向量值 答 會,超平面會靠近樣本少的類別。因為使用的是軟間隔分類,而如果對所有類別都是使用同樣的懲罰係數,則由於優化目標裡面有最小化懲罰量,所以靠近少數樣本時,其懲罰量會少一些。比如 假設理想的分隔...

C 常見面試問題

一 抽象與介面的區別 1,抽象 abstract 1 抽象類中可以有抽象方法,也可沒有 2 抽象方法包含實現,也可以由子類實現 3 抽象類不能被sealed修飾,只能使用abstract關鍵字 4 抽象方法不能在抽象類外部宣告 5 抽象類只能單繼承 6 可以有虛方法 virtual 在不同的繼承中,...

SpringMVC 常見面試問題

springmvc流程 原理 流程圖 亂碼問題 重定向和 在返回值前面加 redirect 或 forward return forward 跳轉的頁面或路由 重定向和 的區別 全域性異常 自定義實現spring的全域性異常解析器handlerexceptionresolver springboot...