Define Gray code states

List the states using Gray code and assign Gray code values to each state.

Input

typedef enum logic [3:0] {
  S   = 4'b    ,
  S   = 4'b    ,
  S   = 4'b    ,
  S   = 4'b    ,
  S   = 4'b    ,
  S   = 4'b    ,
  S   = 4'b    ,
  S   = 4'b    ,
  S   = 4'b    ,
  S   = 4'b    ,
  S   = 4'b    ,
  S   = 4'b    ,
  S   = 4'b    ,
  S   = 4'b    ,
  S   = 4'b    ,
  S   = 4'b    
} state_t;

Output

typedef enum logic [3:0] {
  S00 = 4'b0000,
  S01 = 4'b0001,
  S02 = 4'b0011,
  S03 = 4'b0010,
  S04 = 4'b0110,
  S05 = 4'b0111,
  S06 = 4'b0101,
  S07 = 4'b0100,
  S08 = 4'b1100,
  S09 = 4'b1101,
  S10 = 4'b1111,
  S11 = 4'b1110,
  S12 = 4'b1010,
  S13 = 4'b1011,
  S14 = 4'b1001,
  S15 = 4'b1000
} state_t;