国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

因為筆試常考。

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

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

用來緩存一定量的數據

解決位寬不匹配的問題

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

2、實例

2.1、寫時鐘快、讀時鐘慢

2.1.1、無間斷的寫、讀操作

條件:

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

讀寫操作不間斷

解法:

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

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

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

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

2.1.2、間斷的寫、讀操作

條件:

寫入時鐘頻率 fA = 80MHz;讀取時鐘頻率 fB = 50MHz. 一次寫入的突發長度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個數據會丟)

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

2.2、寫時鐘慢、讀時鐘快

2.2.1、無間斷的寫、讀操作

條件:

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

寫、讀操作無間斷

解法:

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

2.2.2、間斷的寫、讀操作

條件:

寫入時鐘頻率 fA = 30MHz;讀取時鐘頻率 fB = 50MHz. 一次寫入的突發長度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

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

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

2.3.1、無間斷的寫、讀操作

條件:

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

寫、讀操作無間斷

解法:

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

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

2.3.2、間斷的寫、讀操作

條件:

寫入時鐘頻率 fA = 讀取時鐘頻率 fB = 50MHz。一次寫入的突發長度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

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

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

條件:

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

每10個時鐘讀出8個數據

一次寫入的突發長度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深度的計算建立在滿足一次突發傳輸的基礎上

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

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

審核編輯:湯梓紅

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

    關注

    13

    文章

    4789

    瀏覽量

    90057
  • fifo
    +關注

    關注

    3

    文章

    407

    瀏覽量

    45746
  • 計算
    +關注

    關注

    2

    文章

    460

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    電子工程師必備:LM3881簡單電源排序器深度解析

    電子工程師必備:LM3881簡單電源排序器深度解析 作為電子工程師,在設計電源系統時常常會面臨諸多挑戰,如多個電源上電和下電的時序控制、避免浪涌電流和閂鎖問題等。今天,我將為大家詳細介紹一款能有
    的頭像 發表于 02-26 17:10 ?459次閱讀

    FIFO存儲器的種類、IP配置及應用

    FIRST IN FIRST OUT (先入先出)。顧名思義,FIFO是一個數據具有先進先出的存儲器。
    的頭像 發表于 01-13 15:15 ?370次閱讀
    <b class='flag-5'>FIFO</b>存儲器的種類、IP配置及應用

    請問有沒有最小化系統程序,編程時可以快速設置?

    請問有沒有最小化系統程序,編程時可以快速設置
    發表于 12-23 08:16

    請問UART硬件FIFO深度是多少?如何避免數據溢出?

    UART 硬件 FIFO 深度是多少?如何避免數據溢出?
    發表于 11-21 06:59

    分享---簡單快速實現烘烤設備UI界面的方法

    本文分享下,如何簡單快速的設計出工業烘烤設備的UI界面方法, 借助 \"墨刀\" 界面原型設計工具,設計烘烤機主界面圖片。 使用拓普微 SGTools開發工具,建立工程和頁面
    發表于 08-26 11:58

    大模型推理顯存和計算量估計方法研究

    隨著人工智能技術的飛速發展,深度學習大模型在各個領域得到了廣泛應用。然而,大模型的推理過程對顯存和計算資源的需求較高,給實際應用帶來了挑戰。為了解決這一問題,本文將探討大模型推理顯存和計算量的估計
    發表于 07-03 19:43

    降壓式電路的緩沖電路原理和快速設計

    摘要 本應用報告首先給出了降壓式開關電路(buck)在上管開通瞬間的的一個等效諧振回路模型。根據該模型推導出使得開關振鈴最小化的阻容緩沖電路(snubber)的參數計算公式,并結合參數公式給出
    發表于 06-05 14:27

    cy7c68013a異步slave fifo模式,外部mcu無法讀寫fifo怎么解決?

    cy7c68013a 異步slave fifo 模式,外部mcu無法讀寫fifo 上位機發送bulk數據,flag標志是對的,SLCS也拉低了,是設置的低有效, 檢測到了flag不為空的標志后
    發表于 06-03 10:49

    存儲示波器的存儲深度對信號分析有什么影響?

    /周期才能精確計算RMS抖動)。 案例: 采樣率1GS/s,存儲深度10kpts → 記錄時間僅10μs,每周期僅10點(100MHz信號),邊沿重建質量差。 存儲深度升級至1Mpts → 記錄時間
    發表于 05-27 14:39

    智多晶FIFO_Generator IP介紹

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

    基于FPGA的FIFO實現

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

    Claude 3.7:編碼助手首選,claude api key如何申請獲取與深度解析*

    核心看點 混合推理引擎 :Claude 3.7 融合快速代碼生成與深度問題解決能力,實現“快思考”與“深思考”的無縫切換。 便捷API訪問 :三步快速獲取Claude 3.7 API密鑰,安全、
    的頭像 發表于 03-24 09:43 ?1860次閱讀
    Claude 3.7:編碼助手首選,claude api key如何申請獲取與<b class='flag-5'>深度</b>解析*

    【AIBOX 應用案例】單目深度估計

    ?Firefly所推出的NVIDIA系列的AIBOX可實現深度估計,該技術是一種從單張或者多張圖像預測場景深度信息的技術,廣泛應用于計算機視覺領域,尤其是在三維重建、場景理解和環境感知等任務中起到
    的頭像 發表于 03-19 16:33 ?1104次閱讀
    【AIBOX 應用案例】單目<b class='flag-5'>深度</b>估計

    AXI接口FIFO簡介

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

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

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