User defined phases

Hi kbkdec15,

Thanks for your reply. I have gone through class references and develop my custom phase. It is compiling and executing in the order that i want but the problem is when the “exec_func” function which is defined in my “uvm_PRESET_phase” class, calls by the “uvm_topdown_phase” class, it keeps on calling for 52 time on the same instance of time (i think with delta delay difference) and then switch to next phase defined in the domain.

Code is as follows-

class PRESET_comp extends uvm_component;
function new(string name, uvm_component parent = null);
super.new(name, parent);
endfunction

function void PRESET_phase(uvm_phase phase);
  $display("MY COMPONENT");
endfunction

endclass :PRESET_comp

class uvm_PRESET_phase extends uvm_topdown_phase;
fifo_comp my_comp;

virtual function void exec_func(uvm_component comp, uvm_phase phase);
  comp.phase_started(phase);
endfunction :exec_func 

local static uvm_PRESET_phase temp; 
static const string type_name = "uvm_PRESET_phase";

static function uvm_PRESET_phase get();
  if(temp == null)
    temp = new();
  return temp;
endfunction :get

protected function new(string name = "PRESET");
  super.new(name);
  uvm_report_info(get_full_name(), "Start of Build NEW", UVM_LOW);
endfunction :new

endclass :uvm_PRESET_phase

so can you tell me why is this happening?

Thanks,
Deepak