Hi all, i have a situation where i have an external interface set up for 32bit addressing and 8 bit data.
However my AHB bus is set up for 32bit address and 32bit data.
As a result when i do a frontdoor read or write from the reg model, my ahb adapters “see” 4 bytes of data. In order to work with the predictor, i put a serializer between the adapter and the predictor, so now on every AHB transaction, the predictor gets 4 separate register transactions.
This is all fine (more updates of the regmodel - more better) until i get into a situation where i have register.set() or field.set() on an adjacent register to one being read/written. As the register model do_predict overwrites the desired value of the register/field.
This seems like completely unwanted behaviour to me.
I’ve seen the response here - (only issue i could find):
https://verificationacademy.com/forums/uvm/ral-does-mirrored-and-desired-both-values-are-needed-prediction-register#reply-78298
The intended use case of set before update doesn’t work in this situation.
Essentially i need to stop the register model from overwriting the desired value on a do_predict and i’m not sure if its possible.
It seems that i can’t use callbacks as the post_predict callback has no knowledge of the previous desired value?
Thanks for any help!