gray码转换二进制

gray码转换二进制

二进制格雷码转换成自然二进制码,其法则是保留格雷码的最高位作为自然二进制码的最高位,而次高位自然二进制码为高位自然二进制 码与次高位格雷码相异或,而自然二进制码的其余各位与次高位自然二进制码的求法相类似。
在这里插入图片描述

module gry2bin(Gry,Bin);
parameter length = 8;
input [length-1:0] Gry;
output [length-1:0] Bin;
reg [length-1:0] Bin;
integer i;
always @ (Gry)begin       
Bin[length-1]=Gry[length-1];       
for(i=length-2;i>=0;i=i-1)               
Bin[i]=Bin[i+1]^Gry[i];
end
endmodule
module util_gray_to_bin (

    d,
    q

);

parameter WIDTH = 7;

input   [WIDTH-1:0]     d;
output  [WIDTH-1:0]     q;

wire    [WIDTH-1:0]     d;
reg     [WIDTH-1:0]     q;


genvar                  i;
// gray code to binary conversion
generate for (i=0; i<(WIDTH-1); i=i+1)
    begin : gen_q
        always @(d)
        begin
            q[i] = ^d[(WIDTH-1):i];
        end
    end
endgenerate

always @* q[WIDTH-1] = d[WIDTH-1];

endmodule

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值