| <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. 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> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>""</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Creates a new objection instance. 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> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>mode</td> |
| <td class=PDefaultValuePrefix> = </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. If no argument is specified (or an argument other than 0 or 1) the current trace mode is unaffected. A trace_mode of 0 turns tracing off. A trace mode of 1 turns tracing on. 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> </td> <td class=PType nowrap>bit </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. For example, if we have the following basic component tree:</p><blockquote><pre>uvm_top.parent.child</pre></blockquote><p>Any objections raised by ‘child’ would get propagated down to parent, and then to uvm_test_top. 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. 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. 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>. 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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>description</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>count</td> |
| <td class=PDefaultValuePrefix> = </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. The <i>object</i> is usually the <i>this</i> handle of the caller. 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>. <i>description</i> is a string that marks a specific objection and is used in tracing/debug.</li><li>The objection’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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>description</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>count</td> |
| <td class=PDefaultValuePrefix> = </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. The <i>object</i> is usually the <i>this</i> handle of the caller. 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>. It is an error to drop the objection count for <i>object</i> below zero.</li><li>The objection’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>. 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. 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. 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’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. 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. 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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </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. 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 ‘this’ handle to the <i>obj</i> argument to document who cleared the objection. 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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </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>. 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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </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>. 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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </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. This callback is executed after the drain time associated with <i>obj</i>. 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> </td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_object </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> </td> <td class=PType nowrap>uvm_objection_event </td> |
| <td class=PParameter nowrap>objt_event,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </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>. 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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>show_header</td> |
| <td class=PDefaultValuePrefix> = </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>. 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. 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. 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("RAISED","%0t: Objection %s: Raised for %s", $time, objection.get_name(), |
| obj.get_full_name()); |
| endfunction |
| endclass |
| ... |
| initial begin |
| my_objection_cb cb = new("cb"); |
| 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> </td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap width=100%>objection,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </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. 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> </td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap width=100%>objection,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </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. 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> </td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap width=100%>objection,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </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. 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> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>""</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> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>mode</td> |
| <td class=PDefaultValuePrefix> = </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> </td> <td class=PType nowrap>bit </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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>description</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>count</td> |
| <td class=PDefaultValuePrefix> = </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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>description</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>count</td> |
| <td class=PDefaultValuePrefix> = </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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </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> </td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_object </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> </td> <td class=PType nowrap>uvm_objection_event </td> |
| <td class=PParameter nowrap>objt_event,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </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> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>obj</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>show_header</td> |
| <td class=PDefaultValuePrefix> = </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> </td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap width=100%>objection,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </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> </td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap width=100%>objection,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </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> </td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap width=100%>objection,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </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> </td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap width=100%>objection,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </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> </td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap width=100%>objection,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </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> </td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap width=100%>objection,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </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> |