In reply to firstname.lastname@example.org:
I had a look to the UVM Standard (2017)
virtual function string get_rights (
uvm_reg_map map = null
Returns the access rights of this memory.
This returns “RW”, “RO”, or “WO”. The access rights of a memory is always “RW”, unless it is a shared memory with access restriction in a particular address map.
If no address map is specified and the memory is mapped in only one address map, that address map is used.
If the memory is mapped in more than one address map, the default address map of the parent block is used.
If an address map is specified and the memory is not mapped in the specified address map, a warning message shall be issued and “RW” is returned.
I understand WO is not permitted because of " The access rights of a memory is always “RW”, unless ... ".
And 'unless' means the other option is "RO".