Skip to content
STIMSMITH

VIP Level Parallelism

Technique WIKI v1 · 5/26/2026

VIP Level Parallelism is a multicore testbench architecture described for eUVM in which each UVM agent or Verification IP is mapped to a separate CPU thread so compute-intensive sequence randomization can run in parallel. Its effectiveness depends on the amount of parallel work available and is limited by sequential scheduler behavior and synchronization-barrier overhead.

Overview

VIP Level Parallelism is a multicore testbench technique described as part of eUVM. It targets testbenches with multiple UVM agents or Verification IPs (VIPs), such as subsystem- or system-level verification environments. The technique distributes sequence randomization across multiple CPU threads by mapping each UVM agent/VIP onto a separate CPU thread.

Architecture

The underlying multicore simulator architecture uses multiple task executors. Each task executor gets its own CPU thread, described in the source as a POSIX thread, and executes its assigned share of testbench tasks. Synchronization barriers are required so the task executors running on multiple threads remain synchronized with the scheduler.

In the VIP-level architecture, the testbench contains multiple VIPs or UVM agents. eUVM maps each UVM agent onto a separate CPU thread so that the randomization work associated with sequences can be distributed across threads. The source identifies sequence randomization as often the most compute-intensive testbench process because it involves solving complex constraints.

Performance model and constraints

The technique is framed in terms of Amdahl’s Law: overall speedup is limited by the fraction of execution time that can benefit from optimization. The cited source notes that, at a given simulation time, a testbench simulator typically handles only a small number of active events and processes, so parallelizing the scheduler itself offers limited benefit. The scheduler remains a sequential component, and synchronization barriers add overhead in multicore testbenches.

VIP Level Parallelism can provide performance gains when the parallelized tasks are comparatively compute intensive. However, its gains may be limited when task load is not balanced across executors, especially if different kinds of VIPs are mapped to different executors. The source also states that this simple multicore architecture applies only to testbenches with multiple VIPs, which limits it to subsystem- or system-level verification scenarios.

Relationship to other parallelization approaches

The same source contrasts VIP Level Parallelism with sequence-level parallelization using asynchronous worker threads. Sequence-level parallelization is introduced to exploit multicore concurrency in simpler module-level testbenches that may contain only a limited number of UVM components, whereas VIP Level Parallelism depends on the presence of multiple VIPs.

CITATIONS

9 sources
9 citations
[1] VIP Level Parallelism is described as a multicore testbench architecture in eUVM. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[2] A parallel simulator uses task executors, each with its own CPU thread, and requires synchronization barriers to keep executors synchronized with the scheduler. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[3] A subsystem-level testbench often has multiple UVM agents or VIPs, and eUVM maps each UVM agent onto a separate CPU thread to distribute sequence randomization. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[4] Sequence randomization is often the most compute-intensive testbench process because it involves solving complex constraints. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[5] The performance of multicore testbenches is limited by Amdahl’s Law, sequential scheduler behavior, and synchronization-barrier overhead. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[6] Multithreaded testbenches may provide good performance gains when tasks are comparatively compute intensive. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[7] VIP-level multicore architecture applies only to testbenches with multiple VIPs and therefore limits testbench parallelism to subsystem-level verification. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[8] Performance gain may be reduced when task load is not balanced across executors, such as when different types of VIPs are mapped to different executors. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings
[9] Sequence-level parallelization using asynchronous worker threads is presented as an approach for exploiting multicore concurrency in simpler module-level testbenches with limited UVM components. [PDF] Crafting a Million Instructions/Sec RISCV-DV - DVCon Proceedings