uvm hdl task,获取后门的访问rtl的办法。
1. int uvm_hdl_check_path(string path) path指定的信号,是否存在 返回值:
2. int uvm_hdl_deposit(string path, uvm_hdl_data_t value) 将path指定的信号,设置为value值 返回值
3. int uvm_hdl_force(string path, uvm_hdl_data_t value) 将path指定的信号,force成value值 返回值
4.int uvm_hdl_release(string path) 将path指定的信号,release 返回值
5.int uvm_hdl_read(string path, output uvm_hdl_data_t value) 读取path指定的信号值,保存在value中 返回值
6.int uvm_hdl_release_and_read(string path, inout uvm_hdl_data_t value)
将path指定的信号,release掉,并且读取release之后的值,保存在value中
如果信号是reg,那么读取的值是之前force的值,如果信号是wire,那么读取的值是当前被驱动的值
另外,还有一个task,uvm_hdl_force_time,将指定的信号,force一段指定的时间,force完成后,读取信号的值,保存在value中。
关于上面的DPI方法,其实在uvm-hdl.svh UVM也自己实现了,只是里面全是fatal答应,有一个参数,当定义了UVM_HDL_NO_DPI,而用户由调用了HDL DPI相关的函数,这时会报错,因此要使用这些个方法,不可以定义参数UVM_HDL_NO_DPI。
原文链接:https://blog.csdn.net/liuwei848/article/details/102720195