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.