2013-10-14 62 views
0

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

回答

2

是的,UVM的build_phase()以自上而下的顺序执行,因为孩子直到它们在父组件的build_phase()内构建(而UVM建议使用工厂create()方法,而不是直接调用构造函数new())。该build_phase()也执行自上而下的,这样家长可以提供覆盖设置,当他们执行的是没有定义的顺序,你可以依赖于并行执行他们的build_phase()

的run_phase各组分()的孩子会用。

你只需要打电话给super。 方法()如果您正在扩展一个类,需要基本方法的功能。在uvm_component的run_phase()内没有任何内容,因此从它延伸时不需要调用super.run_phase()。从基类中扩展您的类时,您可能需要调用它。