In reply to cgales:
Could you give an example of how to use the set_drain_time
I tried something like this, but did not work
//////////////////
task run_phase( uvm_phase phase);
reset_sequence rst_seq ;
data_sequence data_seq;
phase.phase_done.set_drain_time( this, 50ns );
rst_seq = reset_sequence::type_id::create("rst_seq");
phase.raise_objection(this,"from test");
rst_seq.start(my_env_h.my_agent_h.my_sequencer_h);
data_seq = data_sequence::type_id::create("data_seq");
assert (data_seq.randomize() with {d_in == 1'b0;});
data_seq.start(my_env_h.my_agent_h.my_sequencer_h);
phase.drop_objection(this,"from test");
/////////////////////////
The test is exiting as soon as the drop_objection is called