In reply to chr_sue:
Thank you chr_sue!
Ok, i mean, driver shouldn’t retrieve seq_item and drive the signals. I should have phrased my sentence well.
reset(its active low) has been passed to virtual interface.
wait(counter_vif.reset ==1) before get_next_item doesn’t work since reset =1 in the beginning.
Can i do as below(it did work though):
//---------DRIVER---------
virtual task run_phase(uvm_phase phase);
super.run_phase (phase);
initialize(); //initialise the driver signals
(@(posedge counter_vif.reset)
forever begin
seq_item_port.get_next_item(req);
drive();
seq_item_port.item_done();
end //forever
endtask : run_phase