I am creating the packet out of one interface and sending it over analysis port write method. Example code is shown below.
class collector extends ovm_monitor;
ovm_analysis_port #( trans_item ) trk_port;
extern function new (string name = "collector", ovm_component parent = null);
extern function void build();
extern task run();
extern task collect_trans_1();
extern task collect_trans_2();
//Only relevant code is shown below.
endtask : run
trans_item_1.data = interface1.data;
trans_item_1.address = interface1.address;
trans_item_2.data = interface2.data;
trans_item_2.address = interface2.address;
Even though both the interfaces are different, I am creating the packet of same type (trans_item) out of it and sending it over analysis_port. This is working fine so far.
Now my question is, If I receive the transaction simultaneously on the bother the interfaces (interface1 and interface2), will
my analysis port (trk_port) be able to handle it?
Could someone kindly explain.
Thanks in advance