UVM OBJECTIONS

Hi ,

  1. can we raise/drop objections in non time consuming phases(build,connect,extract…).
  2. why do we need objections in UVM?
  3. is it recommended to raise/drop objections in sequences ?

Please help me out in understanding the above concepts .

Thanks in Advance

Regards,
Sudarshan

In reply to Mechanic:

The UVM Cookbook section on objections answers your questions.

In reply to Mechanic:
Thank you cgales.

I had two questions related to the above subject

  1. 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

Thanks in Advance.

Regards,
Mechanic

In reply to Mechanic:

  1. 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.

  2. 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.