最左边一位依然不变依次异或,直到最低位。依次异或转换后的值就是格雷码转换 后的二进制值。
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。
典型的二进制格雷码(Binary Gray Code)简称格雷码,因1953年公开的弗兰克·格雷(Frank Gray,18870913-19690523)专利“Pulse Code Communication”而得名,当初是为了通信,现在则常用于模拟-数字转换和位置-数字转换中。
法国电讯工程师波特(Jean-Maurice-Émile Baudot,18450911-19030328)在1880年曾用过的波特码相当于它的一种变形。1941年George Stibitz设计的一种8元二进制机械计数器正好符合格雷码计数器的计数规律。
二进制(binary),发现者莱布尼茨,是在数学和数字电路中以2为基数的记数系统,是以2为基数代表系统的二进位制。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示。
数字电子电路中,逻辑门的实现直接应用了二进制,现代的计算机和依赖计算机的设备里都使用二进制。每个数字称为一个比特(Bit,Binary digit的缩写)。
把十进制小数乘以2,取其积的整数部分作对应二进制小数的最高位系数k -1 再取积的纯小数部分乘以2,新得积的整数部分又作下一位的系数k -2 ,再取其积的纯小数部分继续乘2,…,直到乘积小数部分为0时停止,这时乘积的整数部分是二进制数最低位系数,每次乘积得到的整数序列就是所求的二进制小数。这种方法每次乘以基数取其整数作系数。所以叫乘基取整法。需要指出的是并不是所有十进制小数都能转换成有限位的二进制小数并出现乘积的小数部分0的情况,有时整个换算过程无限进行下去。此时可以根据要求并考虑计算机字长,取定长度的位数后四舍五入这时得到的二进制数是原十进制数的近似值。module bin_to_gray(bin,gray)
parameterSIZE = 4
input[SIZE-1:0] bin
output[SIZE-1:0] gray
assign gray= {1’b0,bin[SIZE -1:1]} ^ bin
endmodule
module gray_to_bin(bin,gray)
parameterSIZE = 4
input[SIZE-1:0] gray
output[SIZE-1:0] bin
reg[SIZE-1:0] bin
integer i
always@(gray)
for(i=0i<=SIZE-1i=i+1)
bin[i]=^(gray>>i)
//bin[i]=^{{i{1’b0}},gray[SIZE -1:i]}
endmodule
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)