SyoSil ApS UVM Scoreboard  1.0.3.0
config.md
1 @page pConfigKnobs Overview of configuration knobs
2 
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.
5 
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.
9 
10 <table>
11  <tr>
12  <th>Configuration knob</th>
13  <th>Description</th>
14  </tr>
15  <tr>
16  <td>cl_syoscb_cfg.scb_name</td>
17  <td> The name of the scoreboard which this configuration is attached to.</td>
18  </tr>
19 
20  <tr>
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.
24  </td>
25  </tr>
26 
27  <tr>
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>
30  </tr>
31 
32  <tr>
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>
35  </tr>
36 
37  <tr>
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>
40  </tr>
41 
42  <tr>
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>
45  </tr>
46 
47  <tr>
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>
50  </tr>
51 
52  <tr>
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>
55  </tr>
56 
57  <tr>
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>
60  </tr>
61 
62  <tr>
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>
65  </tr>
66 
67  <tr>
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>
70  </tr>
71 
72  <tr>
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>
75  </tr>
76 
77  <tr>
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>
80  </tr>
81 
82  <tr>
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>
85  </tr>
86 
87  <tr>
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>
90  </tr>
91 
92  <tr>
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>
95  </tr>
96 
97  <tr>
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>
100  </tr>
101 
102  <tr>
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>
105  </tr>
106 
107  <tr>
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>
110  </tr>
111 
112  <tr>
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>
115  </tr>
116 
117  <tr>
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>
120  </tr>
121 
122  <tr>
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>
125  </tr>
126 
127  <tr>
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>
130  </tr>
131 
132  <tr>
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>
135  </tr>
136 
137  <tr>
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>
140  </tr>
141 
142  <tr>
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>
145  </tr>
146 
147  <tr>
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>
150  </tr>
151 
152  <tr>
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>
155  </tr>
156 
157  <tr>
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>
160  </tr>
161 
162  <tr>
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>
165  </tr>
166 
167  <tr>
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>
170  </tr>
171 
172  <tr>
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>
175  </tr>
176 
177  <tr>
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>
180  </tr>
181 
182  <tr>
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>
185  </tr>
186 
187  <tr>
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>
190  </tr>
191 
192  <tr>
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>
195  </tr>
196 </table>
197 
198 @section sNonResolved Issues not resolved with config knobs
199 
200 Some configuration issues which are not resolved through cl_syoscb_cfg are listed here:
201 
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.

Project: SyoSil ApS UVM Scoreboard, Revision: 1.0.3.0

Copyright 2014-2022 SyoSil ApS
All Rights Reserved Worldwide

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
doxygen
Doxygen Version: 1.8.14
Generated with IDV SV Filter Version: 2.6.3
Fri Sep 2 2022 14:40:27
Find a documentation bug? Report bugs to: scoreboard@syosil.com