Phase.raise_objection and phase.drop_objection

Hi,

In the typical UVM code we raise objections in the run_phase of the uvm_test then the test will finish after the body() of the sequence is executed, but if we do not raise any objection then the test will be finishes without waiting for the sequence body() to execute.

Can any one explain the which of the process come to the picture when we raise and drop objections.

Thanks & Regards,
Shriramvaraprasad B.

Refer this hope you will get your ans.

In reply to ahota:

Hi ahota,

I am not able to get from the corresponding tutorial. Could you please guide me such that I can point to corresponding article.

Thanks & Regards,
Shriramvaraprasad B.

Generally when we do this it is meant for start the sequencer and for handshaking method between driver and sequence.Got my point ?

    phase.raise_objection(this);
     seq.start(sa_seqr);
    phase.drop_objection(this);  

where seq is an instantiation of sequence.

In reply to ahota:
Hi ahota,

We can start a seq without using the raise and drop objection right.

//phase.raise_objection(this);
seq.start(sa_seqr);
//phase.drop_objection(this);
where seq is an instantiation of sequence

but the test will finishes without waiting for the sequence body to execute.

My question is why it will finishes without waiting for the sequence to complete, when we don’t raise a objections. At the same time what are the things will hold out test to wait till our sequence body to finish when we raise and drop objections.

Hope my question is clear…

Thanks & Regards,
Shriramvaraprasad B.