異步FIFO格雷碼與空滿



在傳遞讀寫時鍾域的指針使用格雷碼來傳遞,如何把二進制轉換為格雷碼,格雷碼是如何判斷讀空寫滿呢?

二進制碼轉換成二進制格雷碼,其法則是保留二進制碼的最高位作為格雷碼的最高位,而次高位格雷碼為二進制碼的高位與次高位相異或,而格雷碼其余各位與次高位的求法相類似。

這樣就可以實現二進制到格雷碼的轉換了,總結就是移位並且異或,verilog代碼實現就一句:assign wgraynext = (wbinnext>>1) ^ wbinnext。

因為格雷碼與二進制計數的有區別,我們可以得出以下的結論:

當高2bit的相反,后幾位的bit相同時,寫滿;

當寫指針等於讀指針時,讀空。


 

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

作者:杭州卿萃科技ALIFPGA

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

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


 


 


免責聲明!

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



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