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

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

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

異步FIFO空滿判斷延遲

電子設(shè)計(jì) ? 來源:工程師曾玲 ? 作者:杭州卿萃科技FPG ? 2019-10-03 13:19 ? 次閱讀

由于設(shè)計(jì)的時(shí)候讀寫指針用了至少兩級寄存器同步,同步會消耗至少兩個時(shí)鐘周期,勢必會使得判斷空或滿有所延遲,這會不會導(dǎo)致設(shè)計(jì)出錯呢?

異步FIFO通過比較讀寫指針進(jìn)行滿空判斷,但是讀寫指針屬于不同的時(shí)鐘域,所以在比較之前需要先將讀寫指針進(jìn)行同步處理。

將寫指針同步到讀時(shí)鐘域再和讀指針比較進(jìn)行FIFO空狀態(tài)判斷,因?yàn)樵谕綄懼羔槙r(shí)需要時(shí)間,而在這個同步的時(shí)間內(nèi)有可能還會寫入新的數(shù)據(jù),因此同步后的寫指針一定是小于或者等于當(dāng)前實(shí)際的寫指針,所以此時(shí)判斷FIFO為空不一定是真空,這樣更加保守,一共不會出現(xiàn)空讀的情況,雖然會影響FIFO的性能,但是并不會出錯,同理將讀指針同步到寫時(shí)鐘域再和寫指針比較進(jìn)行FIFO滿狀態(tài)判斷,同步后的讀指針一定是小于或者等于當(dāng)前的讀指針,所以此時(shí)判斷FIFO為滿不一定是真滿,這樣更保守,這樣可以保證FIFO的特性:FIFO空之后不能繼續(xù)讀取,F(xiàn)IFO滿之后不能繼續(xù)寫入??偨Y(jié)來說異步邏輯轉(zhuǎn)到同步邏輯不可避免需要額外的時(shí)鐘開銷,這會導(dǎo)致滿空趨于保守,但是保守并不等于錯誤,這么寫會稍微有性能損失,但是不會出錯。

大多數(shù)情形下,異步FIFO兩端的時(shí)鐘不是同頻的,或者讀快寫慢,或者讀慢寫快,慢的時(shí)鐘域同步到快的時(shí)鐘域不會出現(xiàn)漏掉指針的情況,但是將指針從快的時(shí)鐘域同步到慢的時(shí)鐘域時(shí)可能會有指針遺漏。以讀慢寫快為例,進(jìn)行滿標(biāo)志判斷的時(shí)候需要將讀指針同步到寫時(shí)鐘域,因?yàn)樽x慢寫快,所以不會有讀指針遺漏,同步消耗時(shí)鐘周期,所以同步后的讀指針滯后(小于等于)當(dāng)前讀地址,所以可能滿標(biāo)志會提前產(chǎn)生,滿并非真滿。

進(jìn)行空標(biāo)志判斷的時(shí)候需要將寫指針同步到讀指針 ,因?yàn)樽x慢寫快,所以當(dāng)讀時(shí)鐘同步寫指針的時(shí)候,必然會漏掉一部分寫指針,我們不用關(guān)心那到底會漏掉哪些寫指針,我們在乎的是漏掉的指針會對FIFO的空標(biāo)志產(chǎn)生影響嗎?

比如寫指針從0寫到10,期間讀時(shí)鐘域只同步捕捉到了3、5、8這三個寫指針而漏掉了其他指針。當(dāng)同步到8這個寫指針時(shí),真實(shí)的寫指針可能已經(jīng)寫到10 ,相當(dāng)于在讀時(shí)鐘域還沒來得及覺察的情況下,寫時(shí)鐘域可能偷偷寫了數(shù)據(jù)到FIFO去,這樣在判斷是空的時(shí)候會出現(xiàn)不是真正空的情況,漏掉的指針也沒有對FIFO的邏輯操作產(chǎn)生影響。

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

    關(guān)注

    31

    文章

    5274

    瀏覽量

    119663
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    386

    瀏覽量

    43466
  • 指針
    +關(guān)注

    關(guān)注

    1

    文章

    476

    瀏覽量

    70481
收藏 人收藏

    評論

    相關(guān)推薦

    求助 FPGA 異步FIFO IP核

    各位大神: 異步FIFO 滿信號為什么都是高?描述如下:always @(posedge DFIFO_clk or negedge rst_n )beginif(!rst_n)be
    發(fā)表于 07-01 01:51

    異步FIFO指針同步產(chǎn)生的問題

    如圖所示的異步FIFO,個人覺得在讀寫時(shí)鐘同步時(shí)會產(chǎn)生兩個時(shí)鐘周期的延時(shí),如果讀寫時(shí)鐘頻率相差不大,某一時(shí)刻讀寫指針相等,當(dāng)寫指針同步到讀模塊時(shí)會產(chǎn)生延時(shí),實(shí)際同步到讀模塊的寫指針是兩個時(shí)鐘周期之前的,這樣就不會產(chǎn)生
    發(fā)表于 08-29 18:30

    關(guān)于異步fifo里面讀寫指針同步器的問題,求教

    這是網(wǎng)上比較流行的一個異步fifo方案,但是fifo滿判斷不是應(yīng)該是立即的嗎,加上同步器之后
    發(fā)表于 07-24 16:25

    【鋯石A4 FPGA試用體驗(yàn)】fifo實(shí)驗(yàn)(2)-異步fifo

    本帖最后由 630183258 于 2016-11-5 17:31 編輯 一、異步fifo的原理圖管腳定義:data輸入數(shù)據(jù)q輸出數(shù)據(jù)wrreq寫使能信號,高電平有效wrfull寫數(shù)據(jù)滿標(biāo)志位
    發(fā)表于 11-05 16:57

    關(guān)于異步fifo的安全問題:

    xilinx均采用。8. 也就是說,如果雙口RAM真空之前報(bào),則延遲造成的rdreq,異步fifo仍然可以正確響應(yīng)9. 雙開RAM真滿之前
    發(fā)表于 03-05 10:40

    高速異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)

    本文主要研究了用FPGA 芯片內(nèi)部的EBRSRAM 來實(shí)現(xiàn)異步FIFO 設(shè)計(jì)方案,重點(diǎn)闡述了異步FIFO 的標(biāo)志信號——/
    發(fā)表于 01-13 17:11 ?40次下載

    如何解決異步FIFO跨時(shí)鐘域亞穩(wěn)態(tài)問題?

    跨時(shí)鐘域的問題:前一篇已經(jīng)提到要通過比較讀寫指針來判斷產(chǎn)生讀和寫滿信號,但是讀指針是屬于讀時(shí)鐘域的,寫指針是屬于寫時(shí)鐘域的,而異步FIFO
    的頭像 發(fā)表于 09-05 14:29 ?5963次閱讀

    異步FIFO用格雷碼的原因有哪些

    異步FIFO通過比較讀寫地址進(jìn)行滿判斷,但是讀寫地址屬于不同的時(shí)鐘域,所以在比較之前需要先將讀寫地址進(jìn)行同步處理,將寫地址同步到讀時(shí)鐘域再
    的頭像 發(fā)表于 08-04 14:05 ?4359次閱讀

    異步FIFO之Verilog代碼實(shí)現(xiàn)案例

    同步FIFO的意思是說FIFO的讀寫時(shí)鐘是同一個時(shí)鐘,不同于異步FIFO,異步FIFO的讀寫時(shí)鐘
    發(fā)表于 11-01 09:58 ?1527次閱讀

    異步fifo詳解

    異步fifo詳解 一. 什么是異步FIFO FIFO即First in First out的英文簡稱,是一種先進(jìn)先出的數(shù)據(jù)緩存器,與普通存儲
    的頭像 發(fā)表于 12-12 14:17 ?3974次閱讀

    FIFO設(shè)計(jì)—異步FIFO

    異步FIFO主要由五部分組成:寫控制端、讀控制端、FIFO Memory和兩個時(shí)鐘同步端
    發(fā)表于 05-26 16:17 ?1487次閱讀
    <b class='flag-5'>FIFO</b>設(shè)計(jì)—<b class='flag-5'>異步</b><b class='flag-5'>FIFO</b>

    FIFO相關(guān)信號及滿狀態(tài)的原理說明

    FIFO(First In First Out)是異步數(shù)據(jù)傳輸時(shí)經(jīng)常使用的存儲器。該存儲器的特點(diǎn)是數(shù)據(jù)先進(jìn)先出(后進(jìn)后出)。
    發(fā)表于 05-29 15:35 ?6940次閱讀
    <b class='flag-5'>FIFO</b>相關(guān)信號及<b class='flag-5'>空</b><b class='flag-5'>滿</b>狀態(tài)的原理說明

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

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

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

    請問異步FIFO的溢出操作時(shí)怎么樣判斷的? 異步FIFO是數(shù)據(jù)傳輸?shù)囊环N常用方式,在一些儲存器和計(jì)算機(jī)系統(tǒng)中,常常會用到
    的頭像 發(fā)表于 10-18 15:28 ?1462次閱讀

    FIFO漫談之異步FIFO滿信號的產(chǎn)生位置

    格雷碼的事聊完了,后面順理成章的就是讀寫通路模塊的設(shè)計(jì)。不過在讀寫控制通路之前還要明確下另一個問題,就是滿信號的產(chǎn)生位置的事情。
    的頭像 發(fā)表于 03-19 13:37 ?554次閱讀
    <b class='flag-5'>FIFO</b>漫談之<b class='flag-5'>異步</b><b class='flag-5'>FIFO</b><b class='flag-5'>空</b><b class='flag-5'>滿</b>信號的產(chǎn)生位置