1)创建UVM默认的所有phases,即我们熟知的build phase、connect phase、run phase、main phase等等,并将其组织成我们前面会提到的有向无环图结构;实现这一步主要是靠调用uvm_domain中的get_common_domain 2)开始运行(1)创建组织好的phases,当然如果有用户自定义的phase,也会在规定的点运行起来;实现这一步主要是靠...
首先让我们看一下uvm phase机制的层次结构。 从上图可以看出,完整的phase机制分为三种类型的phase: uvm_topdown_phase uvm_bottomup_phase uvm_task_phase 所有这些phase的类定义如下: virtual class uvm_topdown_phase extends uvm_phase class uvm_build_phase extends uvm_topdown_phase 类似的,对于uvm_bottomu...
uvm_build_phase, uvm_final_phase继承于uvm_topdown_phase, 其余function phase继承于uvm_downtop_phase, task phase继承于uvm_task_phase。 对于build_phase, 函数exectue_phase会调用m_imp.traverse(top,this,UVM_PHASE_EXECUTING), traverse()函数在uvm_topdown_phase中定义,build_phase从top to down的执行顺...
1. 分成小的phase是为了实现更加精细的控制,其中核心的四个phase是(reset,configure,main,shutdown),这四个phase模拟了DUT的正常的工作方式 2. 实现跳转操作 3. 12 个小的 phase之间并不是这样顺序执行,而是每当一个小的phase 执行完成的时候要看看其它component的同名的小 phase有没有执行完,等所有的都执行完后...
<1>function phase:不消耗仿真时间,而其也可分成两大类: a. 继承自uvm_bottomup_phase, 在UVM component树中,自下而上的执行, 如connect_phase b. 继承自uvm_topdown_phase, 在UVM component树中,自上而下执行, 如build_phase<2>task phase:消耗仿真时间的,也称动态运行(run-time)phase. ...
UVM_PHASE_EXCUTING: 标准用法中都可以直接进入分支 line75用于判断是不是手动调用了build_phase,如果不是m_phasing_active就不等于0 line76-77判断是不是需要执行新的phase,而不是build_phase ph的类型是uvm_topdown_phase.svh,执行execute的函数。 virtualfunctionvoidexecute(uvm_component comp, ...
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。这么多phase除了方便验证人员将不同的代码写在不...
build_phase需要验证平台根据高层次组件的配置来决定建立低层次的组件,所以其是top-down phase。 connect_phase需要在build_phase之后完成验证组件之间TLM连接 6、uvm phase仿真是怎么开始启动的?通过在顶层调用run_test,run_test任务会首先创建test top,然后调用所有的phase,开始仿真。
3、UVM phase中top-down(自顶而下)、down-top(自底而上)以及并行执行的phase分别有哪些? UVM中的phase绝大部分都是自底向上的,即从树叶到树根,只有两个phase是从树根到树叶的(自顶向下)。 build_phase方法自顶向下执行,以便在顶部(测试)设置的配置可以向下传播到各component中。final_phase方法是自顶向下执行...
当我们在Agent中创建jelly_bean_driver时,我们编写了build_phase函数和run_phase任务,但是实际调用它们的人是谁?答案是uvm_phase类。 UVM Phases UVM有九个常见的phase类别(以黄色显示)和十二个运行时间phase类别(以粉色显示)。这些phase类是从uvm_topdown_phase,uvm_bottomup_phase或 UVM Tutorial for Candy Lovers...