Using indirect_access(…) in vr_ad

I've been working a lot with vr_ad lately. It has a lot of nice features for modeling registers, but unfortunately not all of them are documented. I'm going to do a longer series of posts based on my recent experiences.

This is a companion discussion topic for the original entry at

Nice article! Don’t forget vr_ad has lots of examples of modelling different scenarios in the vr_ad/examples/ directory.
Good to see your simple and effective unit test approach too; I see far too many people trying to figure out complex register modelling in their full testbench where it’s (relatively) slow, over constrained and harder to debug.

Hi Stephen,

I know about the examples and I always refer to them, but some of them are not broad enough, IMO. Plus, it’s always nice to have some textual explanations to go with the code and I hope others will find it useful. Writing these posts is also a good way for me to better internalize the concepts (if you can’t explain it simply, you don’t understand it properly) and dig a bit deeper.

Great info on vr_ad! I was also using post_access() and did some stuff there. this method is cleaner!