Facebook/LinkedIn login is now deprecated, please disconnect our access to your social profile.
User dashboard under chipverify.com/connect will be deprecated from Oct 1, 2020, Read More.
Let us contribute to a cleaner Earth, Go Green Updated: May 31, 2020
1 minute reading time (165 words)

what is the m_sequencer ?

what is the m_sequencer ?

There are primarily two ways to start a sequence : use a `uvm_do macro, or use the start() method. If you have read How to execute sequences via `uvm_do macros ?, you might already know that `uvm_do macros eventually call the start() method, and the macros act as a wrapper to execute both data items and sequences on the default sequencer "m_sequencer".

All uvm_sequence_item objects have a uvm_sequencer_base handle called m_sequencer, to which a different sequencer can be assigned. This can be achieved in the following ways:

  • provide a sequencer handle in start() method
  • use the sequencer of the parent sequence
  • provide a sequencer via set_sequencer() method

virtual task start ( uvm_sequencer_base  sequencer,
                     uvm_sequence_base   parent_sequence = null,
                     int                 this_priority = -1,
                     bit                 call_pre_post = 1
                   );
 
virtual function void set_sequencer (uvm_sequencer_base sequencer);
 

A sequence is always executed by the default sequencer. It's just that the default sequencer is made to point to the sequencer on which we want the sequence to execute on.

$deposit - Put a value onto any net/register
how to disable file name and line numbers in repor...
 

By accepting you will be accessing a service provided by a third-party external to https://www.chipverify.com/

You consent to our cookies if you continue to use our website. To know more about cookies, see our privacy policy. I accept cookies from this site.

Agree