1、二进制数据转换为格雷码
parameter ADDRSIZE = 4;
wire [ADDRSIZE:0] wbnext,wgnext; //wbnext is binary code,wgnext is gray code;
assign wgnext = (wbnext >> 1) ^ wbnext; //binary code to gray code;
2、格雷码转换为二进制数据
assign bin[N-1] = gray[N-1]; //binary code or gray code is N bits;
genvar i;
generate
for(i=0;i<N-1;i=i+1)
begin :bin2gray
assign bin[i] = gray[i] ^ bin[i+1];
end
endgenerate