I had one confusion over raising an objection in the sequence. is it recommended.
could you just point me some examples when can we raise an objection inside a sequence.
2.In the below example the run phase is terminated at 0 simulation time. because there is no objection raised.
Please clarify why the simulation without objection terminate at 0. what is the mechanism that would be a great help
class test1 extends uvm_test
function new test1
endfucntion
virtual task run_phase(uvm_phase phase);
#10ns;
`uvm_info("test","run phase task",UVM_MEDIUM);
endtask
endclass
As the UVM Cookbook explains, you should only raise and lower objections in the time consuming phase(s) methods of your test. You should never use objections in a sequence since the test will start() your sequences, and when all sequences are finished, the test can then drop it’s objection.
As the UVM Cookbook explains, the time consuming phase(s) of your test are forked by the UVM scheduler. The scheduler will then wait for the objection count to be zero. When the objection count is zero, all existing forked processes will be killed, and the scheduler will proceed to the next phase. If there are no objections raised, the phase will be immediately terminated, consuming no time.