I am talking about simulation. The FSM goes into 'XX' state and it does not recover.
I actually thought about registering the input signal, but even there I cannot check it if it is at high Z. I still have problem even if I have something like this:
always @ (posedge clk)
begin
if (bus == 16'dZZ) bus_reg <=16'd0;
else bus_reg <=bus;
end
What do you mean by "forcing safe state machine encoding" ? If you mean to assign to each state a value and making sure that the control always selects a defined state, I already did that. The problem is that in the start state I always check the bus if it has my address and if the bus has ZZ, my FSM goes into XX state (which is undefined) and it does not recover from it even if the bus changes value and tries to address me.
I know that in actual implementation having pull ups.downs would probably solve the problem, but I am trying to simulate it.
Any further idea? Thanks for your help.