Ovm_sequencer::count

Question about the meaning of ovm_sequencer::max_random_count and ovm_sequencer::count
I have in my sequence 4 directed transactions:
ovm_do_with(req, {this.kind == CT_DONE;} ) ovm_do_with(req, {this.kind == CT_RESET;} )
ovm_do_with(req, {this.kind == CT_LOAD;} ) ovm_do_with(req, {this.kind == CT_DONE;} )
In the build of my test, if I set
set_config_int(“env_0.agent0.sequencer”,“count”,0);
I see the 4 transaction in that sequence.

However, if I comment the above set_config_int, or I set it to 20, I see a random transaction interspersed after the directed transactions.
i.e., CT_DONE, ct_wait, CT_RESET, ct_load, CT_LOAD, ct_wait, CT_DONE.
The guide explains this count as " number of generated sequences"
I don’t understand it. What is happening, and why?
Another question: Are my directed sequences counted and the other sequences that appear are the default sequences running parallel?
What are the differences between count=1 and count=2, and count=10 ?
//
From OVM_UserGuide. “Controlling the Number of Sequences Created by ovm_random_sequence”
The default number of generated sequences is a random number between 0 and
ovm_sequencer::max_random_count. The user can modify the number of generated
sequences (count). Use the configuration mechanism to change the value of count. For
example, to generate and send 10 sequences, use:
set_config_int(“.cpu_seqr", “count”, 10);
You can disable a sequencer from generating any sequences by setting the count to 0.
set_config_int("
.cpu_seqr”, “count”, 0);
Note: Having more data items than count is not necessarily a bug. The sequencer does
not generate data items directly. By default, it generates count number of simple sequences
that translate into count number of items. The sequencer has more built-in capabilities,
which are described in the next section.

What you are seeing is the sequencer executing sequences from its sequence library in a random order. By default it will execute 10 such sequences. If you set the count to 0, then it doesn’t execute any, if you set it to 20 it will execute 10.

This is a common source of confusion with sequences. The recommendation is either to set count to 0, or not to use the sequencer macros and start sequences explicitly as you meant to.

See Sequences | Verification Academy for more information.

Ben,
The “count” is for ovm_random_sequence alone, a feature that’s deprecated in UVM. In other cases it is misleading and doesn’t do much for you (except in some cases it confuses users).

Regards
Ajeetha, CVC