在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FIFO的閾值如何設(shè)置

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

什么是FIFO?

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

什么情況下使用FIFO?

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

什么是FIFO的閾值?

FIFO的接口信號(hào)一般會(huì)有將滿prog_full和prog_empty信號(hào),對(duì)應(yīng)afull_cnt將滿閾值和aempty_cnt 將空閾值;當(dāng)FIFO的數(shù)據(jù)data_count大于afull_cnt 時(shí),將滿afull 將會(huì)拉高,由于路徑上有一定延時(shí)(Nxclk)因此必須要提前通知上游模塊,不要再給下游模塊發(fā)數(shù)據(jù)了,否則FIFO會(huì)溢出,不會(huì)使用full滿信號(hào)作為通知上游的反壓信號(hào)。Prog_empty 信號(hào)一般不會(huì)使用,使用empty,F(xiàn)IFO非空即讀。

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

FIFO的閾值如何設(shè)置?

1.當(dāng)FIFO的數(shù)據(jù)等于afull_cnt時(shí),afull 開始拉高,反壓 路徑延時(shí)M拍到達(dá)上游模塊Module A,此時(shí)FIFO中的數(shù) 據(jù)拍數(shù)為afull_cnt + M

2.上游模塊ModuleA 收到afull信號(hào)后開始響應(yīng),但是還 會(huì)給下游發(fā)送路徑流水?dāng)?shù)據(jù)N拍

此時(shí)FIFO中的數(shù)據(jù)為afull_cnt +M +N

3.為了數(shù)據(jù)不會(huì)溢出,F(xiàn)ifo_depth >= afull_cnt +M +N ;得到afull_cnt <=Fifo_depth –(M+N)

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

FIFO的深度如何計(jì)算?

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

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

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

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

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

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

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

FIFO的深度計(jì)算公式

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

帶寬計(jì)算公式:bw=freq*data_width

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

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

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

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

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

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

2.FIFO用于緩沖塊數(shù)據(jù)流,一般用在寫快讀慢時(shí),遵循的規(guī)則如下:

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

即:保對(duì)FIFO寫數(shù)據(jù)時(shí)不存在overflow,從FIFO讀出數(shù)據(jù)時(shí)不存在underflow

計(jì)算公式如下:

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

寫時(shí)鐘頻率w_clk,

讀時(shí)鐘頻率 r_clk,

寫時(shí)鐘周期里,每B個(gè)時(shí)鐘周期會(huì)有A個(gè)數(shù)據(jù)寫入FIFO

讀時(shí)鐘周期里,每Y個(gè)時(shí)鐘周期會(huì)有X個(gè)數(shù)據(jù)讀出FIFO

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5427

    瀏覽量

    123752
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7249

    瀏覽量

    91407
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    400

    瀏覽量

    44682

原文標(biāo)題:FIFO閾值設(shè)置及深度計(jì)算原理

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ADXL372讀取FIFO中的數(shù)據(jù),獲得的數(shù)據(jù)比設(shè)置的活動(dòng)閾值位0.5g大很多是為什么?

    設(shè)置活動(dòng)閾值位0.5g,通過晃動(dòng)加速度傳感器,讀取FIFO中的數(shù)據(jù)獲得的數(shù)據(jù)比0.5g大很多,不符合預(yù)期的結(jié)果
    發(fā)表于 12-27 06:32

    請(qǐng)教一個(gè)FIFO應(yīng)用問題

    我準(zhǔn)備用24位的A/D采集地震信號(hào)(加速度芯片采集的加速度值),信號(hào)先存入FIFO中,對(duì)信號(hào)設(shè)置一個(gè)閾值,當(dāng)數(shù)值超過閾值時(shí)報(bào)警,并記錄報(bào)警前30秒地震數(shù)據(jù),報(bào)警后10秒(30秒也行)的
    發(fā)表于 10-20 16:37

    求助專家關(guān)于DM642的VP口FIFO閾值和EDMA設(shè)置問題

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

    使用INT1_THS的LIS2DH12 FIFO如何將閾值設(shè)置鏈接到FIFO數(shù)據(jù)

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

    談?wù)?b class='flag-5'>FIFO閾值閾值設(shè)置及深度計(jì)算

    `立即學(xué)習(xí)—60天FPGA工程師入門就業(yè)項(xiàng)目實(shí)戰(zhàn)特訓(xùn)營(3月16日開班) 談?wù)?b class='flag-5'>FIFO閾值閾值設(shè)置及深度計(jì)算1.什么是FIFO2.什么情
    發(fā)表于 02-19 21:09

    FIFO閾值設(shè)置及深度計(jì)算原理

    發(fā)表于 06-08 15:36

    vivado的fifo生成步驟介紹

    ifo深度D、設(shè)置輸出數(shù)據(jù)位寬、讀fifo深度會(huì)自動(dòng)生成E、選擇異步復(fù)位F、勾選復(fù)位管腳G、選擇高電平復(fù)位或低電平復(fù)位4、設(shè)置滿、空標(biāo)志位選擇信號(hào)可編程滿、空閾值、可以自主
    發(fā)表于 01-08 17:20

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

    在我的應(yīng)用中,我需要 LSM6DSL 在達(dá)到配置的 FIFO 閾值時(shí)生成中斷。我將 FIFO 用于加速度計(jì)和陀螺儀。我的配置如下,FIFO_CTRL5 = 0x09 // ODR 12
    發(fā)表于 01-13 09:02

    如何設(shè)置狀態(tài)機(jī)中斷的閾值

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

    基于LPM的高速FIFO的設(shè)計(jì)

    利用參數(shù)可設(shè)置模塊庫(LPM)中的兆功能模塊,根據(jù)實(shí)際系統(tǒng)的需要,對(duì)其參數(shù)進(jìn)行必要的調(diào)整設(shè)置,介紹了一個(gè)高速FIFO 存儲(chǔ)器的設(shè)計(jì)方法和步驟,給出了仿真結(jié)果,方便實(shí)用。
    發(fā)表于 09-02 09:33 ?26次下載

    AXI STREAM FIFO如何設(shè)置雙時(shí)鐘

    IP核的全稱是: AXI4-STREAM FIFO 設(shè)置注意事項(xiàng):一定要選擇異步時(shí)鐘,也就是雙時(shí)鐘,如下: 關(guān)于其他配置: TLAST 一般要選擇的,作為邊界界定。其他可以不選。深度不必太深,因?yàn)橹黄鸬酱┰綍r(shí)鐘區(qū)域的作用。
    發(fā)表于 03-26 14:40 ?5558次閱讀
    AXI STREAM <b class='flag-5'>FIFO</b>如何<b class='flag-5'>設(shè)置</b>雙時(shí)鐘

    同步FIFO和異步FIFO的區(qū)別 同步FIFO和異步FIFO各在什么情況下應(yīng)用

    同步FIFO和異步FIFO的區(qū)別 同步FIFO和異步FIFO各在什么情況下應(yīng)用? 1. 同步FIFO和異步
    的頭像 發(fā)表于 10-18 15:23 ?2080次閱讀

    請(qǐng)問異步FIFO的溢出操作時(shí)怎么樣判斷的?

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

    同步FIFO和異步FIFO區(qū)別介紹

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

    ZUS示波器獨(dú)立閾值設(shè)置:操作化繁為簡,測(cè)量更加高效

    現(xiàn)代數(shù)字示波器雖然擁有豐富的參數(shù)測(cè)量功能,但在進(jìn)行特定信號(hào)的精確測(cè)量,如閾值電平時(shí),仍需手動(dòng)調(diào)整設(shè)置。ZUS系列示波器突破傳統(tǒng),允許直接獨(dú)立設(shè)置閾值電平大小,簡化操作流程,在自動(dòng)化測(cè)試
    的頭像 發(fā)表于 06-09 11:35 ?84次閱讀
    ZUS示波器獨(dú)立<b class='flag-5'>閾值</b><b class='flag-5'>設(shè)置</b>:操作化繁為簡,測(cè)量更加高效
    主站蜘蛛池模板: 国产女主播精品大秀系列在线 | 女bbbbxxxx毛片视频丶 | 四虎欧美 | 免费在线看黄色 | 美女被免费网站在线视频九色 | 天天干天天操天天操 | 午夜啪| 视频在线一区 | 欧美一区高清 | 永久福利盒子日韩日韩免费看 | 日本噜噜影院 | 2019国产情侣 | 性色xxx| 天天噜噜噜| 黄色福利视频网站 | 交在线观看网站视频 | 色综合一区二区三区 | 亚洲欧美高清在线 | 色婷婷狠狠 | 五月六月伊人狠狠丁香网 | 四虎4444hu4影视最新地址 | 日本黄色片黄色片 | 天天操天天射天天舔 | 日本三级吹潮 | 亚洲美女视频一区 | 欧洲mv日韩mv国产mv | 国模啪啪一区二区三区 | 亚洲国产精品婷婷久久久久 | 久久综合久久88 | 久久中文字幕综合婷婷 | 永久手机看片福利盒子 | 拍拍拍无挡视频免费全程1000 | www色.com| 欧美 ed2k| 激情婷婷网 | 一区二区三区视频在线 | 国产手机在线看片 | 永久免费观看午夜视频在线 | 六月婷婷综合 | 性欧美高清 | 亚洲大胆精品337p色 |