One of the most confusing UVM stuff is about m_sequencer and p_sequencer and the difference between the two. In reality, its just a game of polymorphism.
Referring to some forum answer,
m_sequencer
is a generic sequencer pointer of type uvm_sequencer_base. It will always exist for a uvm_sequence and is initialized when the sequence is started.
The
p_sequencer
is a type specific sequencer pointer, created by registering the sequence to a sequencer using the `uvm_declare_p_sequencer
macros. Being type specific, you will be able to access anything added to the sequencer (i.e. pointers to other sequencers, etc.). p_sequencer
will not exist if the `uvm_declare_p_sequencer
macros isn’t used.
No comments:
Post a Comment