I’m trying to write a constraint on a 9 bit signal to be one hot and stable for the entire simulation using FPV:
Assume_Signal1 : assume property (@(posedge CLK) disable iff (Reset) ##1 $stable($onehot(Signal1)));
Giving this above constraint, I’m seeing Signal1 changing every clock cycle which isn’t expected. Could someone clarify the gap in the logic?
In reply to Arslan Naval:
Did you mean to write the boolean expression $stable(Signal1) && $onehot(Signal1)?
Intent is what you mentioned but giving " $stable(Signal1) && $onehot(Signal1)" would cause an issue right? Just coming after reset Signal1 would hold ‘X’ or any random value because of $stable(Signal1).
In reply to Arslan Naval:
Because of the ##1, it’s the second clock cycle after Reset that $stable gets evaluated. That implies that Signal is one-hot in the first clock cycle after reset and never changes.