I have set the drain time using the following in base test.but it is not effecting .could you please let me know what could be the reason.I have started the sequence using uvm_config_db default sequence option not through the sequence.start(sequencer) method.
In reply to srbeeram:
uvm_objection class has set_drain_time method.
uvm_objection phase_done = phase.get_objection() ;
phase_done.set_drain_time(<drain_time>) ;
// time out can be set .
uvm_root::get().set_timeout();
we are not using uvm objections as we are calling the sequence using uvm_config_db default sequence option not through the sequence.start(sequencer) method.
In reply to chr_sue:
Hi chr_sue,
I am getting the following error if I follow that
UVM/TEST/pcie_base_test.sv, 141
“uvm_top.”
Could not find member ‘set_drain_time’ in class ‘uvm_root’,
I guess you are using UVM-1.2.
In this version uvm_top disappeared. You have to take care to get uvm_top like this:
Your issue is not using objections. The drain time is used after all objections have been dropped. If you haven’t raised/dropped any objections for a phase, then the drain time does nothing.