Search code examples
system-veriloguvmsystem-verilog-dpi

UVM DPI-C function import


Can somebody please educate me why we need DPI-C function import to do UVM specific functions like uvm_hdl_force or uvm_hdl_deposit even when force and deposit system verilog constructs exist? What extra flexibility does the C functions give with these regards?

Thanks in advance


Solution

    • There's no deposit functionality in SystemVerilog, only force. Although most tools give you deposit functionality, there is no standard way to deal with it. The DPI-C give you a tool independent method.
    • UVM REG gives you the ability to look-up registers by string name, and build paths from string hierarchies. Although there are ways of creating this functionality without resorting to the DPI/VPI, it's far easier to use the VPI.
    • If your DUT is VHDL, there is no standard for interoperability between standards with hierarchical references across language boundaries.