post_configure_phase(); pre_main_phase(); main_phase(); post_main_phase(); pre_shutdown_phase(); shutdown_phase(); post_shutdown_phase(); endjoin UVM提供了如此多的phase,在一般的应用中,无论是function phase还是task phase都不会将它们全部用上。使用频率最高的是build_phase、connect_phase和...
需要注意的一点是就是run_phase和右边的12个phase,是并列关系,而不是说run_phase包含右边的12个phase,它们是并行运行的,它们的顺序大致如下: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 fork beginrun_phase();end beginpre_reset_phase();reset_phase();post_reset_phase();pre_configure_phase();c...
build_phase是按照自上而下的顺序执行的,在下图中,先执行uvm_test_top的build_phase,再执行env的build_phase。 除了build_phase,所有不耗费仿真时间的phase都是自下而上执行的,对于connect_phase即先执行driver和monitor的connect_phase,再执行agent的connect_phase。 image-20240228151306612 看到这里,很多同学可能就有...
beginpre_reset_phase();reset_phase();post_reset_phase();pre_configure_phase();configure_phase();post_configure_phase();pre_main_phase();main_phase();post_main_phase();pre_shutdown_phase();shutdown_phase();post_shutdown_phase(); end join 稍微解释一下上述代码含义,fork-join 表示...
分成小的phase是为了精细化控制。如这12个小phase的名字所示,reset,configure,main,shutdown四个phase是核心,这四个phase通常也是模拟了DUT的正常工作方式,在reset_phase对DUT进行复位,初始化等操作,在configure_phase则进行DUT配置,DUT的运行主要在main_phase完成,shutdown_phase则是做一些与DUT断电相关的操作。通过细...
• post_configure_phase • pre_ main _phase • 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开始执行,而在 ...
• post_configure_phase • pre_ main _phase • 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开始执行,而在 ...
对于task phase,从全局的观点来看其顺序大致如下: 登录后复制fork登录后复制begin登录后复制run_phase();登录后复制end登录后复制begin登录后复制pre_reset_phase();登录后复制reset_phase();登录后复制post_reset_phase();登录后复制pre_configure_phase();登录后复制configure_phase();登录后复制post_configure_phas...
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()...
uvm_phase是phase机制的基础,包含phase相关的状态、执行、调度、同步、跳转等函数和变量的定义。 uvm的默认phase全部继承自uvm_topdown_phase/uvm_bottomup_phase/uvm_task_phase。uvm_topdown_phase/uvm_bottomup_phase阶段执行的是function,区别是一个自顶向下,一个是自底向上。uvm_task_phase阶段执行的是task,所...