One register map for multiple agents?

In reply to soloist_huaxin:

I think it’s not possible as you can have only one set of sequencer and adapter associated with a register map.

// CLASS: uvm_reg_map
// has below method to set sequencer and adapter associated with the map and 
// it must be called before starting any sequences based on uvm_reg_sequence.
virtual function void set_sequencer (
  uvm_sequencer_base sequencer,  
  uvm_reg_adapter adapter = null
)

Whereas, advantage of two identical register maps for both the interface is,

  • When you make one side of agent passive, you can enable only register value
    prediction through bus monitor on that interface.
  • Scenarios such as ‘Writing to same/different register from both interface at same time’ can be created.
  • As both interface might be having different protocols, its better to have separate register maps.