Hi Forum,
I am trying to understand the following quote from UVM 1.2 Class Reference Manual
// Within class uvm_reg_item ::
uvm_reg_map local_map
"The local map used to obtain addresses. Users may customize address-translation using
this map. Access to the sequencer and bus adapter can be obtained by getting this
map’s root map, then calling uvm_reg_map::get_sequencer and uvm_reg_map::get_adapter."
uvm_reg_map map ::
"The original map specified for the operation. The actual map used may differ when a
test or sequence written at the block level is reused at the system level."
(1) I am not clear on why two register maps would be required
When a user calls uvm_reg::write or uvm_reg::read, I see that UVM library creates an object of type ‘uvm_reg_item’ and assigns it’s property rw.map the actual value of 4th argument ‘map’.
UVM library then assigns property ‘local_map’ the return value of uvm_reg_map:: get_local_map