Uvm_phase

Hi,
For any UVM phase, we pass the argument typically “phase” of type uvm_phase. eg., function void build_phase( uvm_phase phase ). What is the purpose of this argument. Is it mainly to raise and drop objections or does it have any other functionality?
Also, does the “phase” variable take on the value of build phase in the code snippet above.
Thanks
Uma

The phase argument is mainly used for objections, but is also used for coordination between different task based phases - something we do not recommend doing - use sequences instead.

The reason for the phase argument in the build_phase and all the other function based phases was just for symmetry in all the phase methods.

In reply to dave_59:

Hello Dave,
Thanks for your reply. I have another very basic question. When I call function void build_phase( uvm_phase phase ), say maybe in the test, we really donot pass any value to it. And maybe in the sequence I access the phase variable by saying “seq.starting_phase = phase”. What will be the value of phase because i have not passed any value as such?
Thanks
Uma