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.