In reply to chr_sue:
In reply to verif_learner:
If you are saying you want to send out 2 different types of transactions, then you do not have 2 monitors of the same type.
I do not know how your UVM database is looking like, because a monitor belongs always to an agent, like the driver and the sequencer. The monitor in your agent1 has a specific transaction and the monitor in your agent2 has another transaction.
I assumes my question is very simple regarding monitor and driver but apparently it is not.
So, let me back up and explain my problem statement once again.
I have an agent that has driver and monitor class.
I have 2 interfaces in DUT. These interfaces are not two types but same type and 2 instances.
Let us say for example, axi-4
In my environment, i create 2 instances of the agent.
For the first instance of the driver, I pass sequence item type parameter basic_seq.
For the second instance of the driver, I pass sequence item type parameter advance_seq.
Both basic and advance sequence are derived from uvm_sequence_item. Further, advance_seq is derived from basic sequence.
Now, I want to do the same thing for the 2 instances of monitor in the 2 instance of agents.
I want to have one transaction type for the first instance of monitor and something different for the second instance of monitor. I cant do this as monitor class is not typed.
I can only do this using factory, which is ok.
But the fundamental question is, why this difference between driver and monitor?
It is as simple as that.