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