blob: e54184f7c5d8cdb908b7fb36a62d29242ccdb7a4 [file] [log] [blame]
<html><head><title>Objection Mechanism</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="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Objection_Mechanism" href="../../src/base/uvm_objection.svh">Objection Mechanism</a></h1><div class=CBody><p>The following classes define the objection mechanism and end-of-test functionality, which is based on <a href="#uvm_objection" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">uvm_objection</a>.</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="SMain"><td class=SEntry><a href="#Objection_Mechanism" >Objection Mechanism</a></td><td class=SDescription>The following classes define the objection mechanism and end-of-test functionality, which is based on <a href="#uvm_objection" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">uvm_objection</a>.</td></tr>
<!-- index=1 -->
<tr class="SSMethod SMarked"><td class=SEntry><a href="#uvm_objection" id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">uvm_objection</a></td><td class=SDescription>Objections provide a facility for coordinating status information between two or more participating components, objects, and even module-based IP.</td></tr>
<!-- index=22 -->
<tr class="SSMethod"><td class=SEntry><a href="#uvm_objection_callback" id=link3 onMouseOver="ShowTip(event, 'tt2', 'link3')" onMouseOut="HideTip('tt2')">uvm_objection_callback</a></td><td class=SDescription>The uvm_objection is the callback type that defines the callback implementations for an objection callback. </td></tr></table></div></div><!--END_ND_SUMMARY-->
</div></div></div>
<!--CONTENT index=1 -->
<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_objection" href="../../src/base/uvm_objection.svh">uvm_objection</a></h2><div class=CBody><p>Objections provide a facility for coordinating status information between two or more participating components, objects, and even module-based IP.</p><p>Tracing of objection activity can be turned on to follow the activity of the objection mechanism.&nbsp; It may be turned on for a specific objection instance with <a href="#uvm_objection.trace_mode" class=LMethod id=link28 onMouseOver="ShowTip(event, 'tt7', 'link28')" onMouseOut="HideTip('tt7')">uvm_objection::trace_mode</a>, or it can be set for all objections from the command line using the option +UVM_OBJECTION_TRACE.</p>
<!--START_ND_SUMMARY index=1-->
<div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable>
<!-- index=1 -->
<tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_objection" id=link8 onMouseOver="ShowTip(event, 'tt1', 'link8')" onMouseOut="HideTip('tt1')">uvm_objection</a></td></tr>
<tr class=SMain><td colspan=2 class=SWideDescription>Objections provide a facility for coordinating status information between two or more participating components, objects, and even module-based IP.</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=link5 onMouseOver="ShowTip(event, 'tt3', 'link5')" onMouseOut="HideTip('tt3')">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=link6 onMouseOver="ShowTip(event, 'tt4', 'link6')" onMouseOut="HideTip('tt4')">uvm_object</a></div></div></td></tr>
<tr><td><div class=CHParent><div class=CHEntry><a href="uvm_report_object-svh.html#uvm_report_object" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt5', 'link7')" onMouseOut="HideTip('tt5')">uvm_report_object</a></div></div></td></tr>
<tr><td><div class=CHCurrent><div class=CHEntry>uvm_objection</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>class uvm_objection extends uvm_report_object
</td></tr></table></blockquote></td></tr>
<!-- index=2 -->
<tr class="SMethod SIndent1 SMarked"><td class=SEntry><a href="#uvm_objection.new" id=link9 onMouseOver="ShowTip(event, 'tt6', 'link9')" onMouseOut="HideTip('tt6')">new</a></td><td class=SDescription>Creates a new objection instance. </td></tr>
<!-- index=3 -->
<tr class="SMethod SIndent1"><td class=SEntry><a href="#uvm_objection.trace_mode" id=link10 onMouseOver="ShowTip(event, 'tt7', 'link10')" onMouseOut="HideTip('tt7')">trace_mode</a></td><td class=SDescription>Set or get the trace mode for the objection object. </td></tr>
<!-- index=4 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_objection.Objection_Control" >Objection Control</a></td><td class=SDescription></td></tr>
<!-- index=5 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_objection.set_propagate_mode" id=link11 onMouseOver="ShowTip(event, 'tt8', 'link11')" onMouseOut="HideTip('tt8')">set_propagate_mode</a></td><td class=SDescription>Sets the propagation mode for this objection.</td></tr>
<!-- index=6 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_objection.get_propagate_mode" id=link12 onMouseOver="ShowTip(event, 'tt9', 'link12')" onMouseOut="HideTip('tt9')">get_propagate_mode</a></td><td class=SDescription>Returns the propagation mode for this objection.</td></tr>
<!-- index=7 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_objection.raise_objection" id=link13 onMouseOver="ShowTip(event, 'tt10', 'link13')" onMouseOut="HideTip('tt10')">raise_objection</a></td><td class=SDescription>Raises the number of objections for the source <i>object</i> by <i>count</i>, which defaults to 1. </td></tr>
<!-- index=8 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_objection.drop_objection" id=link14 onMouseOver="ShowTip(event, 'tt11', 'link14')" onMouseOut="HideTip('tt11')">drop_objection</a></td><td class=SDescription>Drops the number of objections for the source <i>object</i> by <i>count</i>, which defaults to 1. </td></tr>
<!-- index=9 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_objection.clear" id=link15 onMouseOver="ShowTip(event, 'tt12', 'link15')" onMouseOut="HideTip('tt12')">clear</a></td><td class=SDescription>Immediately clears the objection state. </td></tr>
<!-- index=10 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_objection.set_drain_time" >set_drain_time</a></td><td class=SDescription>Sets the drain time on the given <i>object</i> to <i>drain</i>.</td></tr>
<!-- index=11 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_objection.Callback_Hooks" >Callback Hooks</a></td><td class=SDescription></td></tr>
<!-- index=12 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_objection.raised" id=link16 onMouseOver="ShowTip(event, 'tt13', 'link16')" onMouseOut="HideTip('tt13')">raised</a></td><td class=SDescription>Objection callback that is called when a <a href="#uvm_objection.raise_objection" class=LMethod id=link17 onMouseOver="ShowTip(event, 'tt10', 'link17')" onMouseOut="HideTip('tt10')">raise_objection</a> has reached <i>obj</i>. </td></tr>
<!-- index=13 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_objection.dropped" id=link18 onMouseOver="ShowTip(event, 'tt14', 'link18')" onMouseOut="HideTip('tt14')">dropped</a></td><td class=SDescription>Objection callback that is called when a <a href="#uvm_objection.drop_objection" class=LMethod id=link19 onMouseOver="ShowTip(event, 'tt11', 'link19')" onMouseOut="HideTip('tt11')">drop_objection</a> has reached <i>obj</i>. </td></tr>
<!-- index=14 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_objection.all_dropped" id=link20 onMouseOver="ShowTip(event, 'tt15', 'link20')" onMouseOut="HideTip('tt15')">all_dropped</a></td><td class=SDescription>Objection callback that is called when a <a href="#uvm_objection.drop_objection" class=LMethod id=link21 onMouseOver="ShowTip(event, 'tt11', 'link21')" onMouseOut="HideTip('tt11')">drop_objection</a> has reached <i>obj</i>, and the total count for <i>obj</i> goes to zero. </td></tr>
<!-- index=15 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_objection.Objection_Status" >Objection Status</a></td><td class=SDescription></td></tr>
<!-- index=16 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_objection.get_objectors" id=link22 onMouseOver="ShowTip(event, 'tt16', 'link22')" onMouseOut="HideTip('tt16')">get_objectors</a></td><td class=SDescription>Returns the current list of objecting objects (objects that raised an objection but have not dropped it).</td></tr>
<!-- index=17 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_objection.wait_for" id=link23 onMouseOver="ShowTip(event, 'tt17', 'link23')" onMouseOut="HideTip('tt17')">wait_for</a></td><td class=SDescription>Waits for the raised, dropped, or all_dropped <i>event</i> to occur in the given <i>obj</i>. </td></tr>
<!-- index=18 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_objection.get_objection_count" id=link24 onMouseOver="ShowTip(event, 'tt18', 'link24')" onMouseOut="HideTip('tt18')">get_objection_count</a></td><td class=SDescription>Returns the current number of objections raised by the given <i>object</i>.</td></tr>
<!-- index=19 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_objection.get_objection_total" id=link25 onMouseOver="ShowTip(event, 'tt19', 'link25')" onMouseOut="HideTip('tt19')">get_objection_total</a></td><td class=SDescription>Returns the current number of objections raised by the given <i>object</i> and all descendants.</td></tr>
<!-- index=20 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_objection.get_drain_time" id=link26 onMouseOver="ShowTip(event, 'tt20', 'link26')" onMouseOut="HideTip('tt20')">get_drain_time</a></td><td class=SDescription>Returns the current drain time set for the given <i>object</i> (default: 0 ns).</td></tr>
<!-- index=21 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_objection.display_objections" id=link27 onMouseOver="ShowTip(event, 'tt21', 'link27')" onMouseOut="HideTip('tt21')">display_objections</a></td><td class=SDescription>Displays objection information about the given <i>object</i>. </td></tr></table></div></div><!--END_ND_SUMMARY-->
</div></div></div>
<!--CONTENT index=2 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.new" href="../../src/base/uvm_objection.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 objection instance.&nbsp; Accesses the command line argument +UVM_OBJECTION_TRACE to turn tracing on for all objection objects.</p></div></div></div>
<!--CONTENT index=3 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.trace_mode" href="../../src/base/uvm_objection.svh">trace_mode</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 bit trace_mode (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap>mode</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>Set or get the trace mode for the objection object.&nbsp; If no argument is specified (or an argument other than 0 or 1) the current trace mode is unaffected.&nbsp; A trace_mode of 0 turns tracing off.&nbsp; A trace mode of 1 turns tracing on.&nbsp; The return value is the mode prior to being reset.</p></div></div></div>
<!--CONTENT index=4 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.Objection_Control" href="../../src/base/uvm_objection.svh">Objection Control</a></h3></div></div>
<!--CONTENT index=5 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.set_propagate_mode" href="../../src/base/uvm_objection.svh">set_propagate_mode</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>function void set_propagate_mode (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>bit&nbsp;</td>
<td class=PParameter nowrap width=100%>prop_mode</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Sets the propagation mode for this objection.</p><p>By default, objections support hierarchical propagation for components.&nbsp; For example, if we have the following basic component tree:</p><blockquote><pre>uvm_top.parent.child</pre></blockquote><p>Any objections raised by &lsquo;child&rsquo; would get propagated down to parent, and then to uvm_test_top.&nbsp; Resulting in the following counts and totals:</p><blockquote><pre> | count | total |
uvm_top.parent.child | 1 | 1 |
uvm_top.parent | 0 | 1 |
uvm_top | 0 | 1 |</pre></blockquote><p>While propagations such as these can be useful, if they are unused by the testbench then they are simply an unnecessary performance hit.&nbsp; If the testbench is not going to use this functionality, then the performance can be improved by setting the propagation mode to 0.</p><p>When propagation mode is set to 0, all intermediate callbacks between the <i>source</i> and <i>top</i> will be skipped.&nbsp; This would result in the following counts and totals for the above objection:</p><blockquote><pre> | count | total |
uvm_top.parent.child | 1 | 1 |
uvm_top.parent | 0 | 0 |
uvm_top | 0 | 1 |</pre></blockquote><p>Since the propagation mode changes the behavior of the objection, it can only be safely changed if there are no objections <i>raised</i> or <i>draining</i>.&nbsp; Any attempts to change the mode while objections are <i>raised</i> or <i>draining</i> will result in an error.</p></div></div></div>
<!--CONTENT index=6 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.get_propagate_mode" href="../../src/base/uvm_objection.svh">get_propagate_mode</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function bit get_propagate_mode()
</td></tr></table></blockquote><div class=CBody><p>Returns the propagation mode for this objection.</p></div></div></div>
<!--CONTENT index=7 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.raise_objection" href="../../src/base/uvm_objection.svh">raise_objection</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 raise_objection (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>null,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>description</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&quot;,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap>count</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>Raises the number of objections for the source <i>object</i> by <i>count</i>, which defaults to 1.&nbsp; The <i>object</i> is usually the <i>this</i> handle of the caller.&nbsp; If <i>object</i> is not specified or <i>null</i>, the implicit top-level component, <a href="uvm_root-svh.html#uvm_root" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt22', 'link29')" onMouseOut="HideTip('tt22')">uvm_root</a>, is chosen.</p><p>Raising an objection causes the following.</p><ul><li>The source and total objection counts for <i>object</i> are increased by <i>count</i>.&nbsp; <i>description</i> is a string that marks a specific objection and is used in tracing/debug.</li><li>The objection&rsquo;s <a href="#uvm_objection.raised" class=LMethod id=link30 onMouseOver="ShowTip(event, 'tt13', 'link30')" onMouseOut="HideTip('tt13')">raised</a> virtual method is called, which calls the <a href="uvm_component-svh.html#uvm_component.raised" class=LMethod id=link31 onMouseOver="ShowTip(event, 'tt23', 'link31')" onMouseOut="HideTip('tt23')">uvm_component::raised</a> method for all of the components up the hierarchy.</li></ul></div></div></div>
<!--CONTENT index=8 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.drop_objection" href="../../src/base/uvm_objection.svh">drop_objection</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 drop_objection (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>null,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>description</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&quot;,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap>count</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>Drops the number of objections for the source <i>object</i> by <i>count</i>, which defaults to 1.&nbsp; The <i>object</i> is usually the <i>this</i> handle of the caller.&nbsp; If <i>object</i> is not specified or <i>null</i>, the implicit top-level component, <a href="uvm_root-svh.html#uvm_root" class=LClass id=link32 onMouseOver="ShowTip(event, 'tt22', 'link32')" onMouseOut="HideTip('tt22')">uvm_root</a>, is chosen.</p><p>Dropping an objection causes the following.</p><ul><li>The source and total objection counts for <i>object</i> are decreased by <i>count</i>.&nbsp; It is an error to drop the objection count for <i>object</i> below zero.</li><li>The objection&rsquo;s <a href="#uvm_objection.dropped" class=LMethod id=link33 onMouseOver="ShowTip(event, 'tt14', 'link33')" onMouseOut="HideTip('tt14')">dropped</a> virtual method is called, which calls the <a href="uvm_component-svh.html#uvm_component.dropped" class=LMethod id=link34 onMouseOver="ShowTip(event, 'tt24', 'link34')" onMouseOut="HideTip('tt24')">uvm_component::dropped</a> method for all of the components up the hierarchy.</li><li>If the total objection count has not reached zero for <i>object</i>, then the drop is propagated up the object hierarchy as with <a href="#uvm_objection.raise_objection" class=LMethod id=link35 onMouseOver="ShowTip(event, 'tt10', 'link35')" onMouseOut="HideTip('tt10')">raise_objection</a>.&nbsp; Then, each object in the hierarchy will have updated their <i>source</i> counts--objections that they originated--and <i>total</i> counts--the total number of objections by them and all their descendants.</li></ul><p>If the total objection count reaches zero, propagation up the hierarchy is deferred until a configurable drain-time has passed and the <a href="uvm_component-svh.html#uvm_component.all_dropped" class=LMethod id=link36 onMouseOver="ShowTip(event, 'tt25', 'link36')" onMouseOut="HideTip('tt25')">uvm_component::all_dropped</a> callback for the current hierarchy level has returned.&nbsp; The following process occurs for each instance up the hierarchy from the source caller:</p><p>A process is forked in a non-blocking fashion, allowing the <i>drop</i> call to return.&nbsp; The forked process then does the following:</p><ul><li>If a drain time was set for the given <i>object</i>, the process waits for that amount of time.</li><li>The objection&rsquo;s <a href="#uvm_objection.all_dropped" class=LMethod id=link37 onMouseOver="ShowTip(event, 'tt15', 'link37')" onMouseOut="HideTip('tt15')">all_dropped</a> virtual method is called, which calls the <a href="uvm_component-svh.html#uvm_component.all_dropped" class=LMethod id=link38 onMouseOver="ShowTip(event, 'tt25', 'link38')" onMouseOut="HideTip('tt25')">uvm_component::all_dropped</a> method (if <i>object</i> is a component).</li><li>The process then waits for the <i>all_dropped</i> callback to complete.</li><li>After the drain time has elapsed and all_dropped callback has completed, propagation of the dropped objection to the parent proceeds as described in <a href="#uvm_objection.raise_objection" class=LMethod id=link39 onMouseOver="ShowTip(event, 'tt10', 'link39')" onMouseOut="HideTip('tt10')">raise_objection</a>, except as described below.</li></ul><p>If a new objection for this <i>object</i> or any of its descendants is raised during the drain time or during execution of the all_dropped callback at any point, the hierarchical chain described above is terminated and the dropped callback does not go up the hierarchy.&nbsp; The raised objection will propagate up the hierarchy, but the number of raised propagated up is reduced by the number of drops that were pending waiting for the all_dropped/drain time completion.&nbsp; Thus, if exactly one objection caused the count to go to zero, and during the drain exactly one new objection comes in, no raises or drops are propagated up the hierarchy,</p><p>As an optimization, if the <i>object</i> has no set drain-time and no registered callbacks, the forked process can be skipped and propagation proceeds immediately to the parent as described.</p></div></div></div>
<!--CONTENT index=9 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.clear" href="../../src/base/uvm_objection.svh">clear</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 clear(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</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>Immediately clears the objection state.&nbsp; All counts are cleared and the any processes waiting on a call to wait_for(UVM_ALL_DROPPED, uvm_top) are released.</p><p>The caller, if a uvm_object-based object, should pass its &lsquo;this&rsquo; handle to the <i>obj</i> argument to document who cleared the objection.&nbsp; Any drain_times set by the user are not affected.</p></div></div></div>
<!--CONTENT index=10 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.set_drain_time" href="../../src/base/uvm_objection.svh">set_drain_time</a></h3><div class=CBody><p>Sets the drain time on the given <i>object</i> to <i>drain</i>.</p><p>The drain time is the amount of time to wait once all objections have been dropped before calling the all_dropped callback and propagating the objection to the parent.</p><p>If a new objection for this <i>object</i> or any of its descendants is raised during the drain time or during execution of the all_dropped callbacks, the drain_time/all_dropped execution is terminated.</p></div></div></div>
<!--CONTENT index=11 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.Callback_Hooks" href="../../src/base/uvm_objection.svh">Callback Hooks</a></h3></div></div>
<!--CONTENT index=12 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.raised" href="../../src/base/uvm_objection.svh">raised</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 raised (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>source_obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>description,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap width=100%>count</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Objection callback that is called when a <a href="#uvm_objection.raise_objection" class=LMethod id=link40 onMouseOver="ShowTip(event, 'tt10', 'link40')" onMouseOut="HideTip('tt10')">raise_objection</a> has reached <i>obj</i>.&nbsp; The default implementation calls <a href="uvm_component-svh.html#uvm_component.raised" class=LMethod id=link41 onMouseOver="ShowTip(event, 'tt23', 'link41')" onMouseOut="HideTip('tt23')">uvm_component::raised</a>.</p></div></div></div>
<!--CONTENT index=13 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.dropped" href="../../src/base/uvm_objection.svh">dropped</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 dropped (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>source_obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>description,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap width=100%>count</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Objection callback that is called when a <a href="#uvm_objection.drop_objection" class=LMethod id=link42 onMouseOver="ShowTip(event, 'tt11', 'link42')" onMouseOut="HideTip('tt11')">drop_objection</a> has reached <i>obj</i>.&nbsp; The default implementation calls <a href="uvm_component-svh.html#uvm_component.dropped" class=LMethod id=link43 onMouseOver="ShowTip(event, 'tt24', 'link43')" onMouseOut="HideTip('tt24')">uvm_component::dropped</a>.</p></div></div></div>
<!--CONTENT index=14 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.all_dropped" href="../../src/base/uvm_objection.svh">all_dropped</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 task all_dropped (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>source_obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>description,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap width=100%>count</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Objection callback that is called when a <a href="#uvm_objection.drop_objection" class=LMethod id=link44 onMouseOver="ShowTip(event, 'tt11', 'link44')" onMouseOut="HideTip('tt11')">drop_objection</a> has reached <i>obj</i>, and the total count for <i>obj</i> goes to zero.&nbsp; This callback is executed after the drain time associated with <i>obj</i>.&nbsp; The default implementation calls <a href="uvm_component-svh.html#uvm_component.all_dropped" class=LMethod id=link45 onMouseOver="ShowTip(event, 'tt25', 'link45')" onMouseOut="HideTip('tt25')">uvm_component::all_dropped</a>.</p></div></div></div>
<!--CONTENT index=15 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.Objection_Status" href="../../src/base/uvm_objection.svh">Objection Status</a></h3></div></div>
<!--CONTENT index=16 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.get_objectors" href="../../src/base/uvm_objection.svh">get_objectors</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>function void get_objectors(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PTypePrefix nowrap>ref&nbsp;</td>
<td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>list[$]</td>
</tr>
<tr>
<td class=PAfterParameters colspan=4>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Returns the current list of objecting objects (objects that raised an objection but have not dropped it).</p></div></div></div>
<!--CONTENT index=17 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.wait_for" href="../../src/base/uvm_objection.svh">wait_for</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>task wait_for(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_objection_event&nbsp;</td>
<td class=PParameter nowrap>objt_event,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</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>Waits for the raised, dropped, or all_dropped <i>event</i> to occur in the given <i>obj</i>.&nbsp; The task returns after all corresponding callbacks for that event have been executed.</p></div></div></div>
<!--CONTENT index=18 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.get_objection_count" href="../../src/base/uvm_objection.svh">get_objection_count</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 int get_objection_count (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</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>Returns the current number of objections raised by the given <i>object</i>.</p></div></div></div>
<!--CONTENT index=19 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.get_objection_total" href="../../src/base/uvm_objection.svh">get_objection_total</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 int get_objection_total (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</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>Returns the current number of objections raised by the given <i>object</i> and all descendants.</p></div></div></div>
<!--CONTENT index=20 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.get_drain_time" href="../../src/base/uvm_objection.svh">get_drain_time</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 time get_drain_time (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</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>Returns the current drain time set for the given <i>object</i> (default: 0 ns).</p></div></div></div>
<!--CONTENT index=21 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection.display_objections" href="../../src/base/uvm_objection.svh">display_objections</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 void display_objections(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>null,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>bit&nbsp;</td>
<td class=PParameter nowrap>show_header</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>Displays objection information about the given <i>object</i>.&nbsp; If <i>object</i> is not specified or <i>null</i>, the implicit top-level component, <a href="uvm_root-svh.html#uvm_root" class=LClass id=link46 onMouseOver="ShowTip(event, 'tt22', 'link46')" onMouseOut="HideTip('tt22')">uvm_root</a>, is chosen.&nbsp; The <i>show_header</i> argument allows control of whether a header is output.</p></div></div></div>
<!--CONTENT index=22 -->
<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_objection_callback" href="../../src/base/uvm_objection.svh">uvm_objection_callback</a></h2><div class=CBody><p>The uvm_objection is the callback type that defines the callback implementations for an objection callback.&nbsp; A user uses the callback type uvm_objection_cbs_t to add callbacks to specific objections.</p><h4 class=CHeading>For example</h4><blockquote><pre>class my_objection_cb extends uvm_objection_callback;
function new(string name);
super.new(name);
endfunction
virtual function void raised (uvm_objection objection, uvm_object obj,
uvm_object source_obj, string description, int count);
`uvm_info(&quot;RAISED&quot;,&quot;%0t: Objection %s: Raised for %s&quot;, $time, objection.get_name(),
obj.get_full_name());
endfunction
endclass
...
initial begin
my_objection_cb cb = new(&quot;cb&quot;);
uvm_objection_cbs_t::add(null, cb); //typewide callback
end</pre></blockquote>
<!--START_ND_SUMMARY index=22-->
<div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable>
<!-- index=22 -->
<tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_objection_callback" id=link50 onMouseOver="ShowTip(event, 'tt2', 'link50')" onMouseOut="HideTip('tt2')">uvm_objection_callback</a></td></tr>
<tr class=SMain><td colspan=2 class=SWideDescription>The uvm_objection is the callback type that defines the callback implementations for an objection callback. </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=link47 onMouseOver="ShowTip(event, 'tt3', 'link47')" onMouseOut="HideTip('tt3')">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=link48 onMouseOver="ShowTip(event, 'tt4', 'link48')" onMouseOut="HideTip('tt4')">uvm_object</a></div></div></td></tr>
<tr><td><div class=CHParent><div class=CHEntry><a href="uvm_callback-svh.html#uvm_callback" class=LClass id=link49 onMouseOver="ShowTip(event, 'tt26', 'link49')" onMouseOut="HideTip('tt26')">uvm_callback</a></div></div></td></tr>
<tr><td><div class=CHCurrent><div class=CHEntry>uvm_objection_callback</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>class uvm_objection_callback extends uvm_callback
</td></tr></table></blockquote></td></tr>
<!-- index=23 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_objection_callback.Methods" >Methods</a></td><td class=SDescription></td></tr>
<!-- index=24 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_objection_callback.raised" id=link51 onMouseOver="ShowTip(event, 'tt27', 'link51')" onMouseOut="HideTip('tt27')">raised</a></td><td class=SDescription>Objection raised callback function. </td></tr>
<!-- index=25 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_objection_callback.dropped" id=link52 onMouseOver="ShowTip(event, 'tt28', 'link52')" onMouseOut="HideTip('tt28')">dropped</a></td><td class=SDescription>Objection dropped callback function. </td></tr>
<!-- index=26 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_objection_callback.all_dropped" id=link53 onMouseOver="ShowTip(event, 'tt29', 'link53')" onMouseOut="HideTip('tt29')">all_dropped</a></td><td class=SDescription>Objection all_dropped callback function. </td></tr></table></div></div><!--END_ND_SUMMARY-->
</div></div></div>
<!--CONTENT index=23 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_objection_callback.Methods" href="../../src/base/uvm_objection.svh">Methods</a></h3></div></div>
<!--CONTENT index=24 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection_callback.raised" href="../../src/base/uvm_objection.svh">raised</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 raised (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_objection&nbsp;</td>
<td class=PParameter nowrap width=100%>objection,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>source_obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>description,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap width=100%>count</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Objection raised callback function.&nbsp; Called by <a href="#uvm_objection.raised" class=LMethod id=link54 onMouseOver="ShowTip(event, 'tt13', 'link54')" onMouseOut="HideTip('tt13')">uvm_objection::raised</a>.</p></div></div></div>
<!--CONTENT index=25 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection_callback.dropped" href="../../src/base/uvm_objection.svh">dropped</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 dropped (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_objection&nbsp;</td>
<td class=PParameter nowrap width=100%>objection,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>source_obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>description,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap width=100%>count</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Objection dropped callback function.&nbsp; Called by <a href="#uvm_objection.dropped" class=LMethod id=link55 onMouseOver="ShowTip(event, 'tt14', 'link55')" onMouseOut="HideTip('tt14')">uvm_objection::dropped</a>.</p></div></div></div>
<!--CONTENT index=26 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_objection_callback.all_dropped" href="../../src/base/uvm_objection.svh">all_dropped</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 task all_dropped (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_objection&nbsp;</td>
<td class=PParameter nowrap width=100%>objection,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>source_obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>description,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap width=100%>count</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Objection all_dropped callback function.&nbsp; Called by <a href="#uvm_objection.all_dropped" class=LMethod id=link56 onMouseOver="ShowTip(event, 'tt15', 'link56')" onMouseOut="HideTip('tt15')">uvm_objection::all_dropped</a>.</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>class uvm_objection extends uvm_report_object
</td></tr></table></blockquote>Objections provide a facility for coordinating status information between two or more participating components, objects, and even module-based IP.</div></div><div class=CToolTip id="tt2"><div class=CClass>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_objection_callback extends uvm_callback
</td></tr></table></blockquote>The uvm_objection is the callback type that defines the callback implementations for an objection callback. </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_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="tt4"><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="tt5"><div class=CClass>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_report_object extends uvm_object
</td></tr></table></blockquote>The uvm_report_object provides an interface to the UVM reporting facility. </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>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 objection instance. </div></div><div class=CToolTip id="tt7"><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 bit trace_mode (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap>mode</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>
Set or get the trace mode for the objection object. </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=3>function void set_propagate_mode (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>bit&nbsp;</td>
<td class=PParameter nowrap width=100%>prop_mode</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
Sets the propagation mode for this objection.</div></div><div class=CToolTip id="tt9"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function bit get_propagate_mode()
</td></tr></table></blockquote>Returns the propagation mode for this objection.</div></div><div class=CToolTip id="tt10"><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 raise_objection (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>null,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>description</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&quot;,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap>count</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>
Raises the number of objections for the source <i>object</i> by <i>count</i>, which defaults to 1. </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=5>virtual function void drop_objection (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>null,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>description</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&quot;,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap>count</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>
Drops the number of objections for the source <i>object</i> by <i>count</i>, which defaults to 1. </div></div><div class=CToolTip id="tt12"><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 clear(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</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>
Immediately clears the objection state. </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=3>virtual function void raised (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>source_obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>description,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap width=100%>count</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
Objection callback that is called when a raise_objection has reached <i>obj</i>. </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 dropped (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>source_obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>description,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap width=100%>count</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
Objection callback that is called when a drop_objection has reached <i>obj</i>. </div></div><div class=CToolTip id="tt15"><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 task all_dropped (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>source_obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>description,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap width=100%>count</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
Objection callback that is called when a drop_objection has reached <i>obj</i>, and the total count for <i>obj</i> goes to zero. </div></div><div class=CToolTip id="tt16"><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>function void get_objectors(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PTypePrefix nowrap>ref&nbsp;</td>
<td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>list[$]</td>
</tr>
<tr>
<td class=PAfterParameters colspan=4>)</td></tr>
</table></td></tr>
</table></blockquote>
Returns the current list of objecting objects (objects that raised an objection but have not dropped it).</div></div><div class=CToolTip id="tt17"><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>task wait_for(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_objection_event&nbsp;</td>
<td class=PParameter nowrap>objt_event,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</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>
Waits for the raised, dropped, or all_dropped <i>event</i> to occur in the given <i>obj</i>. </div></div><div class=CToolTip id="tt18"><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 int get_objection_count (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</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>
Returns the current number of objections raised by the given <i>object</i>.</div></div><div class=CToolTip id="tt19"><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 int get_objection_total (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</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>
Returns the current number of objections raised by the given <i>object</i> and all descendants.</div></div><div class=CToolTip id="tt20"><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 time get_drain_time (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</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>
Returns the current drain time set for the given <i>object</i> (default: 0 ns).</div></div><div class=CToolTip id="tt21"><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 void display_objections(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap>obj</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>null,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>bit&nbsp;</td>
<td class=PParameter nowrap>show_header</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>
Displays objection information about the given <i>object</i>. </div></div><div class=CToolTip id="tt22"><div class=CClass>The <i>uvm_root</i> class serves as the implicit top-level and phase controller for all UVM components. </div></div><div class=CToolTip id="tt23"><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 raised (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_objection&nbsp;</td>
<td class=PParameter nowrap width=100%>objection,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>source_obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>description,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap width=100%>count</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
The <i>raised</i> callback is called when this or a descendant of this component instance raises the specified <i>objection</i>. </div></div><div class=CToolTip id="tt24"><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 dropped (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_objection&nbsp;</td>
<td class=PParameter nowrap width=100%>objection,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>source_obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>description,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap width=100%>count</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
The <i>dropped</i> callback is called when this or a descendant of this component instance drops the specified <i>objection</i>. </div></div><div class=CToolTip id="tt25"><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 task all_dropped (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_objection&nbsp;</td>
<td class=PParameter nowrap width=100%>objection,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>source_obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>description,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap width=100%>count</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
The <i>all_droppped</i> callback is called when all objections have been dropped by this component and all its descendants. </div></div><div class=CToolTip id="tt26"><div class=CClass>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_callback extends uvm_object
</td></tr></table></blockquote>The <i>uvm_callback</i> class is the base class for user-defined callback classes. </div></div><div class=CToolTip id="tt27"><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 raised (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_objection&nbsp;</td>
<td class=PParameter nowrap width=100%>objection,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>source_obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>description,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap width=100%>count</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
Objection raised callback function. </div></div><div class=CToolTip id="tt28"><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 dropped (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_objection&nbsp;</td>
<td class=PParameter nowrap width=100%>objection,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>source_obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>description,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap width=100%>count</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
Objection dropped callback function. </div></div><div class=CToolTip id="tt29"><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 task all_dropped (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_objection&nbsp;</td>
<td class=PParameter nowrap width=100%>objection,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object&nbsp;</td>
<td class=PParameter nowrap width=100%>source_obj,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>description,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>int&nbsp;</td>
<td class=PParameter nowrap width=100%>count</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
Objection all_dropped callback function. </div></div><!--END_ND_TOOLTIPS-->
<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>