Apologies for a late post… Today I would like to mention about some of the useful HDL signal manipulation methods in UVM.
Have you ever wondered about how the backdoor accesses work in RAL? We provide a string context path to our RAL based register class and we call some peek/poke API to hierarchically access the signal/register in DUT.
How can we do it in SystemVerilog? Providing a string based path and depositing/reading value based on hierarchical access. This seems to be very difficult using plain SystemVerilog. But this is a game played by something called as DPI/VPI.
UVM provides the backdoor access sub-routines for force/release or read/deposit some vale on any hierarchical path provided in the argument. These functions acts as an interface between SystemVerilog and C code to perform various operations. These functions can not only be used for backdoor accesses, but also for forcing some value in any RTL modules.