externfunctionuvm_phaseget_jump_target();intunsignedmax_ready_to_end_iter=20;//--------------------------// Internal - Implementation//--------------------------// Implementation - Construction//------------------------------protecteduvm_phase_typem_phase_type;protecteduvm_phasem_parent;// our 'schedule' node [or points 'up' one level]uvm_phasem_imp;// phase imp to call when we execute this node// Implementation - State//-----------------------localuvm_phase_statem_state;localintm_run_count;// num times this phase has executed
externfunctionuvm_phase_typeget_phase_type();// @uvm-ieee 1800.2-2020 auto 9.3.1.3.3externvirtualfunctionvoidset_max_ready_to_end_iterations(intmax);// @uvm-ieee 1800.2-2020 auto 9.3.1.3.4// @uvm-ieee 1800.2-2020 auto 9.3.1.3.6externvirtualfunctionintget_max_ready_to_end_iterations();// @uvm-ieee 1800.2-2020 auto 9.3.1.3.5externstaticfunctionvoidset_default_max_ready_to_end_iterations(intmax);externstaticfunctionintget_default_max_ready_to_end_iterations();//-------------// Group -- NODOCS -- State//-------------
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^protecteduvm_phase_state_changem_state_chg;/*local*/processm_phase_proc;localstaticintm_default_max_ready_to_end_iters=20;// 20 is the initial value defined by 1800.2-2020 9.3.1.3.5localintmax_ready_to_end_iters=get_default_max_ready_to_end_iterations();intm_num_procs_not_yet_returned;externfunctionuvm_phasem_find_predecessor(uvm_phasephase,bitstay_in_scope=1,uvm_phaseorig_phase=null);externfunctionuvm_phasem_find_successor(uvm_phasephase,bitstay_in_scope=1,uvm_phaseorig_phase=null);externfunctionuvm_phasem_find_predecessor_by_name(stringname,bitstay_in_scope=1,uvm_phaseorig_phase=null);externfunctionuvm_phasem_find_successor_by_name(stringname,bitstay_in_scope=1,uvm_phaseorig_phase=null);externfunctionvoidm_print_successors();// Implementation - Callbacks//---------------------------// Provide the required component traversal behavior. Called by execute()virtualfunctionvoidtraverse(uvm_componentcomp,uvm_phasephase,uvm_phase_statestate);endfunction