Query wrt connect method

Simple driver and sequencer connection is below -


my_driver d_h;
my_sequencer s_h;

function connect_phase (uvm_phase phase);
 d_h.seq_item_port.connect(s_h.seq_item_export);
endfunction

If I reverse the connection, will it still work?
i.e.


s_h.seq_item_export.connect(d_h.seq_item_port);

In reply to naveensv:

If you are reversing the connection it will not work. On the transaction level each component plays a specific role, some of them can initiate actions and others not. In the case of the sequencer/driver connection only the driver can initaiate an action.
If you want to reverse the action you have to use different base class component for sequencer, i.e. uvm_push_sequencer. And you are using different ports and exports like this

m_sequencer.req_port.connect(m_driver.req_export);

In reply to naveensv:

Simple driver and sequencer connection is below -


my_driver d_h;
my_sequencer s_h;
function connect_phase (uvm_phase phase);
d_h.seq_item_port.connect(s_h.seq_item_export);
endfunction

If I reverse the connection, will it still work?
i.e.


s_h.seq_item_export.connect(d_h.seq_item_port);

TLM port always follws “port to implimentation port/export”.

Thanks for the clarification.