UVM阶段查询

问题描述 投票:0回答:1

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

system-verilog uvm
1个回答
3
投票

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

每个组件的run_phase()同时执行,没有您可以依赖的已定义顺序。

如果要扩展类需要基本方法的功能,则只需要调用super.method()。 uvm_component的run_phase()内部没有任何内容,所以在从它扩展时不需要调用super.run_phase()。从基类扩展类时,可能需要调用它。

© www.soinside.com 2019 - 2024. All rights reserved.