UVM Phases

Why we pass UVM Phase object argument in all phase? what is actual need of that?

In reply to zalak patel:

The phase argument to a method is a handle to a common phase object that the method is currently executing. It is used by features like raising and dropping objections to the current phase. Since its possible to have multiple phases running in parallel, it has to be passed as an argument rather than a global get method.
Only the time consuming task-based phase methods use the argument; the function just have the argument for consistency.

Hi Dave,
could give some idea about " only the time consuming task (run phase)based phase methods use the argument.the function just have the argument for consistency."

In reply to zalak patel:

When you write

function void build_phase (umm_phase phase);

There’s no use for the phase argument. It’s just there because all umm_phase methods have the same argument prototype.

got it…
thanks dave.