pre_shutdown_phase(); shutdown_phase(); post_shutdown_phase(); end join UVM提供了如此多的phase,在一般的应用中,无论是function phase还是task phase都不会将它们全部用上。使用频率最高的 是build_phase、connect_phase和main_phase。这么多phase除了方便验证人员将不同的代码写在不同的phase外,还有利于...
由于我们需要将新定义的phase插入到指定的位置,因此还需要所插入位置,也就是前一个phase,因此需要获得该phase的句柄。 uvm_phase ph=dm.find(uvm_connect_phase::get());//Or whichever phase; substitude phase_name with actual phase name like build, run...uvm_phase ph=dm.find(uvm_[phase_name]_phas...
1)创建UVM默认的所有phases,即我们熟知的build phase、connect phase、run phase、main phase等等,并将其组织成我们前面会提到的有向无环图结构;实现这一步主要是靠调用uvm_domain中的get_common_domain 2)开始运行(1)创建组织好的phases,当然如果有用户自定义的phase,也会在规定的点运行起来;实现这一步主要是靠...
当 run_phase() 和 pre_reset_phase() 同时存在时,run_phase() 和 pre_reset_phase() 在同一个时刻点开始运行,在 run_phase() 和 pre_reset_phase() 两个 phase 均运行结束以后,主 phase 才会继续执行 extract_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中的phase,按照其是否消耗仿真时间($time打印出的时间)的特性,可以分成两大类,一类是function phase,如 build_phase、connect_phase等,这些phase都不耗费仿真时间,通过函数来实现;另外一类是task phase,如run_phase等,它们耗费 仿真时间,通过任务来实现。给DUT施加激励、监测DUT的输出都是在这些phase中完成的。在...
pre_main_phase(); main_phase(); post_main_phase(); pre_shutdown_phase(); shutdown_phase(); post_shutdown_phase(); end join UVM提供了如此多的phase,在一般的应用中,无论是function phase还是task phase都不会将它们全部用上。使用频率最高的是build_phase、connect_phase和main_phase。
post_ main_phase(); pre_shutdown_phase(); shutdown_phase(); post_ shutdown_phase(); end join UVM树中Phase的执行顺序 对于UVM环境中的Phase执行,如上图所示,不消耗时间的phase中,只有build_phase是自上而下执行,其他的function phase都是自下而上执行的。function phase中各个phase中例化完以后的每个ph...
post_configure_phase(); pre_main_phase(); main_phase(); 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_main, main, post_main, pre_shutdown, shutdown, post_shutdown, 如下图: image.png 3 task phase的同步 一个UVM验证平台有许多component组成,每个component都有自己的run_phase,以及从pre_reset 到post_shuddown的12个小phase。只有所有component的一个小task phase 完成,整个仿真平台才开始下一个小task...