二进制码与格雷码互相转换

雷码的特点:相邻的两个码组之间仅有一位不同。
普通二进制码和格雷码可以互相转换,下面以4位二进制码作简要介绍:

  1. 四位二进制码转换成格雷码
    转换规则:从最右边一位起,依次与前一位“异或”,作为该位的输出,最高位不变。
    程序代码如下:
module Binary_Trans_Gray(
    input [3:0] binary,
    output reg[3:0] gray
    );
    parameter length = 4 ;
    integer i ;
    always @ (binary) 
        begin
            for(i = 0 ; i < length - 1 ; i = i + 1)
                begin
                    gray[i] = binary[i] ^ binary[i + 1];
                end
            gray[i] = binary[i] ;
        end
endmodule    
  1. 4位格雷码转换成二进制码
    转换规则:最高位不变,从最左边起将产生的每一位二进制码,与下一位相邻的格雷码“异或”,作为二进制码的下一位。

程序代码如下:

module Gray_Trans_Binary_pin(
    input [3:0] gray,
    output reg[3:0] binary
    );
    parameter length = 4 ;
    integer i ;
    always @ (gray)        //输入gray码发生变化时,输出binary也将发生变化
        begin
            binary[length -1] = gray[length - 1] ;
            for(i = length -2 ; i >= 0 ; i = i - 1)
                begin
                    binary[i] = binary[i + 1] ^ gray[i] ;
                end
        end
endmodule

你可能感兴趣的:(FPGA,Verilog,HDL,二进制码与格雷码互相)