According to the documentation, the mirrored value of a register is updated by the predictor at the end of a transaction. But what about before any register accesses? Here is the full scenario:
I have a register regA with reset value being non-zero (e.g. 0x1). The configure method reflects that correctly.
When I do get_mirrored_value() on regA before any actual reads/writes to it, for example right after reset, I get a data mismatch between the return of the function and the RTL actual data read back.
I believe the issue is initially the reset value of the registers/fields are not applied to the mirrored/desired values unless I explicitly call regA.reset(). Is that the expected behavior?
Is the expected use model for the user to call reset() after lock_model() or somewhere close? Maybe call reset() at the block level?
Thanks
-Bahaa