Jump to content

sequence is not running - make sure sequencer name 'correct'


Recommended Posts

//This is not a question, but me storing some debug notes online, lest I run into this problem again.
 
 
//good for debugging this issue, print_topology in particular.  Put them in your test.
      `uvm_info("TEST",$psprintf(" TOPOLOGY..............................."),UVM_HIGH);
      uvm_top.print_topology();
      `uvm_info("TEST",$psprintf(" CONFIG_DB_DUMP..............................."),UVM_HIGH);
      uvm_config_db::dump();
 
 
//When a sequence doesn't run, double-check the following.
 
//in the test (or wherever) where we assign the sequence to run on a sequencer
      uvm_config_db#(uvm_object_wrapper)::set(this,
                                              "*.dpx_xyz_agent_m.dpx_xyz_seq.main_phase",
                                              "default_sequence",
                                              dpx_xyz_simple1_seq::type_id::get());
 

//compare the name of the sequencer with the name that is given to the factory for the sequencer, when it is created

 
//where we create the sequencer (in the agent), what name did we supply to it with the factory?
      m_seq = dpx_xyz_sequencer::type_id::create("dpx_xyz_seq", this);
 
//make sure they match.  This problem has bitten me a few times.

 

 

Link to comment
Share on other sites

hi,

 

there are more ways to find this issue:

 

1. when enabled (verbosity) you should see a message like this

 

UVM_INFO 

/grid/avs/install/incisiv/10.2/latest/tools/uvm-1.1/uvm_lib/uvm_sv/sv/seq/uvm_sequencer_base.svh(1468) 
@ 0 ns: uvm_test_top.m_env.m_iab_test_sequencer [NODEFSEQ] The 
"default_sequence" has not been set. Since this sequencer has a runtime 
phase schedule, the uvm_random_sequence is not being started for the run 
phase.

 

2. via config db trace you would see that the lookup for a "default_sequence" failed. you would also see the exact lookup parameters.

 

3. when you invoke uvm_component::check_config_usage() you would see some uvm_config_db settings have not been used.

 

/uwe

Link to comment
Share on other sites

  • 2 weeks later...
  • 8 years later...

One more point here. I found that i have to do seq.start(sequencer) for every sequence in the test, inside a fork join none, if we club the 2 sequence starts ina  task and then call that task in a fork join none, the second sequence.start is not considered. I do not know the reason for this behaviour, can anyone help why fork join_none is needed?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...