異步FIFO中空滿信號如何產生?



異步FIFO中,空滿信號該如何產生呢?

在復位的時候,讀指針和寫指針相等,讀空信號有效(這里所說的指針其實就是讀地址、寫地址)當讀指針趕上寫指針的時候,寫指針等於讀指針意味着最后一個數據被讀完,此時讀空信號有效。寫滿信號:當寫指針比讀指針多一圈時,寫指針等於讀指針意味着寫滿了,此時寫滿信號有效。

問題a:我們會發現 讀空的條件是寫指針等於讀指針,寫滿的條件也是寫指針等於讀指針,到底如何區分呢?

解決辦法:將指針的位寬多一位,表示讀寫指針是否在同一輪,注意我們這里討論的是2進制遞增數。

舉個例子說明:假設要設計深度為 8 的異步FIFO,此時定義讀寫指針只需要 3 位(2^3=8)就夠用了,但是我們在設計時將指針的位寬設計成 4 位,最高位的作用就是區分是讀空還是寫滿,具體理論 1 如下當最高位相同,其余位相同認為是讀空;當最高位不同,其余位相同認為是寫滿。

這里還隱藏着一個問題,讀寫指針在不同時鍾域的比較問題,如何解決亞穩態的問題?下一節我們繼續介紹。


版權所有權歸卿萃科技 杭州FPGA事業部,轉載請注明出處

作者:杭州卿萃科技ALIFPGA

原文地址:杭州卿萃科技FPGA極客空間 微信公眾號

掃描二維碼關注杭州卿萃科技FPGA極客空間


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM