Back jump from run_phse to Build phase

Hi All,

I have a requirement to back jump from run_phase to build phase ?
Is there any way how can I do this implementation ?

In reply to kuldeep sharma:

Could you please explain how this requirement looks lik?
There is no way to do this. But under certain circumstances you might split your sequence in smaller parts. Then you can reconfigure your environment and run these sequences.

In reply to chr_sue:

Hi ,
Thanks for the reply.

My requirement is after complete transfer , i want to put HARD Reset , and run simulation with same descriptor. Right now i am preloading my descriptor from build_phase.

In reply to kuldeep sharma:

Hi sharma,

I don’t know why your simualation has to jump to build phase, not reset phase.

For reset test, the below code snippet may help you.

 virtual function void phase_ready_to_end(uvm_phase phase);
 super.phase_ready_to_end(phase);
 if(phase.get_imp() == uvm_shutdown_phase::get()) begin
 if(run_count == 0) begin
 phase.jump(uvm_pre_reset_phase::get());
 run_count++;
 end
 end
 endfunction : phase_ready_to_end

You can refer to the link here for more infomation: http://www.sunburst-design.com/papers/HunterSNUGSV_UVM_Resets_paper.pdf

In reply to kuldeep sharma:

In reply to chr_sue:
Hi ,
Thanks for the reply.
My requirement is after complete transfer , i want to put HARD Reset , and run simulation with same descriptor. Right now i am preloading my descriptor from build_phase.

You can initiate a hard reset from a sequence, because it will be asserted in the driver.
What do you mean with ‘descriptor’?

In reply to hungtaowu:

In reply to kuldeep sharma:
Hi sharma,
I don’t know why your simualation has to jump to build phase, not reset phase.
For reset test, the below code snippet may help you.

 virtual function void phase_ready_to_end(uvm_phase phase);
super.phase_ready_to_end(phase);
if(phase.get_imp() == uvm_shutdown_phase::get()) begin
if(run_count == 0) begin
phase.jump(uvm_pre_reset_phase::get());
run_count++;
end
end
endfunction : phase_ready_to_end

You can refer to the link here for more infomation: http://www.sunburst-design.com/papers/HunterSNUGSV_UVM_Resets_paper.pdf

It is recommended to use the run_phase and to avoid the sub_phases of the run_phase.
You can execute any rest from the run_phase you do not need to do this in the reset_phase.

In reply to kuldeep sharma:

In reply to chr_sue:
Hi ,
Thanks for the reply.
My requirement is after complete transfer , i want to put HARD Reset , and run simulation with same descriptor. Right now i am preloading my descriptor from build_phase.

You cannot jump back to the build_phase. And even if you could, it wouldn’t make much sense since you would be replicating your entire test bench architecture. There is no way to delete a component once it’s been constructed.