In reply to MICRO_91:
Please show real code, and actual error messages.
You stated your register is configured as “RW”, and it would seem you have enabled read checking ( by calling uvm_reg_map::set_check_on_read ). In addition to that, in order to get this error, your register field must be configured as non-volatile, and you haven’t installed a cycle accurate predictor.
Your solutions are to either, install a predictor for this register, change the field configuration to volatile, disable field comparison via uvm_reg_field::set_compare(UVM_NO_CHECK), or to disable read checking ( uvm_reg_map::set_check_on_read(0) ).
If you are running with uvm_reg_map::set_check_on_read(1), the assumption is you are installing predictors that keep the model with an up-to-date prediction of all non-volatile registers at all times. Is that what you expect?
I can imagine predicting the exact value of this register could very difficult, so you may just want to change it’s configuration to volatile when it’s created. This also puts the field in the UVM_NO_CHECK state. Alternatively, you could dynamically control the check state. Say by disabling checking when the LSFR is enabled, and re-enabling when the LSFR is disabled after the mirror is updated.
Assuming this is not the mechanism by which you are verifying the LSFR polynomial itself, I’d probably configure it to be volatile when it’s created.