Convert it to binary ..simple xoring, add +1 to it and again convert it back to grey.
1
Anonymous
16 Dec 2014
it can be implemented as a binary counter, but you need to shift and xor the binary count with itself.
if you are asked to do the logic design, you can design it as a state machine and figure out the logic diagram.
in verilog:
reg [n-1:0] bcount;
reg gcount;
always @(posedge clk or negedge reset)
begin
if(~reset)
bcount > 1) ^ bcount;