OpenCores
URL https://opencores.org/ocsvn/lpffir/lpffir/trunk

Subversion Repositories lpffir

[/] [lpffir/] [trunk/] [uvm/] [tools/] [uvm_syoscb/] [docs/] [html/] [pImplementationNotes.html] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 vladimirar
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml">
4
<head>
5
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6
<title>SyoSil ApS UVM Scoreboard: Implementation notes</title>
7
<link href="tabs.css" rel="stylesheet" type="text/css"/>
8
<link href="search/search.css" rel="stylesheet" type="text/css"/>
9
<script type="text/javaScript" src="search/search.js"></script>
10
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
11
</head>
12
<body onload='searchBox.OnSelectItem(0);'>
13
<!-- Generated by Doxygen 1.6.1 -->
14
<script type="text/javascript"><!--
15
var searchBox = new SearchBox("searchBox", "search",false,'Search');
16
--></script>
17
<script type="text/javascript">
18
<!--
19
function changeDisplayState (e){
20
  var num=this.id.replace(/[^[0-9]/g,'');
21
  var button=this.firstChild;
22
  var sectionDiv=document.getElementById('dynsection'+num);
23
  if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
24
    sectionDiv.style.display='block';
25
    button.src='open.gif';
26
  }else{
27
    sectionDiv.style.display='none';
28
    button.src='closed.gif';
29
  }
30
}
31
function initDynSections(){
32
  var divs=document.getElementsByTagName('div');
33
  var sectionCounter=1;
34
  for(var i=0;i<divs.length-1;i++){
35
    if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
36
      var header=divs[i];
37
      var section=divs[i+1];
38
      var button=header.firstChild;
39
      if (button!='IMG'){
40
        divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
41
        button=document.createElement('img');
42
        divs[i].insertBefore(button,divs[i].firstChild);
43
      }
44
      header.style.cursor='pointer';
45
      header.onclick=changeDisplayState;
46
      header.id='dynheader'+sectionCounter;
47
      button.src='closed.gif';
48
      section.id='dynsection'+sectionCounter;
49
      section.style.display='none';
50
      section.style.marginLeft='14px';
51
      sectionCounter++;
52
    }
53
  }
54
}
55
window.onload = initDynSections;
56
-->
57
</script>
58
<div class="navigation" id="top">
59
  <div class="tabs">
60
    <ul>
61
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
62
      <li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
63
      <li><a href="annotated.html"><span>Classes</span></a></li>
64
      <li><a href="files.html"><span>Files</span></a></li>
65
      <li><a href="dirs.html"><span>Directories</span></a></li>
66
      <li>
67
        <div id="MSearchBox" class="MSearchBoxInactive">
68
        <img id="MSearchSelect" src="search/search.png"
69
             onmouseover="return searchBox.OnSearchSelectShow()"
70
             onmouseout="return searchBox.OnSearchSelectHide()"
71
             alt=""/>
72
        <input type="text" id="MSearchField" value="Search" accesskey="S"
73
             onfocus="searchBox.OnSearchFieldFocus(true)"
74
             onblur="searchBox.OnSearchFieldFocus(false)"
75
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
76
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
77
        </div>
78
      </li>
79
    </ul>
80
  </div>
81
</div>
82
<div class="contents">
83
 
84
 
85
<h1><a class="anchor" id="pImplementationNotes">Implementation notes </a></h1><h2><a class="anchor" id="sAPIs">
86
Implementation APIs</a></h2>
87
<p>The following APIs have been defined for easy extension fo the scoreboard classes:</p>
88
<ol type="1">
89
<li>Configuration API: <a class="el" href="classcl__syoscb__cfg.html" title="Configuration class for the SyoSil UVM scoreboard.">cl_syoscb_cfg</a></li>
90
<li>Item API: <a class="el" href="classcl__syoscb__item.html" title="The UVM scoreboard item.">cl_syoscb_item</a></li>
91
<li>Queue API: <a class="el" href="classcl__syoscb__queue.html" title="Class which base concet of a queue.">cl_syoscb_queue</a></li>
92
<li>Compare API: <a class="el" href="classcl__syoscb__compare__base.html" title="Base class for all comapre algorithms.">cl_syoscb_compare_base</a></li>
93
<li>Subscriber API: <a class="el" href="classcl__syoscb__subscriber.html" title="Generic subscriber for the scoreboard.">cl_syoscb_subscriber</a></li>
94
<li>Iterator API: <a class="el" href="classcl__syoscb__queue__iterator__base.html" title="Queue iterator base class defining the iterator API used for iterating queues.">cl_syoscb_queue_iterator_base</a></li>
95
</ol>
96
<h2><a class="anchor" id="sGeneralErrorHandling">
97
General error handling</a></h2>
98
<p>In general when a lower level method detects an error then two concepts are used. Primarily, the method will either issue a UVM info with some information about what went wrong or issue a UVM error/fatal immediately. The first one will then return <b>1'b0</b> to signal that something went wrong. Thus, it is up to the parent levels to catch the error and convert them into UVM errors/fatals etc. This method was chosen since the parent level typically provides more and better information when things go wrong. </p>
99
<h2><a class="anchor" id="sErrorCategories">
100
Error categories</a></h2>
101
<p>There are several ERROR categories. The following table lists them with some explanation:</p>
102
<table border="1" cellspacing="3" cellpadding="3">
103
<tr>
104
<th><p>Error Category </p>
105
</th><th><p>Description  </p>
106
</th></tr>
107
<tr>
108
<td><p>IMPL_ERROR </p>
109
</td><td><p>Implementation error. Something is really broken  </p>
110
</td></tr>
111
<tr>
112
<td><p>QUEUE_ERROR </p>
113
</td><td><p>A queue related error, e.g. the queue could not be found  </p>
114
</td></tr>
115
<tr>
116
<td><p>CFG_ERROR </p>
117
</td><td><p>Configuration error. Usually, because the configuration object is missing  </p>
118
</td></tr>
119
<tr>
120
<td><p>TYPE_ERROR </p>
121
</td><td><p>Type error. Typically issued when $cast() fails  </p>
122
</td></tr>
123
<tr>
124
<td><p>COMPARE_ERROR </p>
125
</td><td><p>Compare error. Issued, e.g. when the in order compare fails  </p>
126
</td></tr>
127
<tr>
128
<td><p>SUBSCRIBER_ERROR </p>
129
</td><td><p>Subscriber error. Issued, e.g. when the call to <a class="el" href="classcl__syoscb.html#a1d3983a0946cc4e38f74b249b5bb0e16" title="Returns a UVM subscriber for a given combination of queue and producer The returned...">cl_syoscb::get_subscriber()</a> fails  </p>
130
</td></tr>
131
</table>
132
<h2><a class="anchor" id="sMultipleQueueRefs">
133
Multiple queue references</a></h2>
134
<p>Both the top level class <a class="el" href="classcl__syoscb.html" title="Top level class implementing the root of the SyoSil UVM scoreboard.">cl_syoscb</a> and the configuration class <a class="el" href="classcl__syoscb__cfg.html" title="Configuration class for the SyoSil UVM scoreboard.">cl_syoscb_cfg</a> contains handles to all queues. The former uses an ordinary array which provides a fast way of looping over the queues and the latter an associative which makes it easy to find a queue using only its name. </p>
135
</div>
136
<!--- window showing the filter options -->
137
<div id="MSearchSelectWindow"
138
     onmouseover="return searchBox.OnSearchSelectShow()"
139
     onmouseout="return searchBox.OnSearchSelectHide()"
140
     onkeydown="return searchBox.OnSearchSelectKey(event)">
141
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Variables</a></div>
142
 
143
<!-- iframe showing the search results (closed by default) -->
144
<div id="MSearchResultsWindow">
145
<iframe src="" frameborder="0"
146
        name="MSearchResults" id="MSearchResults">
147
</iframe>
148
</div>
149
 
150
<!--*************************************************************************-->
151
<!-- $Id: idv_dox_footer.html 136 2010-05-31 19:13:27Z seanoboyle $          -->
152
<!--*************************************************************************-->
153
<!--   This program is free software: you can redistribute it and/or modify  -->
154
<!--   it under the terms of the GNU General Public License as published by  -->
155
<!--   the Free Software Foundation, either version 3 of the License, or     -->
156
<!--   (at your option) any later version.                                   -->
157
<!--                                                                         -->
158
<!--   This program is distributed in the hope that it will be useful,       -->
159
<!--   but WITHOUT ANY WARRANTY; without even the implied warranty of        -->
160
<!--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         -->
161
<!--   GNU General Public License for more details.                          -->
162
<!--                                                                         -->
163
<!--   You should have received a copy of the GNU General Public License     -->
164
<!--   along with this program.  If not, see http://www.gnu.org/licenses/.   -->
165
<!--                                                                         -->
166
<!--*************************************************************************-->
167
<!-- Title:        IDV Doxygen Footer File                                   -->
168
<!-- Description:  This file is a doxygen footer with the IDV logo and a     -->
169
<!--               and a reference to the GNU FDL License.                   -->
170
<!--                                                                         -->
171
<!-- Original Author: Sean O'Boyle                                           -->
172
<!-- Contact:         seanoboyle@intelligentdv.com                           -->
173
<!-- Company:         Intelligent Design Verification                        -->
174
<!-- Company URL:     http://intelligentdv.com                               -->
175
<!--                                                                         -->
176
<!-- Download the most recent version here:                                  -->
177
<!--                  http://intelligentdv.com/downloads                     -->
178
<!--                                                                         -->
179
<!-- File Bugs Here:  http://bugs.intelligentdv.com                          -->
180
<!--        Project:  DoxygenFilterSV                                        -->
181
<!--                                                                         -->
182
<!-- File: idv_dox_header.xml                                                -->
183
<!-- $LastChangedBy: seanoboyle $                                            -->
184
<!-- $LastChangedDate: 2010-05-31 12:13:27 -0700 (Mon, 31 May 2010) $        -->
185
<!-- $LastChangedRevision: 136 $                                             -->
186
<!--                                                                         -->
187
<!--*************************************************************************-->
188
 
189
<br>
190
<table border="1" width = "100%">
191
  <tr>
192
    <td width = "20%">
193
     <img src="syosil.jpg">
194
    </td>
195
    <td width = "60%">
196
       <address style="text-align: center;">
197
       Project: SyoSil ApS UVM Scoreboard, Revision: 1.0.2.5<br>
198
       <br>
199
       Copyright 2014-2015 SyoSil ApS<br>
200
       All Rights Reserved Worldwide<br>
201
       <br>
202
      Licensed under the Apache License, Version 2.0 (the "License"); you may not
203
      use this file except in compliance with the License.  You may obtain a copy of
204
      the License at<br>
205
      <br>
206
       <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a><br>
207
      <br>
208
      Unless required by applicable law or agreed to in writing, software distributed under the License is
209
      distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
210
      implied. See the License for the specific language governing permissions and limitations under
211
      the License.
212
      </address>
213
    </td>
214
    <td width = "20%">
215
      <address style="text-align: right;"><small>
216
      <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a><br>
217
      <a href="http://www.doxygen.org/index.html">Doxygen</a> Version: 1.6.1<br>
218
      <a href="http://www.intelligentdv.com/index.html">IDV SV Filter</a> Version: 2.6.2<br>
219
      Sat Nov 28 05:41:54 2015</small></address>
220
   </td>
221
  </tr>
222
</table>
223
<address style="text-align: left;"><small>
224
Find a documentation bug?  Report bugs to: <a href="http://bugs.intelligentdv.com/">bugs.intelligentdv.com</a> Project: DoxygenFilterSV
225
</small></address>
226
</body>
227
</html>

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.