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.