I modified the order of the assignments… .as op was not getting any value until after the #10 had executed 10 time units.
i.e.
initial
begin
op=6'b000100;
funct=6'b100010
reset=1;#10;
reset=0;#10;
zero=1;#10;
end
This simulates and I see state & next_state change every clock cycle