在傳遞讀寫時鐘域的指針使用格雷碼來傳遞,如何把二進制轉換為格雷碼,格雷碼是如何判斷讀空寫滿呢?
二進制碼轉換成二進制格雷碼,其法則是保留二進制碼的最高位作為格雷碼的最高位,而次高位格雷碼為二進制碼的高位與次高位相異或,而格雷碼其余各位與次高位的求法相類似。
這樣就可以實現二進制到格雷碼的轉換了,總結就是移位并且異或,verilog代碼實現就一句:assign wgraynext = (wbinnext>>1) ^ wbinnext。
因為格雷碼與二進制計數的有區別,我們可以得出以下的結論:
當高2bit的相反,后幾位的bit相同時,寫滿;
當寫指針等于讀指針時,讀空。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
二進制
+關注
關注
2文章
794瀏覽量
41602 -
Verilog
+關注
關注
28文章
1345瀏覽量
109996 -
格雷碼
+關注
關注
2文章
34瀏覽量
13178
原文標題:異步FIFO格雷碼與空滿
文章出處:【微信號:ALIFPGA,微信公眾號:FPGA極客空間】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論