(1)如果12个分支中有一个phase(比如main_phase)挂起了objection ,那么run_phase 中则不需要挂起objection 就可以执行其中的代码;但是这时,run_phase的运行时间被动地受这个挂起objection的分支phase的控制。 (2)而如果在run_phase中挂起了objection,没有在main_phase中挂起,main_phase中的操作则不会执行,此时的运行...
一类是function phase,如build_phase、connect_phase等,这些phase都不耗费仿真时间,通过函数来实现; 另外一类是task phase,如run_phase等,它们耗费仿真时间,通过任务来实现。 给DUT施加激励、监测DUT的输出都是在这些phase中完成的。在图5-1中,灰色背景所示的是task phase,其他为function phase。 上述所有的phase都会...
UVM中的phase,按照其是否消耗仿真时间($time打印出的时间)的特性,可以分成两大类,一类是function phase,如 build_phase、connect_phase等,这些phase都不耗费仿真时间,通过函数来实现;另外一类是task phase,如run_phase等,它们耗费 仿真时间,通过任务来实现。给DUT施加激励、监测DUT的输出都是在这些phase中完成的。在...
我们本节提到的bulid_phase、connect_phase、run_phase这些都是时间的概念,而上面这个图中各个component的关系是空间的概念。在执行时,先把各个component中的build_phase执行完,再执行各个component的connect_phase,再执行各个component的run_phase。 类似run_phase、main_phase等task_phase也都是按照自下而上的顺序执行的...
5.run_phase,main_phase等task_phase 也是按照从叶到跟执行的。 1)每个component 都有run_phase 和12 个小phase。将这些xxx_phase 通过fork join_none全部启动。 2)对于单独component 来说,其12 个run-time 的phae 是顺序执行的,但并不是前面一个phase执行完就立刻执行下一个phase,还要看其他component 的这个...
post_main_phase(); pre_shutdown_phase(); shutdown_phase(); post_shutdown_phase(); end join 稍微解释一下上述代码含义,fork-join 表示两个 begin-end 是同时开始运行的,当 run_phase() 和 pre_reset_phase() 同时存在时,run_phase() 和 pre_reset_phase() 在同一个时刻点开始运行,在 run_phase...
UVM提供了9个主phase和12个小的运行时phase,其中主phase如build_phase、connect_phase、reset_phase、main_phase、run_phase、report_phase和final_phase等是任务阶段,而run_phase和main_phase是关键,run_phase控制整个验证过程的启动与停止,main_phase则负责DUT的运行。引入小的运行时phase,如reset、...
• main_phase • post_ main _phase • pre_ shutdown _phase • shutdown_pbase • post_ shutdown _phase 实际上run_phase任务和上面细分的12个phase是并行的,即在start_of_simulation_phase任务执行以后,run_phase和 reset_phase开始执行,而在 shutdown_phase执行完成之后, 需要等待run_phase执行完...
如图所示灰色的phase是task phase其他均为function phase 上述所有的phase都会按照图中的顺序自上而下自动执行。使用频率最高的是build_phase、connect_phase和main_phase 对于function phase来说,在同一时间只有一个phase在执行;但是task phase中,run_phase和pre_reset_phase等12个小的phase并行运行。后者称为动态运行...
比如 uvm_build_phase::get()就会报错: 3)换成uvm_run_phase::get(),也会报错。因为run_phase 是和12小的并行的。 4)uvm_pre_reset_phase 之后的所有phase 都可以。 5)还可以向后跳转,如main_phase跳转到shutdown_phase。也可以是函数phase,如main_phase跳到final_phase。