How m_sequencer identity its sequencer?

Hi,

How m_sequencer identify on what sequencer it needs to start the sequence.

For instance, let’s say we have 4 agent in UVM TB, and each agent has its own sequencer.
and let’s say we have 3 sequences whose handles are a,b and c. Then if in start method i just pass “a.start(m_sequencer)”, how does this m_sequencer will identify out of 4 sequencer on which it needs to run.

In my opinion, the paramterization of sequence, sequencer and driver with the same transaction class helps the m_sequencer to identify the default sequencer. Am i right?

In reply to mukul1996:

m_sequencer is a member of a sequence. You can’t call a.start(m_sequencer) unless you are already in a sequence. It’s the default if you don’t specify a sequencer.

Normally the agent will start the sequence in its run_phase, and it has a handle to the sequencer. Or the test can start each sequence and will need to get a handle to each sequencer. There are a variety of other scenarios.

In reply to mukul1996:

m_sequencer points to typeid of particular sequence hierarchy passsed in test.