Challenge - 5 Problems
Assertion Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediateWhat is the result of this assertion check?
Consider the following SystemVerilog assertion inside a testbench:
What happens if
assert property (@(posedge clk) disable iff (reset) (data_in == 8'hFF));
What happens if
data_in is 8'h00 when reset is low and a clock edge occurs?Verilog
assert property (@(posedge clk) disable iff (reset) (data_in == 8'hFF));
Attempts:
2 left
💡 Hint
Remember that 'disable iff (reset)' disables the assertion only when reset is high.
✗ Incorrect
The assertion checks that data_in equals 8'hFF at every positive clock edge unless reset is active (high). Since reset is low and data_in is 8'h00, the assertion fails.
❓ assertion
intermediateWhich assertion correctly checks a signal toggles every clock cycle?
You want to verify that signal
sig toggles its value on every positive edge of clk. Which assertion correctly expresses this?Attempts:
2 left
💡 Hint
Use $past to compare the current and previous value of the signal.
✗ Incorrect
The assertion checks that at every positive clock edge, the current value of sig is not equal to its previous value, meaning it toggles.
🔧 Debug
advancedWhy does this assertion never fail?
Given the assertion:
where
assert property (@(posedge clk) disable iff (reset) (req |-> ##1 ack));
where
req and ack are signals, why might this assertion never fail even if ack is not asserted after req?Attempts:
2 left
💡 Hint
Consider when the antecedent of the implication is true.
✗ Incorrect
The '|->' operator means the assertion only checks the consequent if the antecedent (req) is true. If req never becomes true, the assertion never fails.
🧠 Conceptual
advancedWhat is the main purpose of 'disable iff' in assertions?
In assertion-based verification, what does the 'disable iff' clause do?
Attempts:
2 left
💡 Hint
Think about when you want to ignore assertion failures.
✗ Incorrect
'disable iff (condition)' disables the assertion check whenever the condition is true, commonly used to ignore checks during reset.
❓ framework
expertWhich UVM component is responsible for checking assertions during simulation?
In the Universal Verification Methodology (UVM) framework, which component typically handles assertion checking and reporting?
Attempts:
2 left
💡 Hint
Consider where assertion failures are collected and reported.
✗ Incorrect
The uvm_report_server collects and manages all reports including assertion failures during simulation.
