SyoSil ApS UVM Scoreboard  1.0.3.0
Public Member Functions | List of all members
cl_syoscb_queue_hash_md5 Class Reference

MD5 implementation of a hash queue which optimizes the OOO compare. More...

+ Inheritance diagram for cl_syoscb_queue_hash_md5:
+ Collaboration diagram for cl_syoscb_queue_hash_md5:

Public Member Functions

virtual cl_syoscb_queue_iterator_base create_iterator (string name="")
 Queue API: See cl_syoscb_queue_base::create_iterator for more details
 
virtual cl_syoscb_queue_locator_base get_locator ()
 Queue API: See cl_syoscb_queue_base::create_iterator for more details
 
virtual cl_syoscb_queue_iterator_base create_iterator (string name="")
 Queue API: Creates an iterator for this queue. More...
 
virtual cl_syoscb_queue_locator_base get_locator ()
 Queue API: Creates a locator for this queue. More...
 
- Public Member Functions inherited from cl_syoscb_queue_hash< pk_syoscb::MD5_HASH_DIGEST_WIDTH >
virtual bit add_item (string producer, uvm_sequence_item item)
 Queue API: See cl_syoscb_queue_base::add_item for more details
 
virtual bit delete_item (cl_syoscb_proxy_item_base proxy_item)
 Queue API: See cl_syoscb_queue_base::delete_item for more details
 
virtual cl_syoscb_item get_item (cl_syoscb_proxy_item_base proxy_item)
 Queue API: See cl_syoscb_queue_base::get_item for more details
 
virtual int unsigned get_size ()
 Queue API: See cl_syoscb_queue_base::get_size for more details.
 
virtual bit empty ()
 Queue API: See cl_syoscb_queue_base::empty for more details
 
virtual bit insert_item (string producer, uvm_sequence_item item, int unsigned idx)
 Queue API: See cl_syoscb_queue_base::insert_item for more details
 
virtual bit delete_iterator (cl_syoscb_queue_iterator_base iterator)
 Queue API: See cl_syoscb_queue_base::delete_iterator for more details
 
virtual tp_queue_of_keys get_key_queue ()
 Get the list of hash values of items in the queue. More...
 
virtual tp_aa_hash get_hash ()
 Gets the hash AA wrapper used for this queue.
 
- Public Member Functions inherited from cl_syoscb_queue_base
void build_phase (uvm_phase phase)
 UVM Build Phase. Gets the scoreboard configuration for this SCB.
 
void check_phase (uvm_phase phase)
 UVM check phase. More...
 
virtual void dump (uvm_printer printer=null, int fd=UVM_STDOUT)
 Queue API: Loop over all the items in the shadow queue and dump them. More...
 
virtual void flush_queue ()
 Queue API: Deletes all elements from the queue. More...
 
virtual cl_syoscb_queue_iterator_base get_iterator (string name)
 Queue API: Gets the iterator from this queue with a given name. More...
 
virtual bit exists_cnt_producer (string producer)
 Queue API: Check if a given producer exists in the producer counter for this queue More...
 
virtual int unsigned get_cnt_producer (string producer)
 Queue API: Get the producer count for a given producer. More...
 
virtual int unsigned get_cnt_add_item ()
 Queue API: Returns the number of items that have been inserted in this queue
 
virtual int unsigned get_max_items ()
 Queue API: Returns the maximum number of elements that have been in the queue.
 
virtual int unsigned get_cnt_flushed_item ()
 Queue API: Returns the total number of elements flushed from this queue.
 
virtual int unsigned get_cnt_matched_item ()
 Queue API: Returns the total number of elements matched in this queue
 
virtual cl_syoscb_item get_last_inserted_item ()
 Queue API: Gets the last inserted item in the queue
 
virtual string get_failed_checks ()
 Queue API: Gets a string containing all queue checks that this queue have failed. More...
 
virtual string create_queue_report (int unsigned offset, int unsigned first_column_width)
 Queue API: Returns a string with overall queues statistics. More...
 

Additional Inherited Members

- Public Types inherited from cl_syoscb_queue_hash< pk_syoscb::MD5_HASH_DIGEST_WIDTH >
typedef cl_syoscb_hash_base< HASH_DIGEST_WIDTH >::tp_hash_digest tp_digest
 Typedef for hash algorithm digests.
 
typedef cl_syoscb_hash_base< HASH_DIGEST_WIDTH >::tp_hash_digest tp_digest
 Typedef for hash algorithm digests.
 
typedef tp_item_digest tp_queue_of_keys[$]
 Typedef for queue of digests and items.
 
typedef tp_item_digest tp_queue_of_keys[$]
 Typedef for queue of digests and items.
 
typedef cl_syoscb_hash_aa_wrapper< HASH_DIGEST_WIDTH > tp_aa_hash
 Typedef for parameterized AA wrapper.
 
typedef cl_syoscb_hash_aa_wrapper< HASH_DIGEST_WIDTH > tp_aa_hash
 Typedef for parameterized AA wrapper.
 
typedef struct cl_syoscb_queue_hash::packed tp_return_digest
 Typedef for struct representing whether an option with an iterator was valid.
 
typedef struct cl_syoscb_queue_hash::packed tp_return_digest
 Typedef for struct representing whether an option with an iterator was valid.
 
- Public Attributes inherited from cl_syoscb_queue_base
cl_syoscb_item shadow_items [$]
 Shadow queue tracking all items inserted into the queue, used for scoreboard dumps.
 
- Protected Member Functions inherited from cl_syoscb_queue_hash< pk_syoscb::MD5_HASH_DIGEST_WIDTH >
virtual void do_flush_queue ()
 See cl_syoscb_queue_base::do_flush_queue for more details.
 
- Protected Member Functions inherited from cl_syoscb_queue_base
virtual cl_syoscb_item pre_add_item (string producer, uvm_sequence_item item)
 Perform some basic bookkeeping that is the same for all sequence items before insertion. More...
 
virtual void post_add_item (cl_syoscb_item item)
 Perform some basic bookkeping that is the same for all sequence items after insertion. More...
 
virtual void incr_cnt_producer (string producer)
 Increment the producer counter for a given producer. More...
 
virtual void decr_cnt_producer (string producer)
 Decrement the producer counter for a given producer. More...
 
virtual void dump_orphans_to_file ()
 Dumps orphans remaining in the queue into a logfile. More...
 
virtual void dump_orphans_to_stdout ()
 Prints orphans remaining in the queue to stdout. More...
 
virtual string create_producer_stats (int unsigned offset, int unsigned first_column_width)
 Returns a table with statistics for all producers in this queue. More...
 
virtual string get_dump_extension (t_dump_type dump_type)
 Gets the file extension to be used for a dump file. More...
 
virtual void print_orphan_xml_header (int fd)
 Prints the header for an XML orphan dump. More...
 
virtual void print_orphan_xml_footer (int fd)
 Prints the footer for an XML orphan dump. More...
 
- Protected Attributes inherited from cl_syoscb_queue_hash< pk_syoscb::MD5_HASH_DIGEST_WIDTH >
cl_syoscb_hash_base< HASH_DIGEST_WIDTH > hash_algo
 Handle to the implemented hash algorithm.
 
cl_syoscb_hash_aa_wrapper< HASH_DIGEST_WIDTH > hash
 Queue implementation with an assosiative array. Wrapped in a class for performance reasons.
 
tp_item_digest key_queue [$]
 List of hash values of the items in the queue. More...
 
int unsigned size
 Size of queue, stored here to optimize for speed.
 
- Protected Attributes inherited from cl_syoscb_queue_base
cl_syoscb_cfg cfg
 Handle to the configuration.
 
cl_syoscb_queue_iterator_base iterators [cl_syoscb_queue_iterator_base]
 List of iterators registered with this queue.
 
semaphore iter_sem
 Semaphore guarding exclusive access to the queue when multiple iterators are in play.
 
int unsigned cnt_producer [string]
 Associative array counting the number of items by a given producer that currently exist in the queue.
 
int unsigned cnt_add_item = 0
 Number of items that have been inserted into this queue.
 
int unsigned max_items = 0
 Maximum number of items that have been in this queue so far.
 
cl_syoscb_item last_inserted_item
 The most recently inserted item in this queue.
 
int num_iters_created = 0
 The number of iterators that have been created for this queue so far.
 

Detailed Description

MD5 implementation of a hash queue which optimizes the OOO compare.

The queue implements the queue API as defined by cl_syoscb_queue_base.

Definition at line 3 of file cl_syoscb_queue_hash_md5.svh.

Member Function Documentation

◆ create_iterator()

virtual cl_syoscb_queue_iterator_base cl_syoscb_queue_hash_md5::create_iterator ( string  name = "")
virtual

Queue API: Creates an iterator for this queue.

Iterators are by default named "[name]_iter[X]", where [name] is the name of the queue, and [X] is the number of iterators that have previusly been created for this queue

Parameters
nameA name to be used for the iterator. If an iterator with this name already exists, prints a UVM_DEBUG message
Returns
An iterator over this queue, or null if a queue with the requested name already exists

Reimplemented from cl_syoscb_queue_base.

◆ get_locator()

virtual cl_syoscb_queue_locator_base cl_syoscb_queue_hash_md5::get_locator ( )
virtual

Queue API: Creates a locator for this queue.

Returns
A locator over this queue

Reimplemented from cl_syoscb_queue_base.


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