Single uvm_analysis_port with multiple sequence items


Hi All, 

Can a single analysis port connect to multiple seq_items?

I have a single uvm analysis port, need to connect this with multiple sequence items. Consider, I have following sequence items in my uvm_tb

usb_seq_item
pcie_seq_item
ethernet_seq_item

uvm_analysis_port #(usb_seq_item) send_port;
uvm_analysis_port #(pcie_seq_item) send_port;
uvm_analysis_port #(ethernet_seq_item) send_port;

OR

`ifdef PORT_1
uvm_analysis_port #(usb_seq_item) send_port;

`elseif PORT_2
uvm_analysis_port #(pcie_seq_item) send_port;

`else
uvm_analysis_port #(ethernet_seq_item) send_port;

`endif

Either through `ifdef or by any other way, can single analysis port be parametrized with multiple sequence items?

If this is allowed, would like to know any use case of example. 

Thank you,

My assumption is that you want to broadcast txns of type usb_seq_item / pcie_seq_item / ethernet/seq_item via a single analysis port ‘send_port’

I suggest that you parameterize the Analysis port ( and related export / import ) using common base type i.e uvm_sequence_item

uvm_analysis_port #(uvm_sequence_item) send_port;

This allows you to send txns of all 3 types using
send_port.write( usb_or_pcie_or_ethernet_txn )