色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

FIFO的閾值如何設置

FPGA之家 ? 來源:FPGA自習室 ? 作者:FPGA自習室 ? 2022-08-19 09:02 ? 次閱讀

什么是FIFO?

FIFO是First in First out 的縮寫,一般是由寄存器reg或者ram搭起來的,相對于普通存儲器而言,FIFO沒有地址可操作的地址總線,因而使用比較方便,但是數據只能像水流一樣排隊進排隊出。

什么情況下使用FIFO?

FIFO一般發生在不同時鐘域下數據的交互或者同一時鐘域下寫快讀慢的情況下,就像“蓄水池“一樣,讓下游來不及處理的數據暫存起來,不會因此而發生數據丟失。當然寫時鐘數據不能一直是持續的寫入,否則再大的fifo遲早也會溢出。寫時鐘側數據應是突發寫入,在某一段時間內寫數據是大于讀數據的,此時FIFO的深度要保證這段時間內數據不會溢出。從長時間軸來看寫口和讀口流量必定是均衡的。從帶寬角度來看寫帶寬是大于讀帶寬的,FIFO的作用就是完成大帶寬到小帶寬的轉變。

什么是FIFO的閾值?

FIFO的接口信號一般會有將滿prog_full和prog_empty信號,對應afull_cnt將滿閾值和aempty_cnt 將空閾值;當FIFO的數據data_count大于afull_cnt 時,將滿afull 將會拉高,由于路徑上有一定延時(Nxclk)因此必須要提前通知上游模塊,不要再給下游模塊發數據了,否則FIFO會溢出,不會使用full滿信號作為通知上游的反壓信號。Prog_empty 信號一般不會使用,使用empty,FIFO非空即讀。

0c677e50-1f55-11ed-ba43-dac502259ad0.jpg

FIFO的閾值如何設置?

1.當FIFO的數據等于afull_cnt時,afull 開始拉高,反壓 路徑延時M拍到達上游模塊Module A,此時FIFO中的數 據拍數為afull_cnt + M

2.上游模塊ModuleA 收到afull信號后開始響應,但是還 會給下游發送路徑流水數據N拍

此時FIFO中的數據為afull_cnt +M +N

3.為了數據不會溢出,Fifo_depth >= afull_cnt +M +N ;得到afull_cnt <=Fifo_depth –(M+N)

0c972628-1f55-11ed-ba43-dac502259ad0.jpg

FIFO的深度如何計算?

上述而得到的afull_cnt 最大值,沒有得到下限值。在沒有考慮反壓期間下游Module B 需要讀出的數據,為了保證FIFO不會被讀空。

這里考慮FIFO是異步(wclk快于rclk)的場景,(M+N)是寫時鐘wclk域下的時鐘周期拍數,而在讀時鐘rclk域下時鐘周期拍數(rclk/wclk)*(M+N);反壓期間FIFO需要至少要存有M+N拍數據以防被下游模塊讀空,導致數據斷流(極限情況下rclk=wclk) ;

FIFO的深度一方面要要能緩存當起反壓afull后上游的數據流水;另一方面也要使得當反壓撤銷后不會被下游讀空,Afull_cnt應不小于(M+N)。從而得到fifo_depth >=(M+N)+ (M+N) =2*(M+N)。

由于異步FIFO通過比較讀寫指針進行滿空判斷,但是讀寫指針屬于不同的時鐘域,所以在比較之前需要先將讀寫指針進行同步處理,這樣在設計的時候讀寫指針用了至少兩級寄存器同步,同步會消耗至少兩個時鐘周期,勢必會使得判斷空或滿有所延遲。滿判斷時并不是真的滿,有2個地址不會進行讀寫,因此在理論計算的fifo的深度上要多加2。通常FIFO深度會留有20%左右的裕量;而且對與異步FIFO而言FIFO的深度只能是2^n

如下圖所示,如果afull_cnt設的過小假設為5 M+N=15 fifo將會被讀空。導致數據斷流T->T+15 是起反壓期間,寫多少,讀走多少,data_count 不會變化維持在afull_cnt 上,當撤銷反壓之后(T+15->T+30) 這段時間不會有數據寫入,因此必須使得afull_cnt 大于M+N.

此例,對于異步FIFO而言,fifo深度理論計算至少等于2*15+2 =32 正好是2^n,為了設計的可靠性,一般會預留一定裕量,異步FIFO的深度將會擴大一倍,depth=64;15<=Afull_cnt <64-15=49;這個區間內都是合理的。

0cccaeba-1f55-11ed-ba43-dac502259ad0.jpg

FIFO的深度計算公式

1.如果從帶寬的角度分析FIFO的深度,則FIFO的深度和寫口和讀口最大帶寬差有關。

帶寬計算公式:bw=freq*data_width

一般考慮的場景:空閑----bust-----空閑----bust

深度計算公式:T(bust)*bw(read)+fifo_depth >=T(bust)*bw(write)

且保證空閑時間內slave把FIFO讀空:T(空間)*bw(read) >=fifo_dpeth

極端的場景:空閑---bust---bust----空--- (背靠背場景)

深度計算公式:T(bust)*bw(read)+fifo_depth >=2*T(bust)*bw(write)

且保證空閑時間內slave把FIFO讀空:T(空閑時間)*bw(read) >=fifo_dpeth

2.FIFO用于緩沖塊數據流,一般用在寫快讀慢時,遵循的規則如下:

{FIFO深度 /(寫入速率 - 讀出速率)} = {FIFO被填滿時間} > {數據包傳送時間}= {寫入數據量 / 寫入速率}

即:保對FIFO寫數據時不存在overflow,從FIFO讀出數據時不存在underflow

計算公式如下:

fifo_depth = burst_length - burst_length * X/Y * r_clk/w_clk

寫時鐘頻率w_clk,

讀時鐘頻率 r_clk,

寫時鐘周期里,每B個時鐘周期會有A個數據寫入FIFO

讀時鐘周期里,每Y個時鐘周期會有X個數據讀出FIFO

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

    關注

    31

    文章

    5336

    瀏覽量

    120232
  • 數據
    +關注

    關注

    8

    文章

    7002

    瀏覽量

    88943
  • fifo
    +關注

    關注

    3

    文章

    387

    瀏覽量

    43650

原文標題:FIFO閾值設置及深度計算原理

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ADXL372讀取FIFO中的數據,獲得的數據比設置的活動閾值位0.5g大很多是為什么?

    設置活動閾值位0.5g,通過晃動加速度傳感器,讀取FIFO中的數據獲得的數據比0.5g大很多,不符合預期的結果
    發表于 12-27 06:32

    請教一個FIFO應用問題

    我準備用24位的A/D采集地震信號(加速度芯片采集的加速度值),信號先存入FIFO中,對信號設置一個閾值,當數值超過閾值時報警,并記錄報警前30秒地震數據,報警后10秒(30秒也行)的
    發表于 10-20 16:37

    求助專家關于DM642的VP口FIFO閾值和EDMA設置問題

    DM642的VP口的FIFO最大閾值為2560byte(每個通道); 如果所采集的圖像數據,每行的像素超過了2560個字節,例如每行有5120個字節。該如何設置?
    發表于 05-31 05:33

    使用INT1_THS的LIS2DH12 FIFO如何將閾值設置鏈接到FIFO數據

    我希望按照INT1_THS中設置閾值過濾輸入的FIFO數據,但無論幅度如何都設置WTM標志。這兩個功能不兼容嗎?如果沒有,我需要知道如何將閾值
    發表于 09-14 09:59

    談談FIFO閾值閾值設置及深度計算

    `立即學習—60天FPGA工程師入門就業項目實戰特訓營(3月16日開班) 談談FIFO閾值閾值設置及深度計算1.什么是FIFO2.什么情
    發表于 02-19 21:09

    FIFO閾值設置及深度計算原理

    發表于 06-08 15:36

    vivado的fifo生成步驟介紹

    ifo深度D、設置輸出數據位寬、讀fifo深度會自動生成E、選擇異步復位F、勾選復位管腳G、選擇高電平復位或低電平復位4、設置滿、空標志位選擇信號可編程滿、空閾值、可以自主
    發表于 01-08 17:20

    在LSM6DSL中未接收到FIFO閾值中斷的原因?

    在我的應用中,我需要 LSM6DSL 在達到配置的 FIFO 閾值時生成中斷。我將 FIFO 用于加速度計和陀螺儀。我的配置如下,FIFO_CTRL5 = 0x09 // ODR 12
    發表于 01-13 09:02

    如何設置狀態機中斷的閾值?

    你好 ,我需要知道如何設置狀態機中斷的閾值,你能舉個例子解釋一下嗎?精確地意味著在寄存器中設置喚醒狀態機的值
    發表于 02-03 07:50

    基于LPM的高速FIFO的設計

    利用參數可設置模塊庫(LPM)中的兆功能模塊,根據實際系統的需要,對其參數進行必要的調整設置,介紹了一個高速FIFO 存儲器的設計方法和步驟,給出了仿真結果,方便實用。
    發表于 09-02 09:33 ?26次下載

    AXI STREAM FIFO如何設置雙時鐘

    IP核的全稱是: AXI4-STREAM FIFO 設置注意事項:一定要選擇異步時鐘,也就是雙時鐘,如下: 關于其他配置: TLAST 一般要選擇的,作為邊界界定。其他可以不選。深度不必太深,因為只起到穿越時鐘區域的作用。
    發表于 03-26 14:40 ?5318次閱讀
    AXI STREAM <b class='flag-5'>FIFO</b>如何<b class='flag-5'>設置</b>雙時鐘

    同步FIFO和異步FIFO的區別 同步FIFO和異步FIFO各在什么情況下應用

    同步FIFO和異步FIFO的區別 同步FIFO和異步FIFO各在什么情況下應用? 1. 同步FIFO和異步
    的頭像 發表于 10-18 15:23 ?1681次閱讀

    請問異步FIFO的溢出操作時怎么樣判斷的?

    。 當異步FIFO溢出時,通常是指FIFO寫滿了數據,但是接下來還有新的數據要寫入,此時就需要進行溢出操作了。判斷異步FIFO的溢出操作一般有三種方式: 1. 基于閾值的判斷方式 基于
    的頭像 發表于 10-18 15:28 ?1619次閱讀

    同步FIFO和異步FIFO區別介紹

    ,并且間隔時間長,也就是突發寫入。那么通過設置一定深度的FIFO,可以起到數據暫存的功能,且使得后續處理流程平滑。 時鐘域的隔離:主要用異步FIFO。對于不同時鐘域的數據傳輸,可以通過FIFO
    的頭像 發表于 06-04 14:27 ?1564次閱讀
    同步<b class='flag-5'>FIFO</b>和異步<b class='flag-5'>FIFO</b>區別介紹

    單元不平衡永久故障閾值的單元類型特定設置

    電子發燒友網站提供《單元不平衡永久故障閾值的單元類型特定設置.pdf》資料免費下載
    發表于 10-18 11:21 ?0次下載
    單元不平衡永久故障<b class='flag-5'>閾值</b>的單元類型特定<b class='flag-5'>設置</b>
    主站蜘蛛池模板: 国产曰批试看免费视频播放免费| 亚洲精品国偷拍自产在线| 龙泽罗拉av| 精品国产午夜肉伦伦影院| 国产系列视频二区| 国产精品免费观看视频播放| 成人在线视频网站| 嘟嘟嘟WWW免费高清在线中文| yin荡体育课羞耻play双性| Chineseman瘦老头77| 99久久精品费精品国产| 99热久久这里只有精品视频| 99久久国内精品成人免费| 99久久做夜夜爱天天做精品| 99视频精品国产在线视频| jazzjazzjazz欧美| 白丝女仆被啪到深夜漫画| 大屁股妇女流出白浆| 高H黄暴NP辣H一女多男| 国产精品亚洲电影久久成人影院| 国产人妻777人伦精品HD| 国产午夜精品不卡观看| 黄网13区| 蜜桃传媒在线播放| 清晨紧湿爱运动h高h| 十分钟免费观看大全视频| 亚洲 欧美 视频 手机在线| 亚洲欧美日韩精品久久奇米色影视| 亚洲伊人色综合久久天天伊人| 印度人XXx| 99久久99久久久精品久久| 纯肉小黄文高H| 国产乱对白精彩在线播放| 国产欧美亚洲综合第一页| 国内精品不卡一区二区三区| 久9青青cao精品视频在线| 蜜桃精品成人影片| 在线观看免费精品国产| 9477小游戏| 冠希和阿娇13分钟在线视频| 国产亚洲精品精品国产亚洲综合|