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