Jump to content

Registers - Losing bus error status when auto_predict is on

Recommended Posts


When i get an error response from the bus, i update the rw.status to UVM_NOT_OK. The do_bus_write task in uvm_reg_map properly displays that the status is registered as NOT_OK. However, final status returned from read/write seems to be always IS_OK.

I checked the uvm_reg code and see that :

if (system_map.get_auto_predict()) begin

if (rw.status != UVM_NOT_OK) begin

sample(value, -1, 0, rw.map);

m_parent.XsampleX(map_info.offset, 0, rw.map);


do_predict(rw, UVM_PREDICT_WRITE);


And do_predict seems to be changing status to IS_OK always. I have enabled auto_predict using set_auto_predict(1).

function void uvm_reg::do_predict(uvm_reg_item rw,

uvm_predict_e kind = UVM_PREDICT_DIRECT,

uvm_reg_byte_en_t be = -1);

uvm_reg_data_t reg_value = rw.value[0];

m_fname = rw.fname;

m_lineno = rw.lineno;

rw.status = UVM_IS_OK;

Can someone suggest what is wrong here? Any suggestions ...



Link to comment
Share on other sites

  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...