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

Subversion Repositories lpffir

[/] [lpffir/] [trunk/] [uvm/] [tools/] [uvm_syoscb/] [docs/] [html/] [cl__syoscb__item_8svh_source.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: cl_syoscb_item.svh Source File</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><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
63
      <li><a href="annotated.html"><span>Classes</span></a></li>
64
      <li class="current"><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 class="tabs">
82
    <ul>
83
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
84
    </ul>
85
  </div>
86
  <div class="navpath"><a class="el" href="dir_562324e130495ce1321e3e3f14c8d761.html">src</a>
87
  </div>
88
</div>
89
<div class="contents">
90
<h1>cl_syoscb_item.svh</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/// The UVM scoreboard item. This item wraps the uvm_sequence_items. This ensures that future</span>
91
<a name="l00002"></a>00002 <span class="comment"></span><span class="comment">/// extensions to the UVM scoreboard will always be able to use all uvm_sqeuence_items from</span>
92
<a name="l00003"></a>00003 <span class="comment"></span><span class="comment">/// already existing testbenches etc. even though more META data is added to the wrapping item.</span>
93
<a name="l00004"></a><a class="code" href="classcl__syoscb__item.html">00004</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classcl__syoscb__item.html" title="The UVM scoreboard item.">cl_syoscb_item</a> <span class="keyword">extends</span> uvm_object;
94
<a name="l00005"></a>00005   <span class="comment">//-------------------------------------</span>
95
<a name="l00006"></a>00006   <span class="comment">// Non randomizable variables</span>
96
<a name="l00007"></a>00007   <span class="comment">//-------------------------------------</span><span class="comment"></span>
97
<a name="l00008"></a>00008 <span class="comment">  /// Hold the name of the producer</span>
98
<a name="l00009"></a>00009 <span class="comment"></span>  local string producer;
99
<a name="l00010"></a>00010 <span class="comment"></span>
100
<a name="l00011"></a>00011 <span class="comment">  /// Handle to the wrapped uvm_sequence_item</span>
101
<a name="l00012"></a>00012 <span class="comment"></span>  local uvm_sequence_item item;
102
<a name="l00013"></a>00013
103
<a name="l00014"></a>00014   <span class="comment">//-------------------------------------</span>
104
<a name="l00015"></a>00015   <span class="comment">// UVM Macros</span>
105
<a name="l00016"></a>00016   <span class="comment">//-------------------------------------</span>
106
<a name="l00017"></a>00017   `uvm_object_utils_begin(cl_syoscb_item)
107
<a name="l00018"></a>00018 `ifdef SYOSIL_APPLY_TLM_GP_CMP_WORKAROUND
108
<a name="l00019"></a>00019     <span class="comment">// Use NOCOMPARE when do_compare is implemented. Otherwise the compare is done twice since</span>
109
<a name="l00020"></a>00020     <span class="comment">// the super of uvm field automation is called before do_compare. This will invoke the compare</span>
110
<a name="l00021"></a>00021     <span class="comment">// since the functions are virtual</span>
111
<a name="l00022"></a>00022     `uvm_field_string(producer, UVM_DEFAULT | UVM_NOCOMPARE)
112
<a name="l00023"></a>00023     `uvm_field_object(item,     UVM_DEFAULT | UVM_NOCOMPARE)
113
<a name="l00024"></a>00024 `else
114
<a name="l00025"></a>00025     `uvm_field_string(producer, UVM_DEFAULT)
115
<a name="l00026"></a>00026     `uvm_field_object(item,     UVM_DEFAULT)
116
<a name="l00027"></a>00027 `endif
117
<a name="l00028"></a>00028   `uvm_object_utils_end
118
<a name="l00029"></a>00029
119
<a name="l00030"></a>00030   <span class="comment">//-------------------------------------</span>
120
<a name="l00031"></a>00031   <span class="comment">// Constructor</span>
121
<a name="l00032"></a>00032   <span class="comment">//-------------------------------------</span>
122
<a name="l00033"></a>00033   extern function new(string name = &quot;cl_syoscb_item&quot;);
123
<a name="l00034"></a>00034
124
<a name="l00035"></a>00035   <span class="comment">//-------------------------------------</span>
125
<a name="l00036"></a>00036   <span class="comment">// Item API</span>
126
<a name="l00037"></a>00037   <span class="comment">//-------------------------------------</span>
127
<a name="l00038"></a>00038   extern function string <a class="code" href="classcl__syoscb__item.html#a856bc5754caaf121b2297775423a9da5" title="Item API: Returns the producer">get_producer</a>();
128
<a name="l00039"></a>00039   extern function void <a class="code" href="classcl__syoscb__item.html#a3f7a926f3e4e1b57f992dcf2b053593f" title="Item API: Sets the producer">set_producer</a>(string producer);
129
<a name="l00040"></a>00040   extern function uvm_sequence_item <a class="code" href="classcl__syoscb__item.html#a479775c83c85427005d8709061bb42cb" title="Item API: Returns the wrapped uvm_sequence_item">get_item</a>();
130
<a name="l00041"></a>00041   extern function void <a class="code" href="classcl__syoscb__item.html#a4739ab1d56e8afe6452af21bd64f5ceb" title="Item API: Sets the to be wrapped uvm_sequence_item">set_item</a>(uvm_sequence_item item);
131
<a name="l00042"></a>00042
132
<a name="l00043"></a>00043 `ifdef SYOSIL_APPLY_TLM_GP_CMP_WORKAROUND
133
<a name="l00044"></a>00044   <span class="comment">//-------------------------------------</span>
134
<a name="l00045"></a>00045   <span class="comment">// UVM TLM2 Generic Payload compare</span>
135
<a name="l00046"></a>00046   <span class="comment">// workaround</span>
136
<a name="l00047"></a>00047   <span class="comment">//-------------------------------------</span>
137
<a name="l00048"></a>00048   function bit do_compare(uvm_object rhs, uvm_comparer comparer);
138
<a name="l00049"></a>00049     bit status = 1&apos;b1;
139
<a name="l00050"></a>00050     <a class="code" href="classcl__syoscb__item.html" title="The UVM scoreboard item.">cl_syoscb_item</a> that;
140
<a name="l00051"></a>00051
141
<a name="l00052"></a>00052     <span class="comment">// Code it properly using the comparer policy</span>
142
<a name="l00053"></a>00053     if(!$cast(that, rhs)) begin
143
<a name="l00054"></a>00054       status = 1&apos;b0;
144
<a name="l00055"></a>00055     end else begin
145
<a name="l00056"></a>00056       <span class="comment">// &quot;producer&quot; compare using the comparer object</span>
146
<a name="l00057"></a>00057       status &amp;= comparer.compare_string(&quot;producer&quot;, this.producer, that.producer);
147
<a name="l00058"></a>00058
148
<a name="l00059"></a>00059       <span class="comment">// Apply WORKAROUND:</span>
149
<a name="l00060"></a>00060       <span class="comment">//   Ensure that the comparer object is properly updated at this level</span>
150
<a name="l00061"></a>00061       <span class="comment">//   and propagate the compare result bit correctly</span>
151
<a name="l00062"></a>00062       status &amp;= comparer.compare_object(&quot;item&quot;, this.item, that.item);
152
<a name="l00063"></a>00063     end
153
<a name="l00064"></a>00064     return(status);
154
<a name="l00065"></a>00065   endfunction: do_compare
155
<a name="l00066"></a>00066 `endif
156
<a name="l00067"></a>00067 endclass: <a class="code" href="classcl__syoscb__item.html" title="The UVM scoreboard item.">cl_syoscb_item</a>
157
<a name="l00068"></a>00068
158
<a name="l00069"></a>00069 function <a class="code" href="classcl__syoscb__item.html" title="The UVM scoreboard item.">cl_syoscb_item</a>::new(string name = &quot;cl_syoscb_item&quot;);
159
<a name="l00070"></a>00070   super.new(name);
160
<a name="l00071"></a>00071 endfunction : new
161
<a name="l00072"></a>00072 <span class="comment"></span>
162
<a name="l00073"></a>00073 <span class="comment">/// &lt;b&gt;Item API:&lt;/b&gt; Returns the producer</span>
163
<a name="l00074"></a><a class="code" href="classcl__syoscb__item.html#a856bc5754caaf121b2297775423a9da5">00074</a> <span class="comment"></span>function string <a class="code" href="classcl__syoscb__item.html" title="The UVM scoreboard item.">cl_syoscb_item</a>::<a class="code" href="classcl__syoscb__item.html#a856bc5754caaf121b2297775423a9da5" title="Item API: Returns the producer">get_producer</a>();
164
<a name="l00075"></a>00075   return(this.producer);
165
<a name="l00076"></a>00076 endfunction: <a class="code" href="classcl__syoscb__item.html#a856bc5754caaf121b2297775423a9da5" title="Item API: Returns the producer">get_producer</a>
166
<a name="l00077"></a>00077 <span class="comment"></span>
167
<a name="l00078"></a>00078 <span class="comment">/// &lt;b&gt;Item API:&lt;/b&gt; Sets the producer</span>
168
<a name="l00079"></a><a class="code" href="classcl__syoscb__item.html#a3f7a926f3e4e1b57f992dcf2b053593f">00079</a> <span class="comment"></span>function void <a class="code" href="classcl__syoscb__item.html" title="The UVM scoreboard item.">cl_syoscb_item</a>::<a class="code" href="classcl__syoscb__item.html#a3f7a926f3e4e1b57f992dcf2b053593f" title="Item API: Sets the producer">set_producer</a>(string producer);
169
<a name="l00080"></a>00080   <span class="comment">// The producer has been checked by the parent prior</span>
170
<a name="l00081"></a>00081   <span class="comment">// to the insertion</span>
171
<a name="l00082"></a>00082   this.producer = producer;
172
<a name="l00083"></a>00083 endfunction: <a class="code" href="classcl__syoscb__item.html#a3f7a926f3e4e1b57f992dcf2b053593f" title="Item API: Sets the producer">set_producer</a>
173
<a name="l00084"></a>00084 <span class="comment"></span>
174
<a name="l00085"></a>00085 <span class="comment">/// &lt;b&gt;Item API:&lt;/b&gt; Returns the wrapped uvm_sequence_item</span>
175
<a name="l00086"></a><a class="code" href="classcl__syoscb__item.html#a479775c83c85427005d8709061bb42cb">00086</a> <span class="comment"></span>function uvm_sequence_item <a class="code" href="classcl__syoscb__item.html" title="The UVM scoreboard item.">cl_syoscb_item</a>::<a class="code" href="classcl__syoscb__item.html#a479775c83c85427005d8709061bb42cb" title="Item API: Returns the wrapped uvm_sequence_item">get_item</a>();
176
<a name="l00087"></a>00087   return(this.item);
177
<a name="l00088"></a>00088 endfunction: <a class="code" href="classcl__syoscb__item.html#a479775c83c85427005d8709061bb42cb" title="Item API: Returns the wrapped uvm_sequence_item">get_item</a>
178
<a name="l00089"></a>00089 <span class="comment"></span>
179
<a name="l00090"></a>00090 <span class="comment">/// &lt;b&gt;Item API:&lt;/b&gt; Sets the to be wrapped uvm_sequence_item</span>
180
<a name="l00091"></a><a class="code" href="classcl__syoscb__item.html#a4739ab1d56e8afe6452af21bd64f5ceb">00091</a> <span class="comment"></span>function void <a class="code" href="classcl__syoscb__item.html" title="The UVM scoreboard item.">cl_syoscb_item</a>::<a class="code" href="classcl__syoscb__item.html#a4739ab1d56e8afe6452af21bd64f5ceb" title="Item API: Sets the to be wrapped uvm_sequence_item">set_item</a>(uvm_sequence_item item);
181
<a name="l00092"></a>00092   this.item = item;
182
<a name="l00093"></a>00093 endfunction: <a class="code" href="classcl__syoscb__item.html#a4739ab1d56e8afe6452af21bd64f5ceb" title="Item API: Sets the to be wrapped uvm_sequence_item">set_item</a>
183
</pre></div></div>
184
<!--- window showing the filter options -->
185
<div id="MSearchSelectWindow"
186
     onmouseover="return searchBox.OnSearchSelectShow()"
187
     onmouseout="return searchBox.OnSearchSelectHide()"
188
     onkeydown="return searchBox.OnSearchSelectKey(event)">
189
<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>
190
 
191
<!-- iframe showing the search results (closed by default) -->
192
<div id="MSearchResultsWindow">
193
<iframe src="" frameborder="0"
194
        name="MSearchResults" id="MSearchResults">
195
</iframe>
196
</div>
197
 
198
<!--*************************************************************************-->
199
<!-- $Id: idv_dox_footer.html 136 2010-05-31 19:13:27Z seanoboyle $          -->
200
<!--*************************************************************************-->
201
<!--   This program is free software: you can redistribute it and/or modify  -->
202
<!--   it under the terms of the GNU General Public License as published by  -->
203
<!--   the Free Software Foundation, either version 3 of the License, or     -->
204
<!--   (at your option) any later version.                                   -->
205
<!--                                                                         -->
206
<!--   This program is distributed in the hope that it will be useful,       -->
207
<!--   but WITHOUT ANY WARRANTY; without even the implied warranty of        -->
208
<!--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         -->
209
<!--   GNU General Public License for more details.                          -->
210
<!--                                                                         -->
211
<!--   You should have received a copy of the GNU General Public License     -->
212
<!--   along with this program.  If not, see http://www.gnu.org/licenses/.   -->
213
<!--                                                                         -->
214
<!--*************************************************************************-->
215
<!-- Title:        IDV Doxygen Footer File                                   -->
216
<!-- Description:  This file is a doxygen footer with the IDV logo and a     -->
217
<!--               and a reference to the GNU FDL License.                   -->
218
<!--                                                                         -->
219
<!-- Original Author: Sean O'Boyle                                           -->
220
<!-- Contact:         seanoboyle@intelligentdv.com                           -->
221
<!-- Company:         Intelligent Design Verification                        -->
222
<!-- Company URL:     http://intelligentdv.com                               -->
223
<!--                                                                         -->
224
<!-- Download the most recent version here:                                  -->
225
<!--                  http://intelligentdv.com/downloads                     -->
226
<!--                                                                         -->
227
<!-- File Bugs Here:  http://bugs.intelligentdv.com                          -->
228
<!--        Project:  DoxygenFilterSV                                        -->
229
<!--                                                                         -->
230
<!-- File: idv_dox_header.xml                                                -->
231
<!-- $LastChangedBy: seanoboyle $                                            -->
232
<!-- $LastChangedDate: 2010-05-31 12:13:27 -0700 (Mon, 31 May 2010) $        -->
233
<!-- $LastChangedRevision: 136 $                                             -->
234
<!--                                                                         -->
235
<!--*************************************************************************-->
236
 
237
<br>
238
<table border="1" width = "100%">
239
  <tr>
240
    <td width = "20%">
241
     <img src="syosil.jpg">
242
    </td>
243
    <td width = "60%">
244
       <address style="text-align: center;">
245
       Project: SyoSil ApS UVM Scoreboard, Revision: 1.0.2.5<br>
246
       <br>
247
       Copyright 2014-2015 SyoSil ApS<br>
248
       All Rights Reserved Worldwide<br>
249
       <br>
250
      Licensed under the Apache License, Version 2.0 (the "License"); you may not
251
      use this file except in compliance with the License.  You may obtain a copy of
252
      the License at<br>
253
      <br>
254
       <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a><br>
255
      <br>
256
      Unless required by applicable law or agreed to in writing, software distributed under the License is
257
      distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
258
      implied. See the License for the specific language governing permissions and limitations under
259
      the License.
260
      </address>
261
    </td>
262
    <td width = "20%">
263
      <address style="text-align: right;"><small>
264
      <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a><br>
265
      <a href="http://www.doxygen.org/index.html">Doxygen</a> Version: 1.6.1<br>
266
      <a href="http://www.intelligentdv.com/index.html">IDV SV Filter</a> Version: 2.6.2<br>
267
      Sat Nov 28 05:41:54 2015</small></address>
268
   </td>
269
  </tr>
270
</table>
271
<address style="text-align: left;"><small>
272
Find a documentation bug?  Report bugs to: <a href="http://bugs.intelligentdv.com/">bugs.intelligentdv.com</a> Project: DoxygenFilterSV
273
</small></address>
274
</body>
275
</html>

powered by: WebSVN 2.1.0

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