26.6 UVM HDL Backdoor Access support routines
這些例程為寄存器使用的DPI/PLI后門訪問提供接口。
如果你不想使用DPI HDL API,那么使用vlog開關編譯SystemVerilog代碼。
vlog ... +define+UVM_HDL_NO_DPI ...
概要
UVM HDL后門訪問支持例程。
這些例程為寄存器使用的DPI/PLI后門訪問提供接口
變量
UVM_HDL_MAX_WIDTH 設置后門訪問的位向量的最大大小。
方法
uvm_hdl_check_path 檢查給定的HDL路徑是否存在。
uvm_hdl_deposit 將給定的HDL路徑設置為指定的值。
uvm_hdl_force 強制給定路徑上的值。
uvm_hdl_force_time 強制給定路徑上的值為指定數量的force_time。
uvm_hdl_release_and_read 釋放先前使用uvm_hdl_force設置的值。
uvm_hdl_release 釋放先前使用uvm_hdl_force設置的值。
uvm_hdl_read() 獲取給定路徑處的值。
UVM_HDL_MAX_WIDTH
parameter int UVM_HDL_MAX_WIDTH =
UVM_HDL_MAX_WIDTH`
設置后門訪問的位向量的最大大小。該參數將由DPI-C代碼使用:vpi_handle_by_name( “uvm_pkg::UVM_HDL_MAX_WIDTH”, 0);
方法
1.uvm_hdl_check_path
import "DPI-C" context function int uvm_hdl_check_path(
string path
)
檢查給定的HDL路徑是否存在。如果沒有找到則返回0,否則返回1。
2.uvm_hdl_deposit
import "DPI-C" context function int uvm_hdl_deposit(
string path,
uvm_hdl_data_t value
)
將給定的HDL路徑設置為指定的值。如果調用成功返回1,否則返回0。
3.uvm_hdl_force
import "DPI-C" context function int uvm_hdl_force(
string path,
uvm_hdl_data_t value
)
強制給定路徑上的值。如果調用成功返回1,否則返回0。
4.uvm_hdl_force_time
task uvm_hdl_force_time(
string path,
uvm_hdl_data_t value,
time force_time = 0
)
強制給定路徑上的值為指定數量的force_time。如果force_time為0,則調用uvm_hdl_deposit。如果調用成功返回1,否則返回0。
5.uvm_hdl_release_and_read
import "DPI-C" context function int uvm_hdl_release_and_read(
string path,
inout uvm_hdl_data_t value
)
釋放先前使用uvm_hdl_force設置的值。如果調用成功返回1,否則返回0。值在釋放后被設置為HDL值。對於' reg ',該值將仍然是強制值,直到它被過程地重新分配。對於' wire ',該值將立即更改為它的連續驅動程序的解析值(如果有的話)。如果沒有,它的值將保持強制值,直到下一次直接賦值。
6.uvm_hdl_release
import "DPI-C" context function int uvm_hdl_release(
string path
)
釋放先前使用uvm_hdl_force設置的值。如果調用成功返回1,否則返回0。
7.uvm_hdl_read()
import "DPI-C" context function int uvm_hdl_read(
string path,
output uvm_hdl_data_t value
)
獲取給定路徑處的值。如果調用成功返回1,否則返回0。