UVM bitbash access error because of predictor

Hi all,

I got problem with uvm bitbash seq with uvm-1.1d. I found, when bitbash sequence writes a value to DUT, the desired value is not updated immediately (because auto predict is disabled at default). The desired value is only updated by uvm predictor via monitor (takes long time to update this value). Therefore, at the next get() function, the value doesnt return correctly (see the following code of uvm_bitbash_seq, line 165).


159          rg.write(status, val, UVM_FRONTDOOR, map, this);
160          if (status != UVM_IS_OK) begin
161             `uvm_error("uvm_reg_bit_bash_seq", $sformatf("Status was %s when writing to register \"%s\" through map \"%s\".",
162                                         status.name(), rg.get_full_name(), map.get_full_name()));
163          end
164          
165          exp = rg.get() & ~dc_mask;
   

My question is, should I enable auto_predict to update desired value immediately after writing to DUT? Why is auto_predict disabled at default? Currently, I worked around by adding #5ns delay before get() function to wait desired value is updated by predictor via monitor, but I think it is not a good way.

Thanks all.