Guidelines for using analysis port in monitor

In reference to analysis port used in system verilog or UVM monitor, is there any specific guidelines on number of analysis port to be used?
While I understand from SV LRM perspective there is no constraint, but from efficiency point of view what is better when different subscribers uses either part or all information monitored/sampled by monitor :

  • to have multiple analysis port in monitor sending different transaction. Respective subscriber can connect to either one or multiple analysis ports to receive data.
  • Or to have single analysis port sending a transaction wrapper which can have handles to multiple/different transactions? All subscriber to use same analysis port, but can get consume relevant information via handles to different transactions.

In reply to bhupeshpaliwal:
I am not aware of any such constraint. But if you want to send the same transaction to multiple subscriber then a single uvm_analysis_port is enough.

Ref: http://www.sunburst-design.com/papers/CummingsSNUG2018AUS_UVMAnalysisCopy.pdf

From this paper:

4.1 uvm_analysis_port ‐ broadcast port
As already noted, the uvm_analysis_port is a broadcast port that broadcasts a transaction from
the port until it reaches zero or more uvm_analysis_imp ports where the transaction is either used
immediately (in 0‐time), or a copy of the transaction is made so that the copy can be manipulated
over time without modifying the original broadcast transaction. This is why the transaction copy()
command I so important (see Section 4.1.1 ).
A uvm_analysis_port can be connected to other uvm_analysis_ports, uvm_analysis_exports
and uvm_analysis_imps, but there is only one uvm_analysis_imp per analysis path.

In reply to bdreku:
Yeah, that’s typical case, analysis port are used for broadcast only. I am trying to infer whether to use or not to use multiple analysis port in same monitor

In reply to bhupeshpaliwal:
If you have different types of transaction then you can have analysis port per transaction, but for the same type of transaction there is no meaning of using multiple analysis ports.