SyoSil ApS UVM Scoreboard  1.0.3.0
Overview of configuration knobs

Included configuration knobs

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.

In general, all getters and setters are named get_<knob> and set_<knob>. Depending on whether it is a global knob, a queue-specific knob or a queue/producer specific knob, the getter/setter may have multiple arguments. See the list of methods for cl_syoscb_cfg for additional details.

Configuration knob Description
cl_syoscb_cfg.scb_name

The name of the scoreboard which this configuration is attached to.

cl_syoscb_cfg.queue_type

Type of queue used in the scoreboard. Defaults to pk_syoscb::SYOSCB_QUEUE_USER_DEFINED and must be changed if a custom queue topology is not used. All queue topologies defined in src/syoscb_common.svh are valid values.

cl_syoscb_cfg.compare_type

Type of compare algorithm to be used in the scoreboard. Defaults to pk_syoscb::SYOSCB_COMPARE_USER_DEFINED and must be changed if a custom compare strategy is not used. All compare strategies defined in src/syoscb_common.svh are valid values.

cl_syoscb_cfg.trigger_greediness

Greed level used when triggering comparisons during simulation. Defaults to pk_syoscb::SYOSCB_COMPARE_NOT_GREEDY. All greed levels defined in src/syoscb_common.svh are valid values .

cl_syoscb_cfg.end_greediness

Greed level used when triggering comparisons in the UVM cleanup phase. Defaults to pk_syoscb::SYOSCB_COMPARE_GREEDY. All greed levels defined in src/syoscb_common.svh are valid values .

cl_syoscb_cfg.enable_no_insert_check

Raise an error if any queue has no insertions at the end of simulation. Defaults to being enabled (1'b1).

cl_syoscb_cfg.disable_clone

Controls whether sequence items added to the scoreboard are cloned to disallow future modification. Clones are enabled by default (1'b0).

cl_syoscb_cfg.disable_compare_after_error

Controls whether comparisons should be disabled after a UVM_ERROR has been triggered. Defaults to still comparing items (1'b0).

cl_syoscb_cfg.max_queue_size

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).

cl_syoscb_cfg.print_orphans_as_errors

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).

cl_syoscb_cfg.max_print_orphans

Control the maximum number of orphans that will be printed at end of simulation. Defaults to printing all orphans (0).

cl_syoscb_cfg.dump_orphans_to_files

Controls whether to dump orphans into log files at end of simulation. Defaults to not dumping orphans into log files (1'b0).

cl_syoscb_cfg.disable_report

Controls whether to disable the post-simulation report generated in the UVM report_phase. The report is enabled by default (1'b0).

cl_syoscb_cfg.enable_queue_stats

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).

cl_syoscb_cfg.full_scb_dump

Controls whether all transactions into the SCB should be dumped to a log file. Disabled by default (1'b0).

cl_syoscb_cfg.full_scb_dump_split

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.

cl_syoscb_cfg.full_scb_max_queue_size

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).

cl_syoscb_cfg.full_scb_dump_type

The type of file that the scoreboard should be dumped to. Can be either pk_syoscb::TXT (.txt file) or pk_syoscb::XML (.XML file supporting XML transforms).

cl_syoscb_cfg.orphan_dump_type

The type of file that orphans should be dumped to. Supports the same knobs as cl_syoscb_cfg.full_scb_dump_type.

cl_syoscb_cfg.full_scb_dump_file_name

Prefix to be used in filenames when dumping scoreboard contents. Defaults to "full_scb_dump".

cl_syoscb_cfg.orphan_dump_file_name

Prefix to be used in filenames when dumping orphans. Defaults to "orphan_dump".

cl_syoscb_cfg.ordered_next

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 Queue implementation notes).

cl_syoscb_cfg.hash_compare_check

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 t_hash_compare_check defined in src/syoscb_common.svh are valid values.

cl_syoscb_cfg.print_cfg

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).

cl_syoscb_cfg.enable_comparer_report

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.

cl_syoscb_cfg.default_enable_comparer_report

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).

cl_syoscb_cfg.comparers

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.

cl_syoscb_cfg.default_comparer

The default comparer used when no specific queue/producer specific comparer has been set.

cl_syoscb_cfg.printer_verbosity

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.

cl_syoscb_cfg.default_printer_verbosity

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).

cl_syoscb_cfg.printers

Per queue/producer configurable printer to be used when printing sequence items. If no specific printer has been set, uses the default printer instead.

cl_syoscb_cfg.default_printer

The default printer used when no specific printer has been set for a queue/producer combination. Defaults to being a uvm_default_printer.

cl_syoscb_cfg.max_search_window

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.

cl_syoscb_cfg.mutexed_add_item_enable

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).

cl_syoscb_cfg.queue_stat_interval

Per-queue knob that allows printing queue statistics (insertions, matches, flushed and remaining items) after every N insertions into that queue.

cl_syoscb_cfg.scb_stat_interval 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.

Issues not resolved with config knobs

Some configuration issues which are not resolved through cl_syoscb_cfg are listed here:

  1. Making the scoreboard stop after N compare errors:
    • 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:38
Find a documentation bug? Report bugs to: scoreboard@syosil.com