Jump to content

mehtad

Members
  • Content Count

    5
  • Joined

  • Last visited

  1. UVM experts, Can anyone please respond on this? Thanks.
  2. Hi Mastrick, Thanks for showing interest in this topic. When I say pre-reset phase is entering twice, I mean that phase jumping happens twice to pre-reset phase. First time phase jump happens from uvm_main_phase and second time it happens from phase_b( which is a user defined phase). But ideally phase jump should have happened only once , as both these phases belong to same domain i.e uvm domain. Even though they are from separate schedules. Below is my log snippet: ======================== Phase jump from main phase: [38775.8ns] uvm_phase.svh(1314): reporter [PH_JUMP] phase main (schedule uvm_sched, domain uvm) is jumping to phase pre_reset [38775.8ns] uvm_phase.svh(1321): reporter [PH_END] Phase 'uvm.uvm_sched.main' (id=284) JUMPING OUT OF PHASE [38775.8ns] uvm_phase.svh(1124): reporter [PH/TRC/STRT] Phase 'uvm.uvm_sched.pre_reset' (id=200) Starting phase [38775.8ns] uvm_phase.svh(1203): reporter [PH/TRC/SKIP] Phase 'uvm.uvm_sched.pre_reset' (id=200) No objections raised, skipping phase Phase jump from phase_b [38775.8ns] uvm_phase.svh(1314): reporter [PH_JUMP] phase phase_b (schedule pcie_main_schedule, domain uvm) is jumping to phase pre_reset [38775.8ns] uvm_phase.svh(1321): reporter [PH_END] Phase 'uvm.pcie_main_schedule.phase_b' (id=479) JUMPING OUT OF PHASE [38775.8ns] uvm_phase.svh(1124): reporter [PH/TRC/STRT] Phase 'uvm.uvm_sched.pre_reset' (id=200) Starting phase 38775.8ns] uvm_phase.svh(1203): reporter [PH/TRC/SKIP] Phase 'uvm.uvm_sched.pre_reset' (id=200) No objections raised, skipping phase My requirement is to enter into pre-reset phase only once. If it enters twice, my pre-reset phase sequence gets started two times.
  3. 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?
  4. In our testbench , we have added a new schedule pcie_main_schedule which runs in parallel with uvm_main_phase. This schedule consists of four phase lets say phase_a , phase_b , phase_c and phase_d. 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 When we enter into phase_b , we issue a phase jump to uvm_pre_reset_phase. In this case I see that phase_b is killed and control goes to uvm_pre_reset_phase. But uvm_main_phase keeps on running in parallel.So simulation has both uvm_pre_reset_phase and uvm_main_phase running in parallel which is not expected. As per UVM user guide , if the jump to phase is outside of current schedule then the jump affects other schedules which share this phase. As the jump is happening from phase_b ( part of pcie_main_schedule) to uvm_pre_reset_phase( part of m_uvm_schedule) , uvm_main_phase should also have jumped . But this does not happen.
×