The uvm_sequencer and uvm_driver already have a port used for passing transactions from the sequencer to the driver called ‘seq_item_export’. You should be using this port for all communications between the driver and sequencer since it is used for arbitration and other sequence control. Is there a reason why this won’t work for you?