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

Subversion Repositories lpffir

[/] [lpffir/] [trunk/] [uvm/] [tools/] [uvm_syoscb/] [docs/] [html/] [cl__syoscb__subscriber_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_subscriber.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_subscriber.svh</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/// Generic subscriber for the scoreboard. It provides the write method</span>
91
<a name="l00002"></a>00002 <span class="comment"></span><span class="comment">/// for UVM monitors and utilizes the function based API of the scoreboard to insert</span>
92
<a name="l00003"></a>00003 <span class="comment"></span><span class="comment">/// the items received through the write method.</span>
93
<a name="l00004"></a><a class="code" href="classcl__syoscb__subscriber.html">00004</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classcl__syoscb__subscriber.html" title="Generic subscriber for the scoreboard.">cl_syoscb_subscriber</a> <span class="keyword">extends</span> uvm_subscriber#(uvm_sequence_item);
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>
97
<a name="l00008"></a>00008   local string queue_name;
98
<a name="l00009"></a>00009   local string producer;
99
<a name="l00010"></a>00010
100
<a name="l00011"></a>00011   <span class="comment">//-------------------------------------</span>
101
<a name="l00012"></a>00012   <span class="comment">// UVM Macros</span>
102
<a name="l00013"></a>00013   <span class="comment">//-------------------------------------</span>
103
<a name="l00014"></a>00014   `uvm_component_utils_begin(cl_syoscb_subscriber)
104
<a name="l00015"></a>00015     `uvm_field_string(queue_name, UVM_DEFAULT);
105
<a name="l00016"></a>00016     `uvm_field_string(producer,   UVM_DEFAULT);
106
<a name="l00017"></a>00017   `uvm_component_utils_end
107
<a name="l00018"></a>00018
108
<a name="l00019"></a>00019   <span class="comment">//-------------------------------------</span>
109
<a name="l00020"></a>00020   <span class="comment">// Constructor</span>
110
<a name="l00021"></a>00021   <span class="comment">//-------------------------------------</span>
111
<a name="l00022"></a>00022   extern function new(string name = &quot;cl_syoscb_subscriber&quot;, uvm_component parent = null);
112
<a name="l00023"></a>00023
113
<a name="l00024"></a>00024   <span class="comment">//-------------------------------------</span>
114
<a name="l00025"></a>00025   <span class="comment">// UVM overwrites/extensions</span>
115
<a name="l00026"></a>00026   <span class="comment">//-------------------------------------</span>
116
<a name="l00027"></a>00027   extern function void <a class="code" href="classcl__syoscb__subscriber.html#a5c82d3099a20e85b0eedd78728b8d967" title="The write method which must be implemented when extending uvm_subscriber.">write</a>(uvm_sequence_item t);
117
<a name="l00028"></a>00028
118
<a name="l00029"></a>00029   <span class="comment">//-------------------------------------</span>
119
<a name="l00030"></a>00030   <span class="comment">// Subscriber API</span>
120
<a name="l00031"></a>00031   <span class="comment">//-------------------------------------</span>
121
<a name="l00032"></a>00032   extern function string <a class="code" href="classcl__syoscb__subscriber.html#a3959afbf927ba3a3d9dfb360b0c0ad0a" title="Subscriber API: Returns the name of the queue which this subscriber is connected...">get_queue_name</a>();
122
<a name="l00033"></a>00033   extern function void <a class="code" href="classcl__syoscb__subscriber.html#a4dd8f85506dddbd1b230bc90e1330e0b" title="Subscriber API: Sets the name of the queue which this subscriber is connected to...">set_queue_name</a>(string qn);
123
<a name="l00034"></a>00034   extern function string <a class="code" href="classcl__syoscb__subscriber.html#a3f4a62ce19c8fc036a131e72a4ebb9fe" title="Subscriber API: Returns the name of the produer which this subscriber is connected...">get_producer</a>();
124
<a name="l00035"></a>00035   extern function void <a class="code" href="classcl__syoscb__subscriber.html#a9f43d87f01bd0e829e683def3f98afc7" title="Subscriber API: Sets the name of the producer which this subscriber is connected...">set_producer</a>(string p);
125
<a name="l00036"></a>00036 endclass: <a class="code" href="classcl__syoscb__subscriber.html" title="Generic subscriber for the scoreboard.">cl_syoscb_subscriber</a>
126
<a name="l00037"></a>00037
127
<a name="l00038"></a>00038 function <a class="code" href="classcl__syoscb__subscriber.html" title="Generic subscriber for the scoreboard.">cl_syoscb_subscriber</a>::new(string name = &quot;cl_syoscb_subscriber&quot;, uvm_component parent = null);
128
<a name="l00039"></a>00039   super.new(name, parent);
129
<a name="l00040"></a>00040 endfunction: new
130
<a name="l00041"></a>00041 <span class="comment"></span>
131
<a name="l00042"></a>00042 <span class="comment">/// The write method which must be implemented when extending uvm_subscriber.</span>
132
<a name="l00043"></a><a class="code" href="classcl__syoscb__subscriber.html#a5c82d3099a20e85b0eedd78728b8d967">00043</a> <span class="comment"></span>function void <a class="code" href="classcl__syoscb__subscriber.html" title="Generic subscriber for the scoreboard.">cl_syoscb_subscriber</a>::<a class="code" href="classcl__syoscb__subscriber.html#a5c82d3099a20e85b0eedd78728b8d967" title="The write method which must be implemented when extending uvm_subscriber.">write</a>(uvm_sequence_item t);
133
<a name="l00044"></a>00044   <a class="code" href="classcl__syoscb.html" title="Top level class implementing the root of the SyoSil UVM scoreboard.">cl_syoscb</a> parent;
134
<a name="l00045"></a>00045
135
<a name="l00046"></a>00046   <span class="comment">// Get the parent which is the SCB top</span>
136
<a name="l00047"></a>00047   <span class="comment">// This is needed for access to the function based API</span>
137
<a name="l00048"></a>00048   begin
138
<a name="l00049"></a>00049     uvm_component tmp_parent;
139
<a name="l00050"></a>00050
140
<a name="l00051"></a>00051     tmp_parent = this.get_parent();
141
<a name="l00052"></a>00052
142
<a name="l00053"></a>00053     if(!$cast(parent, tmp_parent)) begin
143
<a name="l00054"></a>00054       <span class="comment">// *NOTE*: Here the parent cannot be cast. Thus, the print cannot contain the SCB name</span>
144
<a name="l00055"></a>00055       `uvm_fatal(&quot;IMPL_ERROR&quot;, &quot;Unable to cast parent of subscriber&quot;);
145
<a name="l00056"></a>00056     end
146
<a name="l00057"></a>00057   end
147
<a name="l00058"></a>00058
148
<a name="l00059"></a>00059   `uvm_info(&quot;DEBUG&quot;, $sformatf(&quot;Trigger add_item by subscriber: %s (Queue: %s, Producer: %s)&quot;, this.get_name(), this.queue_name, this.producer), UVM_FULL);
149
<a name="l00060"></a>00060
150
<a name="l00061"></a>00061   <span class="comment">// Add the item to the queue</span>
151
<a name="l00062"></a>00062   parent.add_item(this.queue_name, this.producer, t);
152
<a name="l00063"></a>00063 endfunction
153
<a name="l00064"></a>00064 <span class="comment"></span>
154
<a name="l00065"></a>00065 <span class="comment">/// &lt;b&gt;Subscriber API&lt;/b&gt;: Returns the name of the queue which this subscriber is connected to.</span>
155
<a name="l00066"></a><a class="code" href="classcl__syoscb__subscriber.html#a3959afbf927ba3a3d9dfb360b0c0ad0a">00066</a> <span class="comment"></span>function string <a class="code" href="classcl__syoscb__subscriber.html" title="Generic subscriber for the scoreboard.">cl_syoscb_subscriber</a>::<a class="code" href="classcl__syoscb__subscriber.html#a3959afbf927ba3a3d9dfb360b0c0ad0a" title="Subscriber API: Returns the name of the queue which this subscriber is connected...">get_queue_name</a>();
156
<a name="l00067"></a>00067   return(this.queue_name);
157
<a name="l00068"></a>00068 endfunction: <a class="code" href="classcl__syoscb__subscriber.html#a3959afbf927ba3a3d9dfb360b0c0ad0a" title="Subscriber API: Returns the name of the queue which this subscriber is connected...">get_queue_name</a>
158
<a name="l00069"></a>00069 <span class="comment"></span>
159
<a name="l00070"></a>00070 <span class="comment">/// &lt;b&gt;Subscriber API&lt;/b&gt;: Sets the name of the queue which this subscriber is connected to.</span>
160
<a name="l00071"></a><a class="code" href="classcl__syoscb__subscriber.html#a4dd8f85506dddbd1b230bc90e1330e0b">00071</a> <span class="comment"></span>function void <a class="code" href="classcl__syoscb__subscriber.html" title="Generic subscriber for the scoreboard.">cl_syoscb_subscriber</a>::<a class="code" href="classcl__syoscb__subscriber.html#a4dd8f85506dddbd1b230bc90e1330e0b" title="Subscriber API: Sets the name of the queue which this subscriber is connected to...">set_queue_name</a>(string qn);
161
<a name="l00072"></a>00072   this.queue_name = qn;
162
<a name="l00073"></a>00073 endfunction: <a class="code" href="classcl__syoscb__subscriber.html#a4dd8f85506dddbd1b230bc90e1330e0b" title="Subscriber API: Sets the name of the queue which this subscriber is connected to...">set_queue_name</a>
163
<a name="l00074"></a>00074 <span class="comment"></span>
164
<a name="l00075"></a>00075 <span class="comment">/// &lt;b&gt;Subscriber API&lt;/b&gt;: Returns the name of the produer which this subscriber is connected to.</span>
165
<a name="l00076"></a><a class="code" href="classcl__syoscb__subscriber.html#a3f4a62ce19c8fc036a131e72a4ebb9fe">00076</a> <span class="comment"></span>function string <a class="code" href="classcl__syoscb__subscriber.html" title="Generic subscriber for the scoreboard.">cl_syoscb_subscriber</a>::<a class="code" href="classcl__syoscb__subscriber.html#a3f4a62ce19c8fc036a131e72a4ebb9fe" title="Subscriber API: Returns the name of the produer which this subscriber is connected...">get_producer</a>();
166
<a name="l00077"></a>00077   return(this.producer);
167
<a name="l00078"></a>00078 endfunction: <a class="code" href="classcl__syoscb__subscriber.html#a3f4a62ce19c8fc036a131e72a4ebb9fe" title="Subscriber API: Returns the name of the produer which this subscriber is connected...">get_producer</a>
168
<a name="l00079"></a>00079 <span class="comment"></span>
169
<a name="l00080"></a>00080 <span class="comment">/// &lt;b&gt;Subscriber API&lt;/b&gt;: Sets the name of the producer which this subscriber is connected to.</span>
170
<a name="l00081"></a><a class="code" href="classcl__syoscb__subscriber.html#a9f43d87f01bd0e829e683def3f98afc7">00081</a> <span class="comment"></span>function void <a class="code" href="classcl__syoscb__subscriber.html" title="Generic subscriber for the scoreboard.">cl_syoscb_subscriber</a>::<a class="code" href="classcl__syoscb__subscriber.html#a9f43d87f01bd0e829e683def3f98afc7" title="Subscriber API: Sets the name of the producer which this subscriber is connected...">set_producer</a>(string p);
171
<a name="l00082"></a>00082   this.producer = p;
172
<a name="l00083"></a>00083 endfunction: <a class="code" href="classcl__syoscb__subscriber.html#a9f43d87f01bd0e829e683def3f98afc7" title="Subscriber API: Sets the name of the producer which this subscriber is connected...">set_producer</a>
173
</pre></div></div>
174
<!--- window showing the filter options -->
175
<div id="MSearchSelectWindow"
176
     onmouseover="return searchBox.OnSearchSelectShow()"
177
     onmouseout="return searchBox.OnSearchSelectHide()"
178
     onkeydown="return searchBox.OnSearchSelectKey(event)">
179
<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>
180
 
181
<!-- iframe showing the search results (closed by default) -->
182
<div id="MSearchResultsWindow">
183
<iframe src="" frameborder="0"
184
        name="MSearchResults" id="MSearchResults">
185
</iframe>
186
</div>
187
 
188
<!--*************************************************************************-->
189
<!-- $Id: idv_dox_footer.html 136 2010-05-31 19:13:27Z seanoboyle $          -->
190
<!--*************************************************************************-->
191
<!--   This program is free software: you can redistribute it and/or modify  -->
192
<!--   it under the terms of the GNU General Public License as published by  -->
193
<!--   the Free Software Foundation, either version 3 of the License, or     -->
194
<!--   (at your option) any later version.                                   -->
195
<!--                                                                         -->
196
<!--   This program is distributed in the hope that it will be useful,       -->
197
<!--   but WITHOUT ANY WARRANTY; without even the implied warranty of        -->
198
<!--   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         -->
199
<!--   GNU General Public License for more details.                          -->
200
<!--                                                                         -->
201
<!--   You should have received a copy of the GNU General Public License     -->
202
<!--   along with this program.  If not, see http://www.gnu.org/licenses/.   -->
203
<!--                                                                         -->
204
<!--*************************************************************************-->
205
<!-- Title:        IDV Doxygen Footer File                                   -->
206
<!-- Description:  This file is a doxygen footer with the IDV logo and a     -->
207
<!--               and a reference to the GNU FDL License.                   -->
208
<!--                                                                         -->
209
<!-- Original Author: Sean O'Boyle                                           -->
210
<!-- Contact:         seanoboyle@intelligentdv.com                           -->
211
<!-- Company:         Intelligent Design Verification                        -->
212
<!-- Company URL:     http://intelligentdv.com                               -->
213
<!--                                                                         -->
214
<!-- Download the most recent version here:                                  -->
215
<!--                  http://intelligentdv.com/downloads                     -->
216
<!--                                                                         -->
217
<!-- File Bugs Here:  http://bugs.intelligentdv.com                          -->
218
<!--        Project:  DoxygenFilterSV                                        -->
219
<!--                                                                         -->
220
<!-- File: idv_dox_header.xml                                                -->
221
<!-- $LastChangedBy: seanoboyle $                                            -->
222
<!-- $LastChangedDate: 2010-05-31 12:13:27 -0700 (Mon, 31 May 2010) $        -->
223
<!-- $LastChangedRevision: 136 $                                             -->
224
<!--                                                                         -->
225
<!--*************************************************************************-->
226
 
227
<br>
228
<table border="1" width = "100%">
229
  <tr>
230
    <td width = "20%">
231
     <img src="syosil.jpg">
232
    </td>
233
    <td width = "60%">
234
       <address style="text-align: center;">
235
       Project: SyoSil ApS UVM Scoreboard, Revision: 1.0.2.5<br>
236
       <br>
237
       Copyright 2014-2015 SyoSil ApS<br>
238
       All Rights Reserved Worldwide<br>
239
       <br>
240
      Licensed under the Apache License, Version 2.0 (the "License"); you may not
241
      use this file except in compliance with the License.  You may obtain a copy of
242
      the License at<br>
243
      <br>
244
       <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a><br>
245
      <br>
246
      Unless required by applicable law or agreed to in writing, software distributed under the License is
247
      distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
248
      implied. See the License for the specific language governing permissions and limitations under
249
      the License.
250
      </address>
251
    </td>
252
    <td width = "20%">
253
      <address style="text-align: right;"><small>
254
      <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a><br>
255
      <a href="http://www.doxygen.org/index.html">Doxygen</a> Version: 1.6.1<br>
256
      <a href="http://www.intelligentdv.com/index.html">IDV SV Filter</a> Version: 2.6.2<br>
257
      Sat Nov 28 05:41:54 2015</small></address>
258
   </td>
259
  </tr>
260
</table>
261
<address style="text-align: left;"><small>
262
Find a documentation bug?  Report bugs to: <a href="http://bugs.intelligentdv.com/">bugs.intelligentdv.com</a> Project: DoxygenFilterSV
263
</small></address>
264
</body>
265
</html>

powered by: WebSVN 2.1.0

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