二进制码与格雷码转换

二进制码在一些转换时变换位数多,数字电路会产生很大的尖峰电流

格雷码所有相邻整数在他们的数字表示中仅有余个数字不同,因此在任意相邻的数之间转换时,只有一位发生变化。大大地减少了由一个状态到下一个状态时逻辑的混淆。

                十进制                    二进制                       格雷码

                      0                          000                            000

                      1                          001                            001

                       2                          010                            011 

                       3                          011                            010

                       4                          100                            110

                       5                          101                            111

                       6                          110                            101 

                       7                           111                           100

module gray2bin
#(parameter SIZE = 8)
(   input   [SIZE-1:0] gray,
    output  [SIZE-1:0] bin);

    genvar i;
    generate
    for (i=0; i<SIZE; i=i+1)
        begin: bit
            assign bin[i] = ^gray[SIZE-1:i];
        end
    endgenerate
endmodule



module bin2gray
#(parameter SIZE = 8)
(    input  [SIZE-1:0] bin,
     output [SIZE-1:0] gray);
assign gray = bin ^ {1'b0, bin[SIZE-1,1]};
endmodule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值