Hi All, I have a DUT which has 4 fifo, and I verify this DUT using FPV
there are two inputs , and one output
input wr_vld;
input [1:0] id;
output [3:0] full;
When full[3:0]=4'b0001; it means fifo (id=0) is full, so we can not push data to that fifo(id=0), but we can push data to fifo(id=1,2,3)
There are assumptions to constraint two inputs. I don’t know which one is correct
Here are sudo code
Q1: Assumption A ,B,C are equivalent? Which one is correct?
Q2: In my tb, i also have a fifo model. And there is signal called full_model
what is the problem in this assumption?
assume(wr_vld & (id==i) |-> !full_model[i])
I am confused . Please explain to me in detail
Thanks a lot!
An overlapping implication X |-> Y as a constraint when A and B or both boolean expressions is the same as the expression !X || Y.
The first assume equation can be re-written
Using assume(wr_vld & (id==i) |-> !full_model[i]) .
Q1:full_model will be multi-driven?
Q2:As I know, the formal tool will assign the value in the right side of assertion. In my case, wr_vld & id will be driven by tool?
Thank you