Direct Programming Interface (DPI)
ConceptSystemVerilog's Direct Programming Interface (DPI) is used in the reusable RISC-V vector accelerator verification environment to bridge the SystemVerilog/UVM testbench with the Spike Instruction Set Simulator (ISS), which is implemented in C++. DPI enables native C/C++ functions to be imported into SystemVerilog, allowing the verification environment to invoke Spike routines such as setup, memory access, single-stepping, and interrupt injection from within the UVM-driven iss_wrapper abstraction.
WIKI
Direct Programming Interface (DPI)
Definition
The Direct Programming Interface (DPI) is a SystemVerilog feature that allows SystemVerilog code to directly invoke functions implemented in C or C++ (and vice versa). In the reusable RISC-V vector accelerator verification environment, DPI is used as the inter-language bridge between the SystemVerilog/UVM testbench and the Spike Instruction Set Simulator (ISS), which is implemented in C++.