module Test( input i );
(* MARK_DEBUG = "TRUE" *) reg b;
always @(i)
begin
if(i)
b = 1'h0;
else
b = ~b;
end
endmodule
After synthesizing this code I get the following result during Post-Synthesis-Simulation process with ModelSim simulator :
But I have no problem with Behavioral-Simulation phase.
It seems that the Vivado adds "b" signal to the sensitivity list automatically, Isn't it ?
Think about this module in terms of the hardware it implies.
b
can't be implemented as a register or latch, because it's being assigned to from a combinational always
block. However, the resulting circuit contains a combinational loop which won't stabilize on any value when i
is 0: