SyoSil ApS UVM Scoreboard
1.0.3.0
|
The compare procedure consists of finding the same element in all queues in the scoreboard. One queue is selected as the primary queue, and an attempt is then made to find the first element from the primary queue in all other queues. Whenever a match is found, these elements are removed from the queues.
The compare mechanism is triggered whenever an element is inserted into a queue, leading to all queues being non-empty (if one or more queues are empty after insertion, there cannot be a match and no comparison is performed). The figure below shows an OOO-compare being performed after an item is inserted into Q3.
The compare can be disabled after the first UVM_ERROR if the cl_syoscb_cfg.disable_compare_after_error configuration knob is set to 1'b1.
A UVM_ERROR is obtained on a number of occasions:
The table below outlines the differences between the available comparison strategies.
Compare method | Description |
---|---|
cl_syoscb_compare_ooo | Elements do not have to be in the same order. Standard queue: In order to find a match it has to loop through all queue items. MD5 queue: In order to find a match it only has to check if the hash value is in the associative array. |
cl_syoscb_compare_io | Elements have to be in the same order. |
cl_syoscb_compare_io_2hp | Only two queues in scoreboard. Elements have to be in the same order. |
cl_syoscb_compare_iop | Elements from the same producer have to be in the same order. |
If you require a custom comparison behaviour which is not covered by the included compare algorithms, a new algorithm can be implemented by extending cl_syoscb_compare_base and implementing the necessary methods labeled with Compare Strategy API.
Included below is a flowchart of the general compare flow. This can be used as a starting point when implementing new compare algorithms.
![]() |
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:40:38 |