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。