在傳遞讀寫時鐘域的指針使用格雷碼來傳遞,如何把二進(jìn)制轉(zhuǎn)換為格雷碼,格雷碼是如何判斷讀空寫滿呢?
二進(jìn)制碼轉(zhuǎn)換成二進(jìn)制格雷碼,其法則是保留二進(jìn)制碼的最高位作為格雷碼的最高位,而次高位格雷碼為二進(jìn)制碼的高位與次高位相異或,而格雷碼其余各位與次高位的求法相類似。
這樣就可以實(shí)現(xiàn)二進(jìn)制到格雷碼的轉(zhuǎn)換了,總結(jié)就是移位并且異或,verilog代碼實(shí)現(xiàn)就一句:assign wgraynext = (wbinnext>>1) ^ wbinnext。
因?yàn)楦窭状a與二進(jìn)制計(jì)數(shù)的有區(qū)別,我們可以得出以下的結(jié)論:
當(dāng)高2bit的相反,后幾位的bit相同時,寫滿;
當(dāng)寫指針等于讀指針時,讀空。
-
二進(jìn)制
+關(guān)注
關(guān)注
2文章
807瀏覽量
42312 -
Verilog
+關(guān)注
關(guān)注
29文章
1367瀏覽量
112243 -
格雷碼
+關(guān)注
關(guān)注
2文章
34瀏覽量
13397
原文標(biāo)題:異步FIFO格雷碼與空滿
文章出處:【微信號:ALIFPGA,微信公眾號:FPGA極客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
什么是格雷碼

二進(jìn)制格雷碼與自然二進(jìn)制碼的互換
什么是BCD碼、8421碼、余三碼、格雷碼
格雷碼的規(guī)則和應(yīng)用問題?
格雷碼運(yùn)算研究
循環(huán)格雷碼VHDL源程序
格雷碼轉(zhuǎn)二進(jìn)制方法

二進(jìn)制轉(zhuǎn)格雷碼公式

評論