In our testbench , we have added a new schedule which runs in parallel with uvm_main_phase. This schedule consists of four phase lets say phase a , b , c and d.
These phases are added into uvm domain(m_uvm_domain) itself.
So the flow looks as shown below:
pre_reset_phase
|
|
<Other run time phase >
|
|
Main_phase | phase_a
| |
| |
| phase_b
| |
| |
| phase_c
| |
| |
| phase_d
| /
| /
| /
| /
| /
| /
| /
| /
| /
|/
Post_main_phase
I want to issue a phase jump from phase_b to pre_reset_phase. So I use uvm_domain::jump. With this, I see that pre_reset_phase is entering twice while it should have entered only once.
Phase_b and uvm_main_phase share the same domain i.e m_uvm_domain. Even though there are two active phases in this domain , when a jump is requested jump should happen once. But currently it seems it happens for all the active phases. So we see pre_reset_phase entering twice. Is this expected behavior?