我有几个关于UVM阶段build()和run()的问题。它们可能适用于其他验证方法以及a>,为什么build()阶段是按自顶向下的顺序执行的。这是否意味着我们需要更新build()阶段中的所有组件,然后继续执行类中实例化的其他子组件的build()?b>在run()阶段是类似于super.run()的吗?run()阶段的执行顺序是什么?
发布于 2013-10-14 16:31:49
是的,UVM的build_phase()是按自顶向下的顺序执行的,因为在父组件的build_phase()中构造这些子组件之前,它们是不存在的(并且UVM建议使用工厂create()方法而不是直接调用构造函数new() )。build_phase()也是自顶向下执行的,这样父程序就可以提供覆盖设置,子节点在执行build_phase()时将使用该设置。
每个组件的run_phase()都是并发执行的,没有您可以依赖的定义的顺序。
您只需要在扩展类时调用super.method() --需要基本方法的功能。一个run_phase()的uvm_component ()中没有任何东西,因此在从它扩展时不需要调用super.run_phase()。在从基类扩展类时,您可能需要调用它。
https://stackoverflow.com/questions/19353096
复制相似问题