在浏览了一下 UVM 源代码后,我注意到每个阶段都存在单例。对于运行阶段,这可以通过调用来访问uvm_run_phase::get()
。
我尝试uvm_run_phase::get()
从 run_phase 和 end_of_elaboration 阶段调用,并且正如预期的那样,两个调用都返回了同一个对象的句柄。我有点困惑,因为此方法返回的对象与传递给run_phase(...)
任务的对象不同,因为它是阶段参数。
我在 EDA Playground 上创建了一个示例:http ://www.edaplayground.com/x/2PL
有谁知道传递给阶段方法的阶段参数是什么以及为什么它不是单例?