天天看点

异步FIFO中格雷码和二进制数据的转换

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

继续阅读