Different between sequence start with null and sequencer argument

In reply to UVM_LOVE:

Dear all,
I have some question about starting sequence in uvm.
for example, I’ve got compile error when I’ve implemented with sequencer such as “seq.start(apb_env.apb_agent.sequencer)”
then I got the Null point error at the point.
so I modified as “seq.start(null)” then no error message.
from here, I want to know what differences make Null point error?
Could you guide me which case I can use “Null” and “sequencer” in .start()?

A virtual sequeence does not create itself seq_items, i.e you do not need a virtual sequencer. We can only start virtual sequences with ‘null’ argument as the virtual sequencer argument. In this case you need handles to the local (agent) sequencers.
In your case, when running
seq.start(apb_env.apb_agent.sequencer)
the sequencer object does not exist when getting a null point error.