我是 UVM RAL 的初学者。我正在尝试使用
UVM_BACKDOOR
通过 DUT 寄存器进行访问。我认为这不需要适配器和预测器。我这样想也许是错误的。
下面是我的代码片段:
class my_operations extends base_test;
`uvm_component_utils(my_operations)
`REG_BLOCK regmodel;
task main_phase(uvm_phase phase)
uvm_status_e status;
uvm_path_e path = UVM_BACKDOOR;
regmodel.MY_REG.MY_REG_SIGNAL.set(1'b1);
regmodel.MY_REG.update(status, UVM_BACKDOOR);
assert(status == UVM_IS_OK); // <--- Error: NULL pointer dereference
endtask // main_phase ends here
请告诉我我哪里错了?
`REG_BLOCK regmodel
也可以在基类(base_test)
中定义。如果 base_test
已分配给 regmodel
的值,则扩展它并重新定义将覆盖该值。
删除该行即可。