二进制转格雷码:
module BIN2GARY(EN,DATA_IN,DATA_OUT);
input EN;
input [3:0] DATA_IN;
output [3:0] DATA_OUT;
assign DATA_OUT[0] =(DATA_IN[0] ^ DATA_IN[1]) && EN;
assign DATA_OUT[1] =(DATA_IN[1] ^ DATA_IN[2]) && EN;
assign DATA_OUT[2] =(DATA_IN[2] ^ DATA_IN[3]) && EN;
assign DATA_OUT[3] = DATA_IN[3] && EN;
endmodule
【原理说明:https://www.cnblogs.com/danh/archive/2010/12/24/1915810.html】