Complete the code to declare a simple assertion that checks if signal 'valid' is high.
assert property (@(posedge clk) [1]);The assertion checks if 'valid' is equal to 1 at the positive edge of the clock.
Complete the code to assert that 'ready' signal stays high for one clock cycle after 'start' is high.
assert property (@(posedge clk) start |-> [1]);The implication '|->' means when 'start' is high, 'ready' should be high in the next cycle.
Fix the error in the assertion that checks 'data' equals 8'hFF when 'enable' is high.
assert property (@(posedge clk) enable |-> (data [1] 8'hFF));
Use '==' for comparison in assertions, '=' is an assignment and causes error.
Fill both blanks to create an assertion that checks 'flag' remains low for 3 cycles after 'trigger' is high.
assert property (@(posedge clk) trigger |-> (flag [1] 0) [*[2]]);
The assertion checks 'flag == 0' for 3 cycles after 'trigger'.
Fill all three blanks to write an assertion that checks if 'start' is high, then 'done' becomes high within 4 cycles and 'error' stays low.
assert property (@(posedge clk) start |-> ([1] ##[1:[2]] done && [3] == 0));
The assertion means when 'start' is high, within 1 to 4 cycles 'done' must be high and 'error' must be low.
