
異步FIFO中,空滿信號該如何產生呢?
在復位的時候,讀指針和寫指針相等,讀空信號有效(這里所說的指針其實就是讀地址、寫地址)當讀指針趕上寫指針的時候,寫指針等於讀指針意味着最后一個數據被讀完,此時讀空信號有效。寫滿信號:當寫指針比讀指針多一圈時,寫指針等於讀指針意味着寫滿了,此時寫滿信號有效。
問題a:我們會發現 讀空的條件是寫指針等於讀指針,寫滿的條件也是寫指針等於讀指針,到底如何區分呢?
解決辦法:將指針的位寬多一位,表示讀寫指針是否在同一輪,注意我們這里討論的是2進制遞增數。
舉個例子說明:假設要設計深度為 8 的異步FIFO,此時定義讀寫指針只需要 3 位(2^3=8)就夠用了,但是我們在設計時將指針的位寬設計成 4 位,最高位的作用就是區分是讀空還是寫滿,具體理論 1 如下當最高位相同,其余位相同認為是讀空;當最高位不同,其余位相同認為是寫滿。
這里還隱藏着一個問題,讀寫指針在不同時鍾域的比較問題,如何解決亞穩態的問題?下一節我們繼續介紹。
版權所有權歸卿萃科技 杭州FPGA事業部,轉載請注明出處
作者:杭州卿萃科技ALIFPGA
原文地址:杭州卿萃科技FPGA極客空間 微信公眾號

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