【问题标题】:UVM Phase QueryUVM 相位查询
【发布时间】:2013-10-14 03:27:47
【问题描述】:

我有几个关于 UVM 阶段 build()run() 的问题。它们也可能适用于其他验证方法 a> 为什么build() 阶段是以自上而下的顺序执行的。这是否意味着我们需要在build() 阶段新建所有组件,然后继续执行类中实例化的其他子组件的build()? b> 在run() 阶段是否有类似super.run() 的调用? run()阶段的执行顺序是什么

【问题讨论】:

    标签: system-verilog uvm


    【解决方案1】:

    是的,UVM 的 build_phase() 以自上而下的顺序执行,因为子组件在父组件的 build_phase() 中构造之前不存在(并且 UVM 建议使用工厂 create() 方法而不是直接调用构造函数new())。 build_phase() 也是自上而下执行的,这样父级可以提供覆盖设置,子级在执行 build_phase() 时将使用这些设置

    每个组件的 run_phase() 是并发执行的,没有定义您可以依赖的顺序。

    你只需要调用 super.method() 如果你扩展一个类并且需要基方法的功能。 uvm_component 的 run_phase() 内部没有任何内容,因此从它扩展时无需调用 super.run_phase()。从基类扩展类时,您可能需要调用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      相关资源
      最近更新 更多