User guide

21-4
OpenVera Native Testbench
Concurrency, or spawning off of concurrent child threads from a
parent thread, using fork-join with the return to the parent
conditional on the completion of any, all, or none of the
concurrent threads
Concurrency control constructs:
- wait_child to wait on the completion of all child threads
- wait_var to block the execution of a thread until the specified
variable changes value
- suspend_thread to suspend a thread until other threads
complete or block
- Mailboxes to pass data between concurrent threads
- Semaphores to prevent multiple threads from accessing any
resource at the same time
- Triggers to enable threads to trigger events on which other
concurrent threads are waiting
- Syncs to enable waiting threads to synchronize on triggers
from triggering threads
Other Features
Re-entrant tasks and functions with arguments passed by
reference or by value; can also have arguments with default
values
Calls to HDL (design) tasks in OpenVera (testbench) code and to
OpenVera (testbench) tasks in HDL (design) code
Randomization with stability for generating random stimulus