Skip to content
STIMSMITH

DPI calls

Concept

DPI calls are the Verilog-to-software interface used in the cited RISC-V verification flow to connect RTL simulation with Dromajo/OpenCosim and Logic Fuzzer components. They wrap Dromajo API functions for initialization, per-commit step-and-compare, interrupt synchronization, and fuzzer table access.

First seen 5/27/2026
Last seen 5/27/2026
Evidence 5 chunks
Wiki v1

WIKI

Overview

In the referenced RISC-V verification flow, DPI calls are the mechanism used from Verilog/RTL simulation to interact with software-side verification components. Dromajo is compiled as a shared library, linked into the simulator, and accessed through DPI wrapper functions from Verilog. The paper describes these DPI functions as mostly thin wrappers around Dromajo API functions. [C1]

DPI calls are also used to expose Logic Fuzzer functionality to the RTL. The Logic Fuzzer was embedded into the Dromajo infrastructure, and the API set was extended so RTL could access fuzzers through DPI calls. The fuzzer configuration is supplied through Dromajo's JSON configuration file. [C2]

READ FULL ARTICLE →

NEIGHBORHOOD

No graph connections found for this entity yet. It may appear in future ingestion runs.

explore full graph →

RELATIONSHIPS

2 connections
Logic Fuzzer ← uses 95% 2e
Logic Fuzzer is accessed from RTL through DPI calls via extended Dromajo APIs.
Dromajo ← uses 100% 2e
Dromajo is integrated into RTL testbenches via DPI calls.

CITATIONS

6 sources
6 citations — click to expand
[1] Dromajo is compiled into a shared library, linked to a simulator, and interacted with through DPI calls from Verilog; the DPI functions mainly wrap Dromajo API functions, including cosim_init, step, and raise_interrupt. [PDF] Effective Processor Verification with Logic Fuzzer Enhanced Co ...
[2] Logic Fuzzer was embedded into the Dromajo infrastructure, and APIs were extended so RTL could access fuzzers through DPI calls configured by Dromajo's JSON configuration file. [PDF] Effective Processor Verification with Logic Fuzzer Enhanced Co ...
[3] The step DPI wrapper communicates program counter, instruction, and store data when a valid instruction commits; Dromajo commits one instruction, compares data, and returns non-zero on mismatch. The raise_interrupt wrapper communicates interrupt cause and sets the trap vector in Dromajo. [PDF] Effective Processor Verification with Logic Fuzzer Enhanced Co ...
[4] For fuzzer table mutators, RTL accesses the fuzzer table through DPI instead of the RTL memory model, and the tables are fuzzed randomly or with specific patterns during simulation. [PDF] Effective Processor Verification with Logic Fuzzer Enhanced Co ...
[5] Instruction-cache tag and data arrays can be replaced with table mutators, with instruction-cache logic reading and writing the tables through DPI in the same manner as the RTL-fuzzer interaction flow. [PDF] Effective Processor Verification with Logic Fuzzer Enhanced Co ...
[6] The Dromajo verification flow includes checkpoint generation and co-simulation; during co-simulation, Dromajo is encapsulated with the RTL and the testbench includes a DPI calls implementation. [PDF] Effective Processor Verification with Logic Fuzzer Enhanced Co ...