Quantcast
Channel: UVM Forums RSS Feed
Viewing all articles
Browse latest Browse all 756

different between run_phase and other 12 runtime phase

$
0
0

Hi, all

 

     i confused about the different between run_phase and other 12 runtime phase at bellow two case:

 

First Case:

 

task monitor::run_phase(uvm_phase pahse);

super.run_phase(phase);

#50;

`uvm_info("RUN_PHASE", "Monitor Run_phase Starting", UVM_NONE)

endtask

 

task driver::main_phase(uvm_phase pahse);

super.main_phase(phase);

phase.raise_objection(this);

#100;

`uvm_info("MAIN_PHASE", "Driver Main_phase Starting", UVM_NONE)

phase.drop_objection(this);

endtask

 

In the case, raise objection in driver‘s main_phase task, does not raise objection in the monitor's run_phase task

the run_phase and main_phase work as expected!

 

 

Second Case:

 

task monitor::run_phase(uvm_phase pahse);

super.run_phase(phase);

phase.raise_objection(this);

#100;

`uvm_info("RUN_PHASE", "Monitor Run_phase Starting", UVM_NONE)

phase.drop_objection(this);

endtask

 

 

task driver::main_phase(uvm_phase pahse);

super.main_phase(phase);

#50;

`uvm_info("MAIN_PHASE", "Driver Main_phase Starting", UVM_NONE)

endtask

 

In the case, raise objection in the monitor's run_phase task, does not raise objection in the driver’s main_phase task

The run_phase work expected, but the main_phase task in driver does not output any information, in other words, it seems like the main_phase task is not scheduled!

 

Who know the reason?

 

BR

 

QIN


Viewing all articles
Browse latest Browse all 756

Trending Articles