一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

C29F_xilinx_inc ? 來源:賽靈思 ? 作者:賽靈思 ? 2022-02-26 17:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、為什么需要計算FIFO的最小深度

因為筆試??肌?/p>

開玩笑的。首先我們來想下FIFO有哪些作用?我大概總結下FIFO的幾個重要作用:

解決不同時鐘域傳輸的問題

用來緩存一定量的數據

解決位寬不匹配的問題

FIFO最常被用來解決寫、讀不匹配的問題(時鐘、位寬),總結下來,其實FIFO最大的作用就是緩沖。既然是緩沖,那么就要知道這個緩存的空間到底需要多大。接下來的討論,都建立在滿足一次FIFO突發(fā)傳輸的基礎上。連續(xù)無止境的突發(fā)不考慮。比如寫時鐘100M,讀時鐘50M,無限制的讀寫,那么FIFO的深度只能是無窮大了,因為寫比讀快,FIFO一定永遠都不夠用。所以在實際運用中,不會存在無限制的對FIFO進行讀寫。如果這樣的話,FIFO就變成了一個“存儲器件”,而不是一個“緩存器件”,對于FIFO的這種用法無疑是毫無意義的。

2、實例

2.1、寫時鐘快、讀時鐘慢

2.1.1、無間斷的寫、讀操作

條件:

寫入時鐘頻率 fA = 80MHz;讀取時鐘頻率 fB = 50MHz. 一次寫入的突發(fā)長度120

讀寫操作不間斷

解法:

寫入一個數據需要的時間:1/80MHz = 12.5ns;讀取一個數據需要的時間:1/50MHz = 20ns

寫入120個數據,需要的時間:120 * 12.5ns = 1500ns

在寫入全部數據所需的時間(1500ns)內,可以讀取出的數據數:1500ns / 20ns = 75

所以一次突發(fā),一共需要寫入120數據,在這段時間內可以被讀出75數據,剩下的數據就是需要使用FIFO來緩存,所以FIFO的最小深度為120 - 75 = 45

2.1.2、間斷的寫、讀操作

條件:

寫入時鐘頻率 fA = 80MHz;讀取時鐘頻率 fB = 50MHz. 一次寫入的突發(fā)長度120。

每兩次寫入操作間隔1個寫時鐘周期,每兩次讀取操作間隔3個讀時鐘周期。

解法:

每兩次寫入操作間隔1個寫時鐘周期,等于每兩個寫時鐘周期才寫入1個數據,即等價的寫入時鐘頻率 fA'=40MHz,寫入一個數據需要的時間:1/40MHz = 25ns

每兩次讀取操作間隔3個讀時鐘周期,等于每4個寫時鐘周期才讀取1個數據,即等價的讀取時鐘頻率 fB'=12.5MHz,讀取一個數據需要的時間:1/12.5MHz = 80ns

寫入120個數據,需要的時間:120 * 25ns = 3000ns

在寫入全部數據所需的時間(3000ns)內,可以讀取出的數據數:3000ns / 80ns = 37.5 ≈ 37(要向下取整,不然有1個數據會丟)

所以一次突發(fā),一共需要寫入120數據,在這段時間內可以被讀出37數據,剩下的數據就是需要使用FIFO來緩存,所以FIFO的最小深度為120 - 37 = 83

2.2、寫時鐘慢、讀時鐘快

2.2.1、無間斷的寫、讀操作

條件:

寫入時鐘頻率 fA = 30MHz;讀取時鐘頻率 fB = 50MHz. 一次寫入的突發(fā)長度120

寫、讀操作無間斷

解法:

因為讀操作的頻率快于寫操作的頻率,所以數據一旦被寫入FIFO后很快就會被讀走,所以FIFO的最小深度為1即可

2.2.2、間斷的寫、讀操作

條件:

寫入時鐘頻率 fA = 30MHz;讀取時鐘頻率 fB = 50MHz. 一次寫入的突發(fā)長度120。

每兩次寫入操作間隔1個寫時鐘周期,每兩次讀取操作間隔3個讀時鐘周期。

解法:

每兩次寫入操作間隔1個寫時鐘周期,等于每兩個寫時鐘周期才寫入1個數據,即等價的寫入時鐘頻率 fA'=15MHz,寫入一個數據需要的時間:1/15MHz = 66.667ns

每兩次讀取操作間隔3個讀時鐘周期,等于每4個寫時鐘周期才讀取1個數據,即等價的讀取時鐘頻率 fB'=12.5MHz,讀取一個數據需要的時間:1/12.5MHz = 80ns

寫入120個數據,需要的時間:120 * 66.667ns = 8000ns

在寫入全部數據所需的時間(8000ns)內,可以讀取出的數據數:8000ns / 80ns = 100

所以一次突發(fā),一共需要寫入120數據,在這段時間內可以被讀出100數據,剩下的數據就是需要使用FIFO來緩存,所以FIFO的最小深度為120 - 100 = 20

2.3、寫時鐘、讀時鐘一樣快

2.3.1、無間斷的寫、讀操作

條件:

寫入時鐘頻率 fA = 讀取時鐘頻率 fB = 30MHz。一次寫入的突發(fā)長度120。

寫、讀操作無間斷

解法:

1、假設讀、寫時鐘無位差、則兩個時鐘同頻、同相,是同步信號,故可以直接對接操作,無需FIFO

2、若讀、寫時鐘存在相位差,則被寫入的數據在一個時鐘周期內會被讀走,所以FIFO的最小深度為1即可

2.3.2、間斷的寫、讀操作

條件:

寫入時鐘頻率 fA = 讀取時鐘頻率 fB = 50MHz。一次寫入的突發(fā)長度120。

每兩次寫入操作間隔1個時鐘周期,每兩次讀取操作間隔3個時鐘周期。

解法:

每兩次寫入操作間隔1個寫時鐘周期,等于每兩個寫時鐘周期才寫入1個數據,即等價的寫入時鐘頻率 fA'=25MHz,寫入一個數據需要的時間:1/25MHz = 40ns

每兩次讀取操作間隔3個讀時鐘周期,等于每4個寫時鐘周期才讀取1個數據,即等價的讀取時鐘頻率 fB'=12.5MHz,讀取一個數據需要的時間:1/12.5MHz = 80ns

寫入120個數據,需要的時間:120 * 40ns = 4800ns

在寫入全部數據所需的時間(4800ns)內,可以讀取出的數據數:4800ns / 80ns = 60

所以一次突發(fā),一共需要寫入120數據,在這段時間內可以被讀出60數據,剩下的數據就是需要使用FIFO來緩存,所以FIFO的最小深度為120 - 60 = 60

2.4、特定時間內時間寫、讀速率固定

條件:

每100個時鐘寫入80個數據,剩余20個隨機值(無效)

每10個時鐘讀出8個數據

一次寫入的突發(fā)長度160

解法:

因為每100個時鐘內,僅寫入80個數據,而這80個數據可能任意分布,所以160個數據的寫入可能有以下幾種情況:

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

可以看到,第4種情況是最極端的:一次性需要寫入160數據,時間為160個時鐘

160個時鐘內,讀出的數據是160*8/10 = 128

所以一共需要寫入160數據,在這段時間內可以被讀出128數據,剩下的數據就是需要使用FIFO來緩存,所以FIFO的最小深度為160 - 128 = 32

3、總結

FIFO是用來緩存的,不是用來存數據的,當寫快讀慢時,無止境的對FIFO操作是沒有意義的(不管FIFO多大,一定都會被寫滿)

FIFO深度的計算建立在滿足一次突發(fā)傳輸的基礎上

當讀快寫滿或者讀寫一樣快時,FIFO的深度最多只需要1

當寫快讀慢時,在一次突發(fā)傳輸時,因為讀慢,所以肯定無法全部讀走。全部寫入的數據量 - 已經被讀走的數據量 = 需要緩存到FIFO的數據量,即異步FIFO的最小深度

審核編輯:湯梓紅

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

    關注

    13

    文章

    4528

    瀏覽量

    87359
  • fifo
    +關注

    關注

    3

    文章

    400

    瀏覽量

    44777
  • 計算
    +關注

    關注

    2

    文章

    453

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    智多晶FIFO_Generator IP介紹

    FIFO_Generator是智多晶設計的一款通用型FIFO IP。當前發(fā)布的FIFO_Generator IP是2.0版本,相比之前的1.1版本主要新增了非等比輸入輸出數據位寬支持和異步FI
    的頭像 發(fā)表于 04-25 17:24 ?935次閱讀
    智多晶<b class='flag-5'>FIFO</b>_Generator IP介紹

    基于FPGA的FIFO實現

    FIFO(First in First out)為先進先出隊列,具有存儲功能,可用于不同時鐘域間傳輸數據以及不同的數據寬度進行數據匹配。如其名稱,數據傳輸為單向,從一側進入,再從另一側出來,出來的順序和進入的順序相同。
    的頭像 發(fā)表于 04-09 09:55 ?601次閱讀
    基于FPGA的<b class='flag-5'>FIFO</b>實現

    AXI接口FIFO簡介

    AXI接口FIFO是從Native接口FIFO派生而來的。AXI內存映射接口提供了三種樣式:AXI4、AXI3和AXI4-Lite。除了Native接口FIFO支持的應用外,AXI FIFO
    的頭像 發(fā)表于 03-17 10:31 ?1024次閱讀
    AXI接口<b class='flag-5'>FIFO</b>簡介

    解鎖TSMaster fifo函數:報文讀取的高效方法

    前言:TSMaster目前有兩種讀取報文的模式:回調函數模式和fifo模式。fifo函數是TSMaster近期新增的函數,本文將重點介紹fifo模塊。關于回調函數的使用方法可以參考幫助模塊的《
    的頭像 發(fā)表于 03-14 20:04 ?445次閱讀
    解鎖TSMaster <b class='flag-5'>fifo</b>函數:報文讀取的高效方法

    深度學習入門:簡單神經網絡的構建與實現

    深度學習中,神經網絡是核心模型。今天我們用 Python 和 NumPy 構建一個簡單的神經網絡。 神經網絡由多個神經元組成,神經元之間通過權重連接。我們構建一個包含輸入層、隱藏層和輸出層的簡單
    的頭像 發(fā)表于 01-23 13:52 ?513次閱讀

    FIFO IP核的使用教程

    在數字設計中,利用FIFO進行數據處理是非常普遍的應用,例如,實現時鐘域交叉、低延時存儲器緩存、總線位寬調整等。下圖給出了FIFO生成器支持的一種可能配置。
    的頭像 發(fā)表于 01-03 09:36 ?2818次閱讀
    <b class='flag-5'>FIFO</b> IP核的使用教程

    請問DAC5682z內部FIFO深度為多少,8SAMPLE具體怎么理解?

    你好,請問DAC5682z內部FIFO深度為多少,8SAMPLE具體怎么理解。 另外,DAC5682zEVM是否可以直接通過TI的ADC-HSMC板卡與ALTERA的FPGA開發(fā)相連(FPGA板HSMC接口與電壓都匹配條件下)。 謝謝
    發(fā)表于 01-03 07:27

    DAC3482在按字寬度輸入模式下,為啥SYNC信號每16*n個FIFO采樣重復一次?

    下圖是DAC3482 中FIFO的說明。該FIFO深度是8。在按字寬度輸入模式下,為啥SYNC信號每16*n個FIFO采樣重復一次?按照我的理解SYNC信號是用來重置
    發(fā)表于 12-20 06:04

    FIFO Generator的Xilinx官方手冊

    FIFO作為FPGA崗位求職過程中最常被問到的基礎知識點,也是項目中最常被使用到的IP,其意義是非常重要的。本文基于對FIFO Generator的Xilinx官方手冊的閱讀與總結,匯總主要知識點
    的頭像 發(fā)表于 11-12 10:46 ?1683次閱讀
    <b class='flag-5'>FIFO</b> Generator的Xilinx官方手冊

    FIFO深度應該怎么計算

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

    FPGA加速深度學習模型的案例

    計算機主板上,以高速PCIe總線進行數據傳輸。 利用FPGA的并行計算能力,快速處理大量的卷積計算。 可編程性
    的頭像 發(fā)表于 10-25 09:22 ?1186次閱讀

    Efinity FIFO IP仿真問題 -v1

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

    FPGA做深度學習能走多遠?

    的發(fā)展前景較為廣闊,但也面臨一些挑戰(zhàn)。以下是一些關于 FPGA 在深度學習中應用前景的觀點,僅供參考: ? 優(yōu)勢方面: ? 高度定制化的計算架構:FPGA 可以根據深度學習算法的特殊需求進行優(yōu)化,例如
    發(fā)表于 09-27 20:53

    基于Python的深度學習人臉識別方法

    基于Python的深度學習人臉識別方法是一個涉及多個技術領域的復雜話題,包括計算機視覺、深度學習、以及圖像處理等。在這里,我將概述一個基本的流程,包括數據準備、模型選擇、訓練過程、以及測試與評估,并附上
    的頭像 發(fā)表于 07-14 11:52 ?1681次閱讀

    簡單認識深度神經網絡

    深度神經網絡(Deep Neural Networks, DNNs)作為機器學習領域中的一種重要技術,特別是在深度學習領域,已經取得了顯著的成就。它們通過模擬人類大腦的處理方式,利用多層神經元結構
    的頭像 發(fā)表于 07-10 18:23 ?2009次閱讀