1 @page pConfigKnobs Overview of configuration knobs
3 @section sKnobs Included configuration knobs
4 The following table includes a reference of all configuration knobs in cl_syoscb_cfg, as well as a short description of what each knob does. Click the link to the knob to view a more detailed explanation, as well as possible limitations.
6 In general, all getters and setters are named \c get_<knob> and \c set_<knob>. Depending on whether it is a global knob,
7 a queue-specific knob or a queue/producer specific knob, the getter/setter may have multiple arguments. See the list of
8 methods for cl_syoscb_cfg for additional details.
12 <th>Configuration knob</th>
16 <td>cl_syoscb_cfg.scb_name</td>
17 <td> The name of the scoreboard which this configuration is attached to.</td>
21 <td>cl_syoscb_cfg.queue_type</td>
22 <td> Type of queue used in the scoreboard.
23 Defaults to \c pk_syoscb::SYOSCB_QUEUE_USER_DEFINED and must be changed if a custom queue topology is not used. All queue topologies defined in <b>src/syoscb_common.svh</b> are valid values.
28 <td>cl_syoscb_cfg.compare_type</td>
29 <td> Type of compare algorithm to be used in the scoreboard. Defaults to \c pk_syoscb::SYOSCB_COMPARE_USER_DEFINED and must be changed if a custom compare strategy is not used. All compare strategies defined in <b>src/syoscb_common.svh</b> are valid values. </td>
33 <td>cl_syoscb_cfg.trigger_greediness </td>
34 <td>Greed level used when triggering comparisons during simulation. Defaults to \c pk_syoscb::SYOSCB_COMPARE_NOT_GREEDY. All greed levels defined in <b>src/syoscb_common.svh</b> are valid values .</td>
38 <td>cl_syoscb_cfg.end_greediness</td>
39 <td>Greed level used when triggering comparisons in the UVM cleanup phase. Defaults to \c pk_syoscb::SYOSCB_COMPARE_GREEDY. All greed levels defined in <b>src/syoscb_common.svh</b> are valid values .</td>
43 <td>cl_syoscb_cfg.enable_no_insert_check</td>
44 <td> Raise an error if any queue has no insertions at the end of simulation. Defaults to being enabled (1'b1).</td>
48 <td>cl_syoscb_cfg.disable_clone</td>
49 <td> Controls whether sequence items added to the scoreboard are cloned to disallow future modification. Clones are enabled by default (1'b0).</td>
53 <td>cl_syoscb_cfg.disable_compare_after_error</td>
54 <td> Controls whether comparisons should be disabled after a UVM_ERROR has been triggered. Defaults to still comparing items (1'b0).</td>
58 <td>cl_syoscb_cfg.max_queue_size</td>
59 <td>Per-queue knob controlling the maximum number of elements that can be in a queue before an error is raised. By default there is no limit on the number of elements in each queue (0).</td>
63 <td>cl_syoscb_cfg.print_orphans_as_errors</td>
64 <td>Controls whether orphans found in the UVM cleanup phase are reported as UVM_ERROR or UVM_INFO. Defaults to treating them as UVM_INFO (1'b0).</td>
68 <td>cl_syoscb_cfg.max_print_orphans</td>
69 <td>Control the maximum number of orphans that will be printed at end of simulation. Defaults to printing all orphans (0).</td>
73 <td>cl_syoscb_cfg.dump_orphans_to_files</td>
74 <td>Controls whether to dump orphans into log files at end of simulation. Defaults to not dumping orphans into log files (1'b0).</td>
78 <td>cl_syoscb_cfg.disable_report</td>
79 <td> Controls whether to disable the post-simulation report generated in the UVM report_phase. The report is enabled by default (1'b0).</td>
83 <td>cl_syoscb_cfg.enable_queue_stats</td>
84 <td> Per-queue knob enabling or disabling the printing of queue statistics per producer for each queue in simulation reports. Disabled by default (0, queues statistics do not include producer statistics).</td>
88 <td>cl_syoscb_cfg.full_scb_dump</td>
89 <td> Controls whether all transactions into the SCB should be dumped to a log file. Disabled by default (1'b0).</td>
93 <td>cl_syoscb_cfg.full_scb_dump_split</td>
94 <td> Controls whether transactions in a SCB dump should be written to the same file or individual files for each queue. Default to writing all transactions in the same file.</td>
98 <td>cl_syoscb_cfg.full_scb_max_queue_size</td>
99 <td> The number of elements that can be in a queue before dumping to file starts. Defaults to dumping every value when it is added (higher thresholds reduce the frequency of file I/O operations).</td>
103 <td>cl_syoscb_cfg.full_scb_dump_type</td>
104 <td>The type of file that the scoreboard should be dumped to. Can be either \c pk_syoscb::TXT (.txt file) or \c pk_syoscb::XML (.XML file supporting XML transforms).</td>
108 <td>cl_syoscb_cfg.orphan_dump_type</td>
109 <td>The type of file that orphans should be dumped to. Supports the same knobs as cl_syoscb_cfg.full_scb_dump_type.</td>
113 <td>cl_syoscb_cfg.full_scb_dump_file_name</td>
114 <td>Prefix to be used in filenames when dumping scoreboard contents. Defaults to "full_scb_dump".</td>
118 <td>cl_syoscb_cfg.orphan_dump_file_name</td>
119 <td>Prefix to be used in filenames when dumping orphans. Defaults to "orphan_dump".</td>
123 <td>cl_syoscb_cfg.ordered_next</td>
124 <td> For hash-based queues, ensures that the iteration order over a queue is the same as the insertion order. Is enabled by default (1'b1), though this incurs a slight performance hit (see \ref pQueueImplementationNotes).</td>
128 <td>cl_syoscb_cfg.hash_compare_check</td>
129 <td>Toggles whether a safety check should be enabled when using hash queues. Can be used to check contents of matching items, or to ensure that no matches actually occur. All values of \c t_hash_compare_check defined in <b>src/syoscb_common.svh</b> are valid values. </td>
133 <td>cl_syoscb_cfg.print_cfg</td>
134 <td>Whether to print the scoreboard's configuration to STDOUT once the scoreboard has been built in the UVM build phase. Disabled by default (1'b0).</td>
138 <td>cl_syoscb_cfg.enable_comparer_report</td>
139 <td>Configuration knob for each queue/producer combination, controlling whether the specific fields that prompted a miscompare should be printed or not. If no queue/producer specific value has been set, uses cl_syoscb_cfg.default_enable_comparer_report.</td>
143 <td>cl_syoscb_cfg.default_enable_comparer_report</td>
144 <td>Default value for cl_syoscb_cfg.enable_comparer_report to use when printing miscompares if none is set for a specific queue/producer combination. Defaults to being enabled (1'b1). </td>
148 <td>cl_syoscb_cfg.comparers</td>
149 <td>Configuration knob for each queue/producer combination, allowing the use of a specific comparer. The primary item is used to select the comparer. If no specific comparer has been set for queue/producer combination, the default comparer is used instead. </td>
153 <td>cl_syoscb_cfg.default_comparer</td>
154 <td>The default comparer used when no specific queue/producer specific comparer has been set.</td>
158 <td>cl_syoscb_cfg.printer_verbosity</td>
159 <td>Per queue/producer configurable value that indirectly controls the number of elements in an array that a printer will output. If 1, all elements of arrays are printed. If 0, only prints the elements configured by the printer's begin/end elements flag.</td>
163 <td>cl_syoscb_cfg.default_printer_verbosity</td>
164 <td>The default printer verbosity bit used if none has been set for a queue/producer combination. Defaults to 1'b0 (use values of begin/end_elements flag in the printer).</td>
168 <td>cl_syoscb_cfg.printers</td>
169 <td>Per queue/producer configurable printer to be used when printing sequence items. If no specific printer has been set, uses the default printer instead.</td>
173 <td>cl_syoscb_cfg.default_printer</td>
174 <td>The default printer used when no specific printer has been set for a queue/producer combination. Defaults to being a \c uvm_default_printer.</td>
178 <td>cl_syoscb_cfg.max_search_window</td>
179 <td>Per-queue knob controlling the max number of items to check in that queue when performing OOO compare on STD queues, as well as IOP search for matching secondary items. If N=0, everything is searched, if N>0, only checks the first N items in each queue.</td>
183 <td>cl_syoscb_cfg.mutexed_add_item_enable</td>
184 <td>If toggled, a mutex must be acquired before items can be inserted into the queue. Note that all simulators that the SCB has been tested on use preemptive scheduling, removing the need for a mutex. This can be enabled for certainty that no insertions will overlap. Defaults to being disabled (1'b0).</td>
188 <td>cl_syoscb_cfg.queue_stat_interval</td>
189 <td>Per-queue knob that allows printing queue statistics (insertions, matches, flushed and remaining items) after every N insertions into that queue.</td>
193 <td>cl_syoscb_cfg.scb_stat_interval</td>
194 <td>Allows for printing overall SCB statistics to stdout after every N insertions into the scoreboard. SCB stats are the same figures as for queue stats, but are for the entire SCB.</td>
198 @section sNonResolved Issues not resolved with config knobs
200 Some configuration issues which are not resolved through cl_syoscb_cfg are listed here:
202 -# Making the scoreboard stop after N compare errors:
203 - Since a compare error is issued as a UVM_ERROR, simply use the +UVM_MAX_QUIT_COUNT plusarg of UVM to control this.