UVM实战-P_SEQUENCER

作用:

为了能更好的在sequence中访问启动该sequence的sequencer类中的变量,我们引用了p_sequencer。

常规做法:

如果不使用p_sequencer,我们想要在sequence访问启动该sequence的sequencer类中的变量,该怎么做呢?

在sequence中的body中,定义一个启动该sequence的sequencer类的变量,然后通过cast进行类型转换后,就可以进行访问。详细参考张强《UVM实战》中代码

使用:

若在sequence访问启动该sequence的sequencer类为my_sequencer,那我们在使用p_sequencer的特性时,只需在在定义sequence时, 使用此宏声明sequencer的类型。如uvm_declare_p_sequencer( my_sequencer) 。 这个宏的本质是声明了一个my_sequencer类型的成员变量 p_sequencer。

UVM之后会自动将m_sequencer通过cast转换成p_sequencer。 这个过程在pre_body( ) 之前就完成了。 因此在sequence中可以直接使用成员变量p_sequencer来引用变量。

截图来自《UVM实战》
 

猜你喜欢

转载自blog.csdn.net/hw123_/article/details/108540613
今日推荐