SyoSil ApS UVM Scoreboard  1.0.3.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
cl_syoscbs_base Class Reference

Base class for a wrapper around multiple SyoSil Scoreboards. More...

+ Inheritance diagram for cl_syoscbs_base:
+ Collaboration diagram for cl_syoscbs_base:

Public Member Functions

virtual void build_phase (uvm_phase phase)
 UVM build phase. More...
 
virtual void connect_phase (uvm_phase phase)
 UVM connect phase. syoscbs_base only calls super.connect_phase.
 
virtual void report_phase (uvm_phase phase)
 UVM report_phase. More...
 
virtual cl_syoscbs_cfg get_cfg ()
 Gets the configuration object associated with this scoreboard wrapper.
 
virtual cl_syoscb get_scb (int unsigned idx)
 Scoreboard Wrapper API: Get a handle to a scoreboard inside this wrapper More...
 
virtual void flush_queues_all ()
 Scoreboard Wrapper API: Flush all queues of all scoreboards.
 
virtual void flush_queues_by_index (int unsigned idxs[]={}, string queue_names[]={})
 Scoreboard Wrapper API: Flush the queues indicated by queue_names of the scoreboards with indexes idxs. More...
 
virtual void flush_queues_by_name (string scb_names[]={}, string queue_names[]={})
 Scoreboard Wrapper API: Flush the queues indicated by queue_names of the scoreboards with names scb_names. More...
 
virtual void compare_control_all (bit cc)
 Scoreboard Wrapper API: Disable or enable the compare in all scoreboards. More...
 
virtual void compare_control_by_index (int unsigned idxs[]={}, bit cc)
 Scoreboard Wrapper API: Disable or enable the compare in scoreboards with given indexes. More...
 
virtual void compare_control_by_name (string scb_names[]={}, bit cc)
 Scoreboard Wrapper API: Disable or enable the compare in scoreboards with given names. More...
 
virtual string create_report (int unsigned offset, int unsigned first_column_width)
 Scoreboard Wrapper API: Creates a summary report once simulation has finished. More...
 
virtual uvm_component get_filter_trfm_base (string queue_name, string producer_name, int unsigned idx)
 Scoreboard Wrapper API: Gets a handle to a filter transform as a uvm_component. More...
 
virtual void do_print (uvm_printer printer)
 Implementation of UVM do_print-hmethod Prints information of all wrapped scoreboards, as well as all filter transforms. More...
 

Protected Member Functions

virtual string create_scb_stats (int unsigned offset, int unsigned first_column_width)
 Returns a string containing the tables with statistics of the different scoreboards. More...
 
virtual void create_filters (int unsigned idx, cl_syoscb_cfg cfg)
 Create all filter transforms for the given scoreboard. More...
 
virtual void connect_filters (int unsigned idx, cl_syoscb_cfg cfg)
 Connects all filter transforms with their respective subscribers in the scoreboard. More...
 
virtual void create_filter (string queue_name, string producer_name, int unsigned idx)
 Creates a filter for given scoreboard/queue name/producer combination. More...
 
virtual void connect_filter_and_subscriber (string queue_name, string producer_name, int unsigned idx)
 Connects a filter's output to a scoreboard's subscriber. More...
 
virtual string create_total_stats (int unsigned offset, int unsigned first_column_width)
 Returns a table with summed scoreboard statistics for all wrapped scoreboards. More...
 
virtual string get_scb_failed_checks ()
 Gets information on whether any of the wrapped scoreboards failed to pass error checks. More...
 

Protected Attributes

cl_syoscb scbs []
 Array holding handles to all scoreboards.
 
cl_syoscbs_cfg cfg
 Handle to scoreboard wrapper configuration object.
 
uvm_component fts [][string][string]
 Array holding handles to filter transforms, used to transform inputs of one type to outputs of another type, for feeding into the wrapped scoreboards. More...
 

Detailed Description

Base class for a wrapper around multiple SyoSil Scoreboards.

An implementation is found in cl_syoscbs_base

Definition at line 3 of file cl_syoscbs_base.svh.

Member Function Documentation

◆ build_phase()

void cl_syoscbs_base::build_phase ( uvm_phase  phase)
virtual

UVM build phase.

Receives a cl_syoscbs_cfg object, creates wrapped scoreboards and their configuration objects, forwards configuration objects to each wrapped scoreboard.

Reimplemented in cl_syoscbs< FIN >, and cl_syoscbs< FIN >.

Definition at line 87 of file cl_syoscbs_base.svh.

References cl_syoscbs_cfg::get_cfg(), cl_syoscbs_cfg::get_no_scbs(), cl_syoscbs_cfg::get_print_cfg(), cl_syoscb_cfg::get_scb_name(), cl_syoscbs_cfg::get_scbs_name(), and cl_syoscbs_cfg::set_scbs_name().

◆ compare_control_all()

void cl_syoscbs_base::compare_control_all ( bit  cc)
virtual

Scoreboard Wrapper API: Disable or enable the compare in all scoreboards.

Parameters
ccCompare control bit. If 0b1, enables compare in all scoreboards. If 10b0, disables compare

Definition at line 288 of file cl_syoscbs_base.svh.

References compare_control_by_index().

◆ compare_control_by_index()

void cl_syoscbs_base::compare_control_by_index ( int unsigned  idxs[] = {},
bit  cc 
)
virtual

Scoreboard Wrapper API: Disable or enable the compare in scoreboards with given indexes.

If no indexes are specified, all scoreboards are affected.

Parameters
idxsThe indexes of the scoreboards to enable/disable compare control for
ccCompare control bit. If 0b1, enables compare in all scoreboards. If 10b0, disables compare

Definition at line 296 of file cl_syoscbs_base.svh.

Referenced by compare_control_all().

◆ compare_control_by_name()

void cl_syoscbs_base::compare_control_by_name ( string  scb_names[] = {},
bit  cc 
)
virtual

Scoreboard Wrapper API: Disable or enable the compare in scoreboards with given names.

If no names are specified, all scoreboards are affected.

Parameters
scb_namesThe names of the scoreboards to enable/disable compare control for
ccCompare control bit. If 0b1, enables compare in all scoreboards. If 10b0, disables compare

Definition at line 312 of file cl_syoscbs_base.svh.

◆ connect_filter_and_subscriber()

void cl_syoscbs_base::connect_filter_and_subscriber ( string  queue_name,
string  producer_name,
int unsigned  idx 
)
protectedvirtual

Connects a filter's output to a scoreboard's subscriber.

Parameters
queue_nameThe name of the queue to connect the filter to
producer_nameThe name of the producer that produced data going into this filter
fts_idxThe index of the scoreboard in which this queue exists
Note
Abstract method, will throw UVM_FATAL if called. Must override in a child class

Definition at line 479 of file cl_syoscbs_base.svh.

Referenced by connect_filters().

◆ connect_filters()

void cl_syoscbs_base::connect_filters ( int unsigned  idx,
cl_syoscb_cfg  cfg 
)
protectedvirtual

Connects all filter transforms with their respective subscribers in the scoreboard.

Should be called in the UVM connect phase

Parameters
idxIndex of the scoreboard for which all filters should be connected
cfgThe configuration object for that scoreboard

Definition at line 451 of file cl_syoscbs_base.svh.

References cfg, connect_filter_and_subscriber(), and cl_syoscb_cfg_pl::list.

Referenced by cl_syoscbs< FIN >::connect_phase().

◆ create_filter()

void cl_syoscbs_base::create_filter ( string  queue_name,
string  producer_name,
int unsigned  idx 
)
protectedvirtual

Creates a filter for given scoreboard/queue name/producer combination.

Parameters
queue_nameThe name of the queue to connect the filter to
producer_nameThe name of the producer that produced data going into this filter
idxThe index of the scoreboard in which this queue exists
Note
Abstract method. Must override in a child class to create filters of the correct type

Definition at line 468 of file cl_syoscbs_base.svh.

Referenced by create_filters().

◆ create_filters()

void cl_syoscbs_base::create_filters ( int unsigned  idx,
cl_syoscb_cfg  cfg 
)
protectedvirtual

Create all filter transforms for the given scoreboard.

Should be called in the UVM build phase

Parameters
idxIndex of the scoreboard to create filters for
cfgThe configuration object for that scoreboard

Definition at line 434 of file cl_syoscbs_base.svh.

References cfg, create_filter(), and cl_syoscb_cfg_pl::list.

Referenced by cl_syoscbs< FIN >::build_phase().

◆ create_report()

string cl_syoscbs_base::create_report ( int unsigned  offset,
int unsigned  first_column_width 
)
virtual

Scoreboard Wrapper API: Creates a summary report once simulation has finished.

The report contains insert/match/flush/orphan statistics for the wrapped scoreboards. If the cl_syoscb_cfg::gen_enable_scb_stats configuration knob is active then the report of the different queues in each scoreboard is also included. At the end of the report is a table with the statistics of all scoreboards.

Parameters
offsetHorizontal offset at which text should start
first_column_widthThe width of the first column in the output table
Returns
A string containing the entire report, ready to print

Definition at line 347 of file cl_syoscbs_base.svh.

References create_scb_stats(), create_total_stats(), and cl_syoscb_string_library::scb_separator_str().

Referenced by report_phase().

◆ create_scb_stats()

string cl_syoscbs_base::create_scb_stats ( int unsigned  offset,
int unsigned  first_column_width 
)
protectedvirtual

Returns a string containing the tables with statistics of the different scoreboards.

If the cl_syoscbs_cfg::enable_scb_stats configuration knob is active for a given scoreboard, the report of the individual queues of that scoreboard is also included.

Parameters
offsetHorizontal offset at which text should start. Depends on the level of nested calls (see cl_syoscbs_base::report_phase implementation)
first_column_widthThe width of the first column in the output table
Returns
A string containing the table

Definition at line 396 of file cl_syoscbs_base.svh.

References cl_syoscb::create_report_contents(), cl_syoscb::create_total_stats(), cl_syoscbs_cfg::get_enable_scb_stats(), and cl_syoscb_string_library::scb_separator_str().

Referenced by create_report().

◆ create_total_stats()

string cl_syoscbs_base::create_total_stats ( int unsigned  offset,
int unsigned  first_column_width 
)
protectedvirtual

Returns a table with summed scoreboard statistics for all wrapped scoreboards.

Parameters
offsetHorizontal offset at which text should start
first_column_widthThe width of the first column in the output table
Returns
A string containing the table

Definition at line 363 of file cl_syoscbs_base.svh.

References cl_syoscb::get_total_cnt_add_items(), cl_syoscb::get_total_cnt_flushed_items(), cl_syoscb::get_total_queue_size(), and cl_syoscb_string_library::pad_str().

Referenced by create_report().

◆ do_print()

void cl_syoscbs_base::do_print ( uvm_printer  printer)
virtual

Implementation of UVM do_print-hmethod Prints information of all wrapped scoreboards, as well as all filter transforms.

Parameters
printerThe UVM printer to use

Definition at line 489 of file cl_syoscbs_base.svh.

References fts, and scbs.

◆ flush_queues_by_index()

void cl_syoscbs_base::flush_queues_by_index ( int unsigned  idxs[] = {},
string  queue_names[] = {} 
)
virtual

Scoreboard Wrapper API: Flush the queues indicated by queue_names of the scoreboards with indexes idxs.

If no indexes are specified, all scoreboards will be affected by the flush. If no queue names are specified all queues are flushed.

Parameters
idxsindexes of the scoreboards to flush
queue_namesNames of the queues under those scoreboards to flush

Definition at line 225 of file cl_syoscbs_base.svh.

Referenced by flush_queues_all().

◆ flush_queues_by_name()

void cl_syoscbs_base::flush_queues_by_name ( string  scb_names[] = {},
string  queue_names[] = {} 
)
virtual

Scoreboard Wrapper API: Flush the queues indicated by queue_names of the scoreboards with names scb_names.

If no scoreboard names are specified all the scoreboards will be affected by the flush. If no queue names are specified all queues are flushed.

Parameters
scb_namesNames of the scoreboards to flush
queue_namesNames of the queues under those scoreboards to flush

Definition at line 259 of file cl_syoscbs_base.svh.

◆ get_filter_trfm_base()

uvm_component cl_syoscbs_base::get_filter_trfm_base ( string  queue_name,
string  producer_name,
int unsigned  idx 
)
virtual

Scoreboard Wrapper API: Gets a handle to a filter transform as a uvm_component.

The end user must typecast this uvm_component to the correct type, based on the kind of filter transforms that is implemented

Parameters
queue_nameThe name of the queue to connect the filter to
producer_nameThe name of the producer that produced data going into this filter
fts_idxThe index of the scoreboard in which this queue exists
Returns
A uvm_component which represents a filter, if all parameters are valid. If the parameters do not specify a valid filter, returns null and prints a UVM_INFO/DEBUG message

Definition at line 194 of file cl_syoscbs_base.svh.

Referenced by cl_syoscbs< FIN >::get_filter_trfm().

◆ get_scb()

cl_syoscb cl_syoscbs_base::get_scb ( int unsigned  idx)
virtual

Scoreboard Wrapper API: Get a handle to a scoreboard inside this wrapper

Parameters
idxThe index of that scoreboard
Returns
A handle to scoreboard [idx]. If idx >= number of scoreboards, throws a uvm_fatal error

Definition at line 175 of file cl_syoscbs_base.svh.

◆ get_scb_failed_checks()

string cl_syoscbs_base::get_scb_failed_checks ( )
protectedvirtual

Gets information on whether any of the wrapped scoreboards failed to pass error checks.

These error checks include orphan checking and no-insertion checks.

Returns
A string combining the error checks of all queues.

Definition at line 417 of file cl_syoscbs_base.svh.

References cl_syoscb::get_failed_checks().

Referenced by report_phase().

◆ report_phase()

void cl_syoscbs_base::report_phase ( uvm_phase  phase)
virtual

Member Data Documentation

◆ fts

uvm_component cl_syoscbs_base::fts
protected

Array holding handles to filter transforms, used to transform inputs of one type to outputs of another type, for feeding into the wrapped scoreboards.

Declared as type uvm_component for flexibility. See example of implementation in cl_syoscbs_base. AA is indexed by [scb_idx][queue_name][producer_name]

Definition at line 18 of file cl_syoscbs_base.svh.

Referenced by cl_syoscbs< FIN >::connect_phase(), and do_print().


The documentation for this class was generated from the following files:

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:41:16
Find a documentation bug? Report bugs to: scoreboard@syosil.com