P_sequencer is a null object access

In reply to zz8318:

Several suggestions:

  1. You should never need to create your own sequencers. Instead, you should use a typedef to define them:

typedef uvm_sequencer#(my_seq_item) my_sequencer;

  1. If you think you need to define your own sequencer, you don’t. If you are creating a virtual sequencer by adding sequencer handles, add the sequencer handles to the virtual sequence instead.

  2. Never use `uvm_declare_p_sequencer(). This will tie a sequence to a specific sequencer and significantly reduce the reusability of the sequence.

  3. If you need to reference the sequencer that a sequence is running on, use m_sequencer.