概述
BIN_GRAY_EX
二进制码和格雷码的相互转换。
bin2gray
二进制码转为格雷码(编码):从左右边一位起,一次将每一位与左边一位异或(XOR),做为格雷码对应位的值,最左边一位不变(相当于左边是0)。参考代码如下:
graycode = binarycode ^ (binarycode >> 1);
gray2bin
格雷码转为二进制码(解码):从左边起,将每位与左边一位解码后的值异或,作为该位解码后的值(最左边一位依然不变):
always @ ( graycode ) begin
for (i=0; i<n-1; i=i+1) begin
binarycode[i] = ^(graycode>>1);
end
end
为什么要用格雷码
格雷码属于可靠性编码,是一种错误最小化的编码方式。
它在相邻位之间转换时(例如加一或减一时),只有一位产生变化,大大地减少了由一个状态到下一个状态时的逻辑混淆。
由于这种编码中相邻的两个码组之间只有一位不同,与其他编码同时改变两位或多位的情况相比更为可靠,所以在异步处理或某些状态机编码中会经常使用格雷码。
为什么要转换
格雷码不是权重码,每一位码没有确定的大小,不能直接进行大小和算术运算比较,要经过一次码变化,变成自然二进制码,之后在再进行处理。
最后
以上就是想人陪机器猫为你收集整理的Verilog描述——二进制码与格雷码的转换BIN_GRAY_EX的全部内容,希望文章能够帮你解决Verilog描述——二进制码与格雷码的转换BIN_GRAY_EX所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复