SyoSil ApS UVM Scoreboard
1.0.3.0
|
Class which represents the base concept of a hash queue. More...
Classes | |
struct | packed |
Typedef for struct representing whether an option with an iterator was valid. More... | |
struct | tp_item_digest |
Typedef for struct used to track items and their digests in the key queue. More... | |
Public Types | |
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 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 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 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. | |
Public Member Functions | |
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. | |
virtual bit | add_item (string producer, uvm_sequence_item item) |
Queue API: Adds a uvm_sequence_item to this queue. More... | |
virtual bit | delete_item (cl_syoscb_proxy_item_base proxy_item) |
Queue API: Deletes the item indicated by the proxy item from the queue. More... | |
virtual cl_syoscb_item | get_item (cl_syoscb_proxy_item_base proxy_item) |
Queue API: Gets the item pointed to by the proxy item from the queue. More... | |
virtual int unsigned | get_size () |
Queue API: Returns the current size of the queue. More... | |
virtual bit | empty () |
Queue API: Returns whether or not the queue is empty. More... | |
virtual bit | insert_item (string producer, uvm_sequence_item item, int unsigned idx) |
Queue API: Inserts a uvm_sequence_item at index idx. More... | |
virtual bit | delete_iterator (cl_syoscb_queue_iterator_base iterator) |
Queue API: Deletes an iterator from this queue. More... | |
![]() | |
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 | create_iterator (string name="") |
Queue API: Creates an iterator for this 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 cl_syoscb_queue_locator_base | get_locator () |
Queue API: Creates a locator for this queue. 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... | |
Protected Member Functions | |
virtual void | do_flush_queue () |
See cl_syoscb_queue_base::do_flush_queue for more details. | |
virtual void | do_flush_queue () |
Performs the actual element deletion from the queue when called by flush_queue. | |
![]() | |
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 | |
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. | |
![]() | |
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. | |
Additional Inherited Members | |
![]() | |
cl_syoscb_item | shadow_items [$] |
Shadow queue tracking all items inserted into the queue, used for scoreboard dumps. | |
Class which represents the base concept of a hash queue.
All hash queues must extend this class and implement the queue API.
Definition at line 3 of file cl_syoscb_queue_hash.svh.
|
virtual |
Queue API: Adds a uvm_sequence_item to this queue.
The basic job of the add_item method is:
producer | The producer of the sequence item |
item | The item that should be add to the queue |
Reimplemented from cl_syoscb_queue_base.
|
virtual |
Queue API: Deletes the item indicated by the proxy item from the queue.
The basic job of the delete_item method is:
proxy_item | A proxy item indicating which scoreboard item to delete from the queue |
Reimplemented from cl_syoscb_queue_base.
|
virtual |
Queue API: Deletes an iterator from this queue.
iterator | The iterator to delete |
Reimplemented from cl_syoscb_queue_base.
|
virtual |
Queue API: Returns whether or not the queue is empty.
Reimplemented from cl_syoscb_queue_base.
|
virtual |
Queue API: Gets the item pointed to by the proxy item from the queue.
If the proxy item does not specify a valid item in the queue, print a UVM_INFO/DEBUG message
proxy_item | A proxy item indicating which scoreboard item to delete from the queue |
Reimplemented from cl_syoscb_queue_base.
|
virtual |
Get the list of hash values of items in the queue.
Definition at line 325 of file cl_syoscb_queue_hash.svh.
Referenced by cl_syoscb_queue_iterator_hash< pk_syoscb::MD5_HASH_DIGEST_WIDTH >::get_item_proxy(), cl_syoscb_queue_iterator_hash< pk_syoscb::MD5_HASH_DIGEST_WIDTH >::next(), and cl_syoscb_queue_iterator_hash< pk_syoscb::MD5_HASH_DIGEST_WIDTH >::previous().
|
virtual |
Queue API: Returns the current size of the queue.
Reimplemented from cl_syoscb_queue_base.
|
virtual |
Queue API: Inserts a uvm_sequence_item at index idx.
The method works in the same manner as add_item, by doing the following:
producer | The producer of the sequence item |
item | The item that should be add to the queue |
idx | The index at which the item should be inserted |
Reimplemented from cl_syoscb_queue_base.
|
protected |
List of hash values of the items in the queue.
Only used if cl_syoscb_cfg::ordered_next is 1.
Definition at line 39 of file cl_syoscb_queue_hash.svh.
Referenced by cl_syoscb_queue_hash< pk_syoscb::MD5_HASH_DIGEST_WIDTH >::add_item(), cl_syoscb_queue_hash< pk_syoscb::MD5_HASH_DIGEST_WIDTH >::delete_item(), cl_syoscb_queue_hash< pk_syoscb::MD5_HASH_DIGEST_WIDTH >::do_flush_queue(), cl_syoscb_queue_hash< pk_syoscb::MD5_HASH_DIGEST_WIDTH >::get_key_queue(), and cl_syoscb_queue_hash< pk_syoscb::MD5_HASH_DIGEST_WIDTH >::insert_item().
![]() |
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 Version: 1.8.14 Generated with IDV SV Filter Version: 2.6.3 Fri Sep 2 2022 14:41:09 |