Hi.
in UVM, It is legal to have phase jump to any function phases. but it seems in below demonstration code it does not work as I expected. I expected the flag build_agt2 = 1 after the phase.jump(build_phase).
class mycomponent extends uvm_component;
.......
bit build_agt2;
function void build_phase(uvm_phase phase);
`create_agt1();
if ( build_agt2)
`create_ag2() ; or
// `override_agt1_by_agt2();
endfunction
task run_phase;
// change flag build_agt2 to 1;
endtask
function void phase_ready_to_end;
// if the imp phase is in shutdown_phase
// then phase.jump to build_phase
endfunction