Why even use analysis_export?

In reply to chr_sue:

After going through source code ( and even trying various codes ) I know one thing for certain , the port-to-port , port-to-export connection if not followed doesn’t have any consequences for analysis_port .

The txn object will still be transferred from starting port to the imp .

Here’s a snippet from uvm_port_base class ::


 // if we're an analysis port, allow connection to anywhere 
    if (get_type_name() == "uvm_analysis_port")
       return 1;

Also when it comes to normal ( non analysis port classes ) if I use ::

sub_comp1.sub_comp2.port.connect ( sub_comp3.imp ) ;
// sub_comp2 is child of sub_comp1 . sub_comp1 and sub_comp3 are at same level of hierarchy .

I would still see the transaction being transferred from port to imp .

Here’s a link to a question I had posted regarding the same on accellera forum ::