I tried a backdoor access to a register, the hdl path is set via set_hdl_root_path, the name of register is passed through configure function in regmodel, the status returned is always UVM_NOT_OK, although there is no errors returned by UVM neither warnings, can someone tell me in which cases a backdoor access returned not OK status?
Just I checked a real project using backdoor access and I did not find any issue.
I’m using the dedicated methods for backdor, i.e. peek and poke (with UVM 1.1d).
Are you using read and write or also peek and poke?
Thanks chr_sue for your trial, in fact I tried both functions read and peek, in your trial you used uvm-1.1, maybe the trick is here waiting for dave if the bugs around UVM_NOT_OK is confirmed in uvm-1.2.
I did a mistake when I checked the status returned by peek funtion, I did as follow:
if (!status)
‘Uvm_error(“backdoor access is KO”)
And the wrong here is, I wrongly assumed that if access is OK, status is 1, but the status is an enumerated type {UVM_OK, UVM_NOT_OK…
Check !status is equivalent to check status == UVM_OK, since the implicite value of UVM_OK is 0 (appeared first in the enumerated definition), then the error message.
Hi,
Even I’m facing the same issue.
for read and write methods it is returning as UVM_OK.
while doing peek access, method is returning UVM_NOT_OK as status.
Register is RO type.
For backdoor hdl path is properly defined.
Update:
In my case hld path for one of the bit field for wrong.
After running with +UVM_DEBUG I found below display with bit field hdl hierarchy specified in RAL model.
/uvm_reg.svh(2755) @ 10 ns: reporter [RegMem] backdoor_read from …
Cross verification with reg bit field path in design, I found my error.