blob: 873655c1fcbf30101e0ae6f442b3ab34173052f9 [file] [log] [blame]
<html><head><title>uvm_event_base</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
<!-- Generated by Natural Docs, version Development Release 01-12-2008 (1.35 base) -->
<!-- http://www.naturaldocs.org -->
<!-- saved from url=(0026)http://www.naturaldocs.org -->
<!--TOP - START OF CONTENT-->
<div id=Content>
<!--CONTENT index=0 -->
<div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="uvm_event_base" href="../../src/base/uvm_event.svh">uvm_event_base</a></h1><div class=CBody><p>The uvm_event_base class is an abstract wrapper class around the SystemVerilog event construct.&nbsp; It provides some additional services such as setting callbacks and maintaining the number of waiters.</p>
<!--START_ND_SUMMARY index=0-->
<div class=Summary><div class=STitle>Contents</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable>
<!-- index=0 -->
<tr class="SSMethod"><td class=SEntry><a href="#uvm_event_base" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">uvm_event_base</a></td><td class=SDescription>The uvm_event_base class is an abstract wrapper class around the SystemVerilog event construct. </td></tr>
<!-- index=13 -->
<tr class="SSMethod SMarked"><td class=SEntry><a href="#uvm_event#(T)" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">uvm_event#(T)</a></td><td class=SDescription>The uvm_event class is an extension of the abstract uvm_event_base class.</td></tr></table></div></div><!--END_ND_SUMMARY-->
</div></div></div>
<!--CONTENT index=1 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_event_base.Methods" href="../../src/base/uvm_event.svh">Methods</a></h3></div></div>
<!--CONTENT index=2 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event_base.new" href="../../src/base/uvm_event.svh">new</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>function new (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>name</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&quot;</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Creates a new event object.</p></div></div></div>
<!--CONTENT index=3 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event_base.wait_on" href="../../src/base/uvm_event.svh">wait_on</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>virtual task wait_on (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>bit&nbsp;</td>
<td class=PParameter nowrap>delta</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%> 0</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Waits for the event to be activated for the first time.</p><p>If the event has already been triggered, this task returns immediately.&nbsp; If <i>delta</i> is set, the caller will be forced to wait a single delta #0 before returning.&nbsp; This prevents the caller from returning before previously waiting processes have had a chance to resume.</p><p>Once an event has been triggered, it will be remain &ldquo;on&rdquo; until the event is <a href="#uvm_event_base.reset" class=LMethod id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">reset</a>.</p></div></div></div>
<!--CONTENT index=4 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event_base.wait_off" href="../../src/base/uvm_event.svh">wait_off</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>virtual task wait_off (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>bit&nbsp;</td>
<td class=PParameter nowrap>delta</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%> 0</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>If the event has already triggered and is &ldquo;on&rdquo;, this task waits for the event to be turned &ldquo;off&rdquo; via a call to <a href="#uvm_event_base.reset" class=LMethod id=link6 onMouseOver="ShowTip(event, 'tt5', 'link6')" onMouseOut="HideTip('tt5')">reset</a>.</p><p>If the event has not already been triggered, this task returns immediately.&nbsp; If <i>delta</i> is set, the caller will be forced to wait a single delta #0 before returning.&nbsp; This prevents the caller from returning before previously waiting processes have had a chance to resume.</p></div></div></div>
<!--CONTENT index=5 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event_base.wait_trigger" href="../../src/base/uvm_event.svh">wait_trigger</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual task wait_trigger ()
</td></tr></table></blockquote><div class=CBody><p>Waits for the event to be triggered.</p><p>If one process calls wait_trigger in the same delta as another process calls <a href="#uvm_event#(T).trigger" class=LMethod id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">uvm_event#(T)::trigger</a>, a race condition occurs.&nbsp; If the call to wait occurs before the trigger, this method will return in this delta.&nbsp; If the wait occurs after the trigger, this method will not return until the next trigger, which may never occur and thus cause deadlock.</p></div></div></div>
<!--CONTENT index=6 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event_base.wait_ptrigger" href="../../src/base/uvm_event.svh">wait_ptrigger</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual task wait_ptrigger ()
</td></tr></table></blockquote><div class=CBody><p>Waits for a persistent trigger of the event.&nbsp; Unlike <a href="#uvm_event_base.wait_trigger" class=LMethod id=link8 onMouseOver="ShowTip(event, 'tt7', 'link8')" onMouseOut="HideTip('tt7')">wait_trigger</a>, this views the trigger as persistent within a given time-slice and thus avoids certain race conditions.&nbsp; If this method is called after the trigger but within the same time-slice, the caller returns immediately.</p></div></div></div>
<!--CONTENT index=7 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event_base.get_trigger_time" href="../../src/base/uvm_event.svh">get_trigger_time</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function time get_trigger_time ()
</td></tr></table></blockquote><div class=CBody><p>Gets the time that this event was last triggered.&nbsp; If the event has not been triggered, or the event has been reset, then the trigger time will be 0.</p></div></div></div>
<!--CONTENT index=8 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event_base.is_on" href="../../src/base/uvm_event.svh">is_on</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function bit is_on ()
</td></tr></table></blockquote><div class=CBody><p>Indicates whether the event has been triggered since it was last reset.</p><p>A return of 1 indicates that the event has triggered.</p></div></div></div>
<!--CONTENT index=9 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event_base.is_off" href="../../src/base/uvm_event.svh">is_off</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function bit is_off ()
</td></tr></table></blockquote><div class=CBody><p>Indicates whether the event has been triggered or been reset.</p><p>A return of 1 indicates that the event has not been triggered.</p></div></div></div>
<!--CONTENT index=10 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event_base.reset" href="../../src/base/uvm_event.svh">reset</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>virtual function void reset (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>bit&nbsp;</td>
<td class=PParameter nowrap>wakeup</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%> 0</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Resets the event to its off state.&nbsp; If <i>wakeup</i> is set, then all processes currently waiting for the event are activated before the reset.</p><p>No callbacks are called during a reset.</p></div></div></div>
<!--CONTENT index=11 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event_base.cancel" href="../../src/base/uvm_event.svh">cancel</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function void cancel ()
</td></tr></table></blockquote><div class=CBody><p>Decrements the number of waiters on the event.</p><p>This is used if a process that is waiting on an event is disabled or activated by some other means.</p></div></div></div>
<!--CONTENT index=12 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event_base.get_num_waiters" href="../../src/base/uvm_event.svh">get_num_waiters</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function int get_num_waiters ()
</td></tr></table></blockquote><div class=CBody><p>Returns the number of processes waiting on the event.</p></div></div></div>
<!--CONTENT index=13 -->
<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_event#(T)" href="../../src/base/uvm_event.svh">uvm_event#(T)</a></h2><div class=CBody><p>The uvm_event class is an extension of the abstract uvm_event_base class.</p><p>The optional parameter <i>T</i> allows the user to define a data type which can be passed during an event trigger.</p>
<!--START_ND_SUMMARY index=13-->
<div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable>
<!-- index=13 -->
<tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_event#(T)" id=link12 onMouseOver="ShowTip(event, 'tt4', 'link12')" onMouseOut="HideTip('tt4')">uvm_event#(T)</a></td></tr>
<tr class=SMain><td colspan=2 class=SWideDescription>The uvm_event class is an extension of the abstract uvm_event_base class.</td></tr>
<!-- HIERARCHY -->
<tr class="SHierarchy SIndent1 "><td colspan=2 class="SEntry SIndent1">Class Hierarchy</td></tr>
<tr class="SPrototype SIndent1"><td colspan=2 class=SDescription>
<div class=ClassHierarchy>
<table border=0 cellspacing=0 cellpadding=0>
<tr><td><div class=CHParent><div class=CHEntry><a href="uvm_misc-svh.html#uvm_void" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt1', 'link9')" onMouseOut="HideTip('tt1')">uvm_void</a></div></div></td></tr>
<tr><td><div class=CHParent><div class=CHEntry><a href="uvm_object-svh.html#uvm_object" class=LClass id=link10 onMouseOver="ShowTip(event, 'tt2', 'link10')" onMouseOut="HideTip('tt2')">uvm_object</a></div></div></td></tr>
<tr><td><div class=CHParent><div class=CHEntry><a href="#uvm_event_base" class=LClass id=link11 onMouseOver="ShowTip(event, 'tt3', 'link11')" onMouseOut="HideTip('tt3')">uvm_event_base</a></div></div></td></tr>
<tr><td><div class=CHCurrent><div class=CHEntry>uvm_event#(T)</div></div></td></tr>
</table>
</div>
</td></tr>
<!-- PROTOTYPE -->
<tr class="SPrototype SIndent1"><td colspan=2 class="SEntry SIndent1">Class Declaration</td></tr>
<tr class="SPrototype SIndent1"><td colspan=2 class=SDescription>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>class uvm_event#(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>type&nbsp;</td>
<td class=PParameter nowrap>T</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>uvm_object</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>) extends uvm_event_base</td></tr>
</table></td></tr>
</table></blockquote>
</td></tr>
<!-- index=14 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_event#(T).Methods" >Methods</a></td><td class=SDescription></td></tr>
<!-- index=15 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_event#(T).new" id=link13 onMouseOver="ShowTip(event, 'tt8', 'link13')" onMouseOut="HideTip('tt8')">new</a></td><td class=SDescription>Creates a new event object.</td></tr>
<!-- index=16 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_event#(T).wait_trigger_data" id=link14 onMouseOver="ShowTip(event, 'tt9', 'link14')" onMouseOut="HideTip('tt9')">wait_trigger_data</a></td><td class=SDescription>This method calls <a href="#uvm_event_base.wait_trigger" class=LMethod id=link15 onMouseOver="ShowTip(event, 'tt7', 'link15')" onMouseOut="HideTip('tt7')">uvm_event_base::wait_trigger</a> followed by <a href="#uvm_event#(T).get_trigger_data" class=LMethod id=link16 onMouseOver="ShowTip(event, 'tt10', 'link16')" onMouseOut="HideTip('tt10')">get_trigger_data</a>.</td></tr>
<!-- index=17 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_event#(T).wait_ptrigger_data" id=link17 onMouseOver="ShowTip(event, 'tt11', 'link17')" onMouseOut="HideTip('tt11')">wait_ptrigger_data</a></td><td class=SDescription>This method calls <a href="#uvm_event_base.wait_ptrigger" class=LMethod id=link18 onMouseOver="ShowTip(event, 'tt12', 'link18')" onMouseOut="HideTip('tt12')">uvm_event_base::wait_ptrigger</a> followed by <a href="#uvm_event#(T).get_trigger_data" class=LMethod id=link19 onMouseOver="ShowTip(event, 'tt10', 'link19')" onMouseOut="HideTip('tt10')">get_trigger_data</a>.</td></tr>
<!-- index=18 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_event#(T).trigger" id=link20 onMouseOver="ShowTip(event, 'tt6', 'link20')" onMouseOut="HideTip('tt6')">trigger</a></td><td class=SDescription>Triggers the event, resuming all waiting processes.</td></tr>
<!-- index=19 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_event#(T).get_trigger_data" id=link21 onMouseOver="ShowTip(event, 'tt10', 'link21')" onMouseOut="HideTip('tt10')">get_trigger_data</a></td><td class=SDescription>Gets the data, if any, provided by the last call to <a href="#uvm_event#(T).trigger" class=LMethod id=link22 onMouseOver="ShowTip(event, 'tt6', 'link22')" onMouseOut="HideTip('tt6')">trigger</a>.</td></tr>
<!-- index=20 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_event#(T).add_callback" id=link23 onMouseOver="ShowTip(event, 'tt13', 'link23')" onMouseOut="HideTip('tt13')">add_callback</a></td><td class=SDescription>Registers a callback object, <i>cb</i>, with this event. </td></tr>
<!-- index=21 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_event#(T).delete_callback" id=link24 onMouseOver="ShowTip(event, 'tt14', 'link24')" onMouseOut="HideTip('tt14')">delete_callback</a></td><td class=SDescription>Unregisters the given callback, <i>cb</i>, from this event.</td></tr></table></div></div><!--END_ND_SUMMARY-->
</div></div></div>
<!--CONTENT index=14 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_event#(T).Methods" href="../../src/base/uvm_event.svh">Methods</a></h3></div></div>
<!--CONTENT index=15 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event#(T).new" href="../../src/base/uvm_event.svh">new</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>function new (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>name</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&quot;</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Creates a new event object.</p></div></div></div>
<!--CONTENT index=16 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event#(T).wait_trigger_data" href="../../src/base/uvm_event.svh">wait_trigger_data</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=4>virtual task wait_trigger_data (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PTypePrefix nowrap>output&nbsp;</td>
<td class=PType nowrap>T&nbsp;</td>
<td class=PParameter nowrap width=100%>data</td>
</tr>
<tr>
<td class=PAfterParameters colspan=4>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>This method calls <a href="#uvm_event_base.wait_trigger" class=LMethod id=link25 onMouseOver="ShowTip(event, 'tt7', 'link25')" onMouseOut="HideTip('tt7')">uvm_event_base::wait_trigger</a> followed by <a href="#uvm_event#(T).get_trigger_data" class=LMethod id=link26 onMouseOver="ShowTip(event, 'tt10', 'link26')" onMouseOut="HideTip('tt10')">get_trigger_data</a>.</p></div></div></div>
<!--CONTENT index=17 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event#(T).wait_ptrigger_data" href="../../src/base/uvm_event.svh">wait_ptrigger_data</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=4>virtual task wait_ptrigger_data (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PTypePrefix nowrap>output&nbsp;</td>
<td class=PType nowrap>T&nbsp;</td>
<td class=PParameter nowrap width=100%>data</td>
</tr>
<tr>
<td class=PAfterParameters colspan=4>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>This method calls <a href="#uvm_event_base.wait_ptrigger" class=LMethod id=link27 onMouseOver="ShowTip(event, 'tt12', 'link27')" onMouseOut="HideTip('tt12')">uvm_event_base::wait_ptrigger</a> followed by <a href="#uvm_event#(T).get_trigger_data" class=LMethod id=link28 onMouseOver="ShowTip(event, 'tt10', 'link28')" onMouseOut="HideTip('tt10')">get_trigger_data</a>.</p></div></div></div>
<!--CONTENT index=18 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event#(T).trigger" href="../../src/base/uvm_event.svh">trigger</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>virtual function void trigger (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>T&nbsp;</td>
<td class=PParameter nowrap>data</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>null</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Triggers the event, resuming all waiting processes.</p><p>An optional <i>data</i> argument can be supplied with the enable to provide trigger-specific information.</p></div></div></div>
<!--CONTENT index=19 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event#(T).get_trigger_data" href="../../src/base/uvm_event.svh">get_trigger_data</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function T get_trigger_data ()
</td></tr></table></blockquote><div class=CBody><p>Gets the data, if any, provided by the last call to <a href="#uvm_event#(T).trigger" class=LMethod id=link29 onMouseOver="ShowTip(event, 'tt6', 'link29')" onMouseOut="HideTip('tt6')">trigger</a>.</p></div></div></div>
<!--CONTENT index=20 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event#(T).add_callback" href="../../src/base/uvm_event.svh">add_callback</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>virtual function void add_callback (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_event_callback#(T)&nbsp;</td>
<td class=PParameter nowrap>cb,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>bit&nbsp;</td>
<td class=PParameter nowrap>append</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>1</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Registers a callback object, <i>cb</i>, with this event.&nbsp; The callback object may include pre_trigger and post_trigger functionality.&nbsp; If <i>append</i> is set to 1, the default, <i>cb</i> is added to the back of the callback list.&nbsp; Otherwise, <i>cb</i> is placed at the front of the callback list.</p></div></div></div>
<!--CONTENT index=21 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_event#(T).delete_callback" href="../../src/base/uvm_event.svh">delete_callback</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=3>virtual function void delete_callback (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_event_callback#(T)&nbsp;</td>
<td class=PParameter nowrap width=100%>cb</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Unregisters the given callback, <i>cb</i>, from this event.</p></div></div></div>
</div><!--Content-->
<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CClass>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_void
</td></tr></table></blockquote>The <i>uvm_void</i> class is the base class for all UVM classes. </div></div><div class=CToolTip id="tt2"><div class=CClass>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_object extends uvm_void
</td></tr></table></blockquote>The uvm_object class is the base class for all UVM data and hierarchical classes. </div></div><div class=CToolTip id="tt3"><div class=CClass>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_event_base extends uvm_object
</td></tr></table></blockquote>The uvm_event_base class is an abstract wrapper class around the SystemVerilog event construct. </div></div><div class=CToolTip id="tt4"><div class=CClass>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>class uvm_event#(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>type&nbsp;</td>
<td class=PParameter nowrap>T</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>uvm_object</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>) extends uvm_event_base</td></tr>
</table></td></tr>
</table></blockquote>
The uvm_event class is an extension of the abstract uvm_event_base class.</div></div><div class=CToolTip id="tt5"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>virtual function void reset (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>bit&nbsp;</td>
<td class=PParameter nowrap>wakeup</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%> 0</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
Resets the event to its off state. </div></div><div class=CToolTip id="tt6"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>virtual function void trigger (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>T&nbsp;</td>
<td class=PParameter nowrap>data</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>null</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
Triggers the event, resuming all waiting processes.</div></div><div class=CToolTip id="tt7"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual task wait_trigger ()
</td></tr></table></blockquote>Waits for the event to be triggered.</div></div><div class=CToolTip id="tt8"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>function new (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>name</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&quot;</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
Creates a new event object.</div></div><div class=CToolTip id="tt9"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=4>virtual task wait_trigger_data (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PTypePrefix nowrap>output&nbsp;</td>
<td class=PType nowrap>T&nbsp;</td>
<td class=PParameter nowrap width=100%>data</td>
</tr>
<tr>
<td class=PAfterParameters colspan=4>)</td></tr>
</table></td></tr>
</table></blockquote>
This method calls uvm_event_base::wait_trigger followed by get_trigger_data.</div></div><div class=CToolTip id="tt10"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function T get_trigger_data ()
</td></tr></table></blockquote>Gets the data, if any, provided by the last call to trigger.</div></div><div class=CToolTip id="tt11"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=4>virtual task wait_ptrigger_data (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PTypePrefix nowrap>output&nbsp;</td>
<td class=PType nowrap>T&nbsp;</td>
<td class=PParameter nowrap width=100%>data</td>
</tr>
<tr>
<td class=PAfterParameters colspan=4>)</td></tr>
</table></td></tr>
</table></blockquote>
This method calls uvm_event_base::wait_ptrigger followed by get_trigger_data.</div></div><div class=CToolTip id="tt12"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual task wait_ptrigger ()
</td></tr></table></blockquote>Waits for a persistent trigger of the event. </div></div><div class=CToolTip id="tt13"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>virtual function void add_callback (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_event_callback#(T)&nbsp;</td>
<td class=PParameter nowrap>cb,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>bit&nbsp;</td>
<td class=PParameter nowrap>append</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>1</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
Registers a callback object, <i>cb</i>, with this event. </div></div><div class=CToolTip id="tt14"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=3>virtual function void delete_callback (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_event_callback#(T)&nbsp;</td>
<td class=PParameter nowrap width=100%>cb</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
Unregisters the given callback, <i>cb</i>, from this event.</div></div><!--END_ND_TOOLTIPS-->
<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>