⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 geryandbin.txt

📁 在fpga中实现的格雷码与二进制的相互转换
💻 TXT
字号:
二进制码->格雷码(编码):从最右边一位起,依次将每一位与左边一位异或(XOR),作为对应格雷码该位的值,最左边一位不变(相当于左边是0);

  格雷码-〉二进制码(解码):从左边第二位起,将每位与左边一位解码后的值异或,作为该位解码后的值(最左边一位依然不变)

//***********************************************************************//

//***************************如下实例:*******************************//

 

==================================== 
1010 
要将它变为自然二进制: 
0 与第四位 1 进行异或结果为 1 
上面结果1与第三位0异或结果为 1 
上面结果1与第二位1异或结果为 0 
上面结果0与第一位0异或结果为 0 
因此最终结果为:1100,这就是二进制码即十进制12; 

verilog Code:(gray to binary)

法一:

always @ (graycode)

     begin

          for(i=0;i<=n-1;i=i+1)

          binarycode[i]=^(graycode>>i);//比较浪费空间

     end
法二:

always @ (graycode)

     begin

          binarycode[n-1]=graycode[n-1];

          for(i=1;i<=n-1;i=i+1)

          binarycode[i-1]=graycode[i-1] ^ binarycode[i];//比较节省空间

     end

==================================== 
1100 
要将它变为格蕾码: 
第一位0与其左位异或结果为0 
第二位0与其左位异或结果为1 
第三位1与其左位异或结果为0 
第四位1保留结果为1 
因此最终结果为:1010,也就是原始的格蕾码。

verilog Code:(bianry to gray)

binarycode=graycode^(graycode>>1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -