Check_value vs assert_value

Hi, I am a new user to both UVVM and verification methodologies in general. I am currently studying documentation (which is a major reason for me to choose UVVM over OSVVM). I have a question:

What is the difference between check_value and (unclocked)assert_value? They seem to do largely the same: compare a value and raise an alert if it doesn’t match.

Hi,

The main difference is that check_value() performs a single evaluation when it is called, making it suitable for checks that naturally belong in the sequencer, monitors, BFMs and so on.

assert_value() is used as a concurrent procedure, and is a UVVM Assertion. Once it is instantiated and enabled, it monitors the property continuously on every rising edge for the clocked variant, or on any signal event for the unclocked variant.

I hope this makes the distinction clearer.
And welcome as a new UVVM user :slight_smile:

Br,

Marius

Hi, Thank you for your answer