1. 程式人生 > >非同步FIFO格雷碼與空滿

非同步FIFO格雷碼與空滿

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

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

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

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

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

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

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

作者:杭州卿萃科技ALIFPGA

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

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