Quantcast
Channel: UVM Forums RSS Feed
Viewing all articles
Browse latest Browse all 756

Writing to a register when the status is UVM_NOT_OK

$
0
0

In UVM_REG, what is the intended behavior when a write to a register triggers a bus error? I would expect that the mirrored value is not updated as long as I signal the bus error inside the bus2reg method of my reg_adapter. Here is a slightly modified excerpt from the user guide.

virtual function void bus2reg(uvm_sequence_item bus_item, ref uvm_reg_bus_op rw);
  apb_rw apb;
  if (!$cast(apb,bus_item)) begin
    `uvm_fatal("NOT_APB_TYPE", "Provided bus_item is not of the correct type")
    return;
  end
  rw.kind = apb.kind ? UVM_READ : UVM_WRITE;
  rw.addr = apb.addr;
  rw.data = apb.data;
  rw.status = apb.error ? UVM_NOT_OK : UVM_IS_OK;
endfunction

I see that even in cases when the APB bus signals an error and I set the status in the rw as UVM_NOT_OK, the mirrored and the desired values of my registers get updated. Am I interpreting this UVM_NOT_OK thing wrong?


Viewing all articles
Browse latest Browse all 756

Trending Articles