在傳遞讀寫時鐘域的指針使用格雷碼來傳遞,如何把二進制轉(zhuǎn)換為格雷碼,格雷碼是如何判斷讀空寫滿呢?
二進制碼轉(zhuǎn)換成二進制格雷碼,其法則是保留二進制碼的最高位作為格雷碼的最高位,而次高位格雷碼為二進制碼的高位與次高位相異或,而格雷碼其余各位與次高位的求法相類似。
這樣就可以實現(xiàn)二進制到格雷碼的轉(zhuǎn)換了,總結(jié)就是移位并且異或,verilog代碼實現(xiàn)就一句:assign wgraynext = (wbinnext>>1) ^ wbinnext。

因為格雷碼與二進制計數(shù)的有區(qū)別,我們可以得出以下的結(jié)論:
當(dāng)高2bit的相反,后幾位的bit相同時,寫滿;
當(dāng)寫指針等于讀指針時,讀空。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
二進制
+關(guān)注
關(guān)注
2文章
809瀏覽量
43217 -
Verilog
+關(guān)注
關(guān)注
31文章
1374瀏覽量
114734 -
格雷碼
+關(guān)注
關(guān)注
2文章
34瀏覽量
13560
原文標題:異步FIFO格雷碼與空滿
文章出處:【微信號:ALIFPGA,微信公眾號:FPGA極客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
什么是格雷碼
格雷碼(Gray code),又叫循環(huán)二進制碼或反射二進制碼 在數(shù)字系統(tǒng)中只能識別0和1,各種數(shù)據(jù)要轉(zhuǎn)換
發(fā)表于 11-11 09:34
?8367次閱讀
二進制格雷碼與自然二進制碼的互換
。而絕對式編碼器是直接輸出數(shù)字量的傳感器,它是利用自然二進制或循環(huán)二進制(格雷碼)方式進行光電轉(zhuǎn)換
發(fā)表于 03-08 14:16
什么是BCD碼、8421碼、余三碼、格雷碼
?。∮嗳?b class='flag-5'>碼是在8421BCD碼的基礎(chǔ)上,把每個數(shù)的代碼加上0011(對應(yīng)十進制數(shù)3)后得到的。格雷
發(fā)表于 11-03 17:36
格雷碼的規(guī)則和應(yīng)用問題?
今天看到一個格雷碼計數(shù)的程序,搜了下定義,覺得還是云里霧里,定義寫的是若任意兩個相鄰的代碼只有一位二進制數(shù)不同,則這種編碼為
發(fā)表于 08-20 14:41
格雷碼運算研究
格雷碼運算研究
在數(shù)字系統(tǒng)中只能識別0和1,各種數(shù)據(jù)要轉(zhuǎn)換為二進制代碼才能進行處理,格
發(fā)表于 03-18 14:07
?1681次閱讀
循環(huán)格雷碼VHDL源程序
我們知道格雷碼計數(shù)的特點就是相鄰的碼字只有一個比特不同,那么我們在設(shè)計格雷碼計數(shù)時找到這個比特取
發(fā)表于 11-11 09:32
?2391次閱讀
二進制轉(zhuǎn)格雷碼公式
在一組數(shù)的編碼中,若任意兩個相鄰的代碼只有一位二進制數(shù)不同,則稱這種編碼為格雷碼(Gray Code),另外由于最大數(shù)與最小數(shù)之間也僅一位數(shù)不同,即“首尾相連”,因此又稱循環(huán)
FPGA學(xué)習(xí)系列:33. 二進制轉(zhuǎn)格雷碼轉(zhuǎn)二進制的設(shè)計
設(shè)計背景:典型的二進制格雷碼(Binary Gray Code)簡稱格雷
如何把二進制轉(zhuǎn)換為格雷碼?格雷碼是如何判斷讀空寫滿呢?
評論