| <html><head><title>Phasing Definition classes</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="Phasing_Definition_classes" href="../../src/base/uvm_phase.svh">Phasing Definition classes</a></h1><div class=CBody><p>The following class are used to specify a phase and its implied functionality.</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="#Phasing_Definition_classes" >Phasing Definition classes</a></td><td class=SDescription>The following class are used to specify a phase and its implied functionality.</td></tr> |
| <!-- index=1 --> |
| |
| <tr class="SSMethod SMarked"><td class=SEntry><a href="#uvm_phase" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">uvm_phase</a></td><td class=SDescription>This base class defines everything about a phase: behavior, state, and context.</td></tr> |
| <!-- index=41 --> |
| |
| <tr class="SSMethod"><td class=SEntry><a href="#uvm_phase_state_change" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">uvm_phase_state_change</a></td><td class=SDescription>Phase state transition descriptor. </td></tr> |
| <!-- index=46 --> |
| |
| <tr class="SSMethod SMarked"><td class=SEntry><a href="#uvm_phase_cb" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">uvm_phase_cb</a></td><td class=SDescription>This class defines a callback method that is invoked by the phaser during the execution of a specific node in the phase graph or all phase nodes. </td></tr> |
| <!-- index=50 --> |
| |
| <tr class="SSMethod"><td class=SEntry><a href="#uvm_phase_cb_pool" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">uvm_phase_cb_pool</a></td><td class=SDescription>Convenience type for the uvm_callbacks#(uvm_phase, uvm_phase_cb) class.</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_phase" href="../../src/base/uvm_phase.svh">uvm_phase</a></h2><div class=CBody><p>This base class defines everything about a phase: behavior, state, and context.</p><p>To define behavior, it is extended by UVM or the user to create singleton objects which capture the definition of what the phase does and how it does it. These are then cloned to produce multiple nodes which are hooked up in a graph structure to provide context: which phases follow which, and to hold the state of the phase throughout its lifetime. UVM provides default extensions of this class for the standard runtime phases. VIP Providers can likewise extend this class to define the phase functor for a particular component context as required.</p><p>This base class defines everything about a phase: behavior, state, and context.</p><p>To define behavior, it is extended by UVM or the user to create singleton objects which capture the definition of what the phase does and how it does it. These are then cloned to produce multiple nodes which are hooked up in a graph structure to provide context: which phases follow which, and to hold the state of the phase throughout its lifetime. UVM provides default extensions of this class for the standard runtime phases. VIP Providers can likewise extend this class to define the phase functor for a particular component context as required.</p><p><b>Phase Definition</b></p><p>Singleton instances of those extensions are provided as package variables. These instances define the attributes of the phase (not what state it is in) They are then cloned into schedule nodes which point back to one of these implementations, and calls its virtual task or function methods on each participating component. It is the base class for phase functors, for both predefined and user-defined phases. Per-component overrides can use a customized imp.</p><p>To create custom phases, do not extend uvm_phase directly: see the three predefined extended classes below which encapsulate behavior for different phase types: task, bottom-up function and top-down function.</p><p>Extend the appropriate one of these to create a uvm_YOURNAME_phase class (or YOURPREFIX_NAME_phase class) for each phase, containing the default implementation of the new phase, which must be a uvm_component-compatible delegate, and which may be a <i>null</i> implementation. Instantiate a singleton instance of that class for your code to use when a phase handle is required. If your custom phase depends on methods that are not in uvm_component, but are within an extended class, then extend the base YOURPREFIX_NAME_phase class with parameterized component class context as required, to create a specialized functor which calls your extended component class methods. This scheme ensures compile-safety for your extended component classes while providing homogeneous base types for APIs and underlying data structures.</p><p><b>Phase Context</b></p><p>A schedule is a coherent group of one or mode phase/state nodes linked together by a graph structure, allowing arbitrary linear/parallel relationships to be specified, and executed by stepping through them in the graph order. Each schedule node points to a phase and holds the execution state of that phase, and has optional links to other nodes for synchronization.</p><p>The main operations are: construct, add phases, and instantiate hierarchically within another schedule.</p><p>Structure is a DAG (Directed Acyclic Graph). Each instance is a node connected to others to form the graph. Hierarchy is overlaid with m_parent. Each node in the graph has zero or more successors, and zero or more predecessors. No nodes are completely isolated from others. Exactly one node has zero predecessors. This is the root node. Also the graph is acyclic, meaning for all nodes in the graph, by following the forward arrows you will never end up back where you started but you will eventually reach a node that has no successors.</p><p><b>Phase State</b></p><p>A given phase may appear multiple times in the complete phase graph, due to the multiple independent domain feature, and the ability for different VIP to customize their own phase schedules perhaps reusing existing phases. Each node instance in the graph maintains its own state of execution.</p><p><b>Phase Handle</b></p><p>Handles of this type uvm_phase are used frequently in the API, both by the user, to access phasing-specific API, and also as a parameter to some APIs. In many cases, the singleton phase handles can be used (eg. <a href="uvm_common_phases-svh.html#uvm_run_phase.get" class=LMethod id=link44 onMouseOver="ShowTip(event, 'tt41', 'link44')" onMouseOut="HideTip('tt41')">uvm_run_phase::get()</a>) in APIs. For those APIs that need to look up that phase in the graph, this is done automatically.</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_phase" id=link7 onMouseOver="ShowTip(event, 'tt1', 'link7')" onMouseOut="HideTip('tt1')">uvm_phase</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>This base class defines everything about a phase: behavior, state, and context.</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, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">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, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">uvm_object</a></div></div></td></tr> |
| <tr><td><div class=CHCurrent><div class=CHEntry>uvm_phase</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_phase extends uvm_object |
| </td></tr></table></blockquote></td></tr> |
| |
| <!-- index=2 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_phase.Construction" >Construction</a></td><td class=SDescription></td></tr> |
| <!-- index=3 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.new" id=link8 onMouseOver="ShowTip(event, 'tt7', 'link8')" onMouseOut="HideTip('tt7')">new</a></td><td class=SDescription>Create a new phase node, with a name and a note of its type name - name of this phase type - a value in <a href="uvm_object_globals-svh.html#uvm_phase_type" class=LType id=link9 onMouseOver="ShowTip(event, 'tt8', 'link9')" onMouseOut="HideTip('tt8')">uvm_phase_type</a></td></tr> |
| <!-- index=4 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.get_phase_type" id=link10 onMouseOver="ShowTip(event, 'tt9', 'link10')" onMouseOut="HideTip('tt9')">get_phase_type</a></td><td class=SDescription>Returns the phase type as defined by <a href="uvm_object_globals-svh.html#uvm_phase_type" class=LType id=link11 onMouseOver="ShowTip(event, 'tt8', 'link11')" onMouseOut="HideTip('tt8')">uvm_phase_type</a></td></tr> |
| <!-- index=5 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_phase.State" >State</a></td><td class=SDescription></td></tr> |
| <!-- index=6 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.get_state" id=link12 onMouseOver="ShowTip(event, 'tt10', 'link12')" onMouseOut="HideTip('tt10')">get_state</a></td><td class=SDescription>Accessor to return current state of this phase</td></tr> |
| <!-- index=7 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.get_run_count" id=link13 onMouseOver="ShowTip(event, 'tt11', 'link13')" onMouseOut="HideTip('tt11')">get_run_count</a></td><td class=SDescription>Accessor to return the integer number of times this phase has executed</td></tr> |
| <!-- index=8 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.find_by_name" id=link14 onMouseOver="ShowTip(event, 'tt12', 'link14')" onMouseOut="HideTip('tt12')">find_by_name</a></td><td class=SDescription>Locate a phase node with the specified <i>name</i> and return its handle. </td></tr> |
| <!-- index=9 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.find" id=link15 onMouseOver="ShowTip(event, 'tt13', 'link15')" onMouseOut="HideTip('tt13')">find</a></td><td class=SDescription>Locate the phase node with the specified <i>phase</i> IMP and return its handle. </td></tr> |
| <!-- index=10 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.is" id=link16 onMouseOver="ShowTip(event, 'tt14', 'link16')" onMouseOut="HideTip('tt14')">is</a></td><td class=SDescription>returns 1 if the containing uvm_phase refers to the same phase as the phase argument, 0 otherwise</td></tr> |
| <!-- index=11 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.is_before" id=link17 onMouseOver="ShowTip(event, 'tt15', 'link17')" onMouseOut="HideTip('tt15')">is_before</a></td><td class=SDescription>Returns 1 if the containing uvm_phase refers to a phase that is earlier than the phase argument, 0 otherwise</td></tr> |
| <!-- index=12 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.is_after" id=link18 onMouseOver="ShowTip(event, 'tt16', 'link18')" onMouseOut="HideTip('tt16')">is_after</a></td><td class=SDescription>returns 1 if the containing uvm_phase refers to a phase that is later than the phase argument, 0 otherwise</td></tr> |
| <!-- index=13 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_phase.Callbacks" >Callbacks</a></td><td class=SDescription></td></tr> |
| <!-- index=14 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.exec_func" id=link19 onMouseOver="ShowTip(event, 'tt17', 'link19')" onMouseOut="HideTip('tt17')">exec_func</a></td><td class=SDescription>Implements the functor/delegate functionality for a function phase type comp - the component to execute the functionality upon phase - the phase schedule that originated this phase call</td></tr> |
| <!-- index=15 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.exec_task" id=link20 onMouseOver="ShowTip(event, 'tt18', 'link20')" onMouseOut="HideTip('tt18')">exec_task</a></td><td class=SDescription>Implements the functor/delegate functionality for a task phase type comp - the component to execute the functionality upon phase - the phase schedule that originated this phase call</td></tr> |
| <!-- index=16 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_phase.Schedule" >Schedule</a></td><td class=SDescription></td></tr> |
| <!-- index=17 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.add" id=link21 onMouseOver="ShowTip(event, 'tt19', 'link21')" onMouseOut="HideTip('tt19')">add</a></td><td class=SDescription>Build up a schedule structure inserting phase by phase, specifying linkage</td></tr> |
| <!-- index=18 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.get_parent" id=link22 onMouseOver="ShowTip(event, 'tt20', 'link22')" onMouseOut="HideTip('tt20')">get_parent</a></td><td class=SDescription>Returns the parent schedule node, if any, for hierarchical graph traversal</td></tr> |
| <!-- index=19 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.get_full_name" id=link23 onMouseOver="ShowTip(event, 'tt21', 'link23')" onMouseOut="HideTip('tt21')">get_full_name</a></td><td class=SDescription>Returns the full path from the enclosing domain down to this node. </td></tr> |
| <!-- index=20 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.get_schedule" id=link24 onMouseOver="ShowTip(event, 'tt22', 'link24')" onMouseOut="HideTip('tt22')">get_schedule</a></td><td class=SDescription>Returns the topmost parent schedule node, if any, for hierarchical graph traversal</td></tr> |
| <!-- index=21 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.get_schedule_name" id=link25 onMouseOver="ShowTip(event, 'tt23', 'link25')" onMouseOut="HideTip('tt23')">get_schedule_name</a></td><td class=SDescription>Returns the schedule name associated with this phase node</td></tr> |
| <!-- index=22 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.get_domain" id=link26 onMouseOver="ShowTip(event, 'tt24', 'link26')" onMouseOut="HideTip('tt24')">get_domain</a></td><td class=SDescription>Returns the enclosing domain</td></tr> |
| <!-- index=23 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.get_imp" id=link27 onMouseOver="ShowTip(event, 'tt25', 'link27')" onMouseOut="HideTip('tt25')">get_imp</a></td><td class=SDescription>Returns the phase implementation for this this node. </td></tr> |
| <!-- index=24 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.get_domain_name" id=link28 onMouseOver="ShowTip(event, 'tt26', 'link28')" onMouseOut="HideTip('tt26')">get_domain_name</a></td><td class=SDescription>Returns the domain name associated with this phase node</td></tr> |
| <!-- index=25 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.get_adjacent_predecessor_nodes" id=link29 onMouseOver="ShowTip(event, 'tt27', 'link29')" onMouseOut="HideTip('tt27')">get_adjacent_predecessor_nodes</a></td><td class=SDescription>Provides an array of nodes which are predecessors to <i>this</i> phase node. </td></tr> |
| <!-- index=26 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.get_adjacent_successor_nodes" id=link30 onMouseOver="ShowTip(event, 'tt28', 'link30')" onMouseOut="HideTip('tt28')">get_adjacent_successor_nodes</a></td><td class=SDescription>Provides an array of nodes which are successors to <i>this</i> phase node. </td></tr> |
| <!-- index=27 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_phase.Phase_Done_Objection" >Phase Done Objection</a></td><td class=SDescription>Task-based phase nodes within the phasing graph provide a <a href="uvm_objection-svh.html#uvm_objection" class=LClass id=link31 onMouseOver="ShowTip(event, 'tt29', 'link31')" onMouseOut="HideTip('tt29')">uvm_objection</a> based interface for prolonging the execution of the phase. </td></tr> |
| <!-- index=28 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.get_objection" id=link32 onMouseOver="ShowTip(event, 'tt30', 'link32')" onMouseOut="HideTip('tt30')">get_objection</a></td><td class=SDescription>Return the <a href="uvm_objection-svh.html#uvm_objection" class=LClass id=link33 onMouseOver="ShowTip(event, 'tt29', 'link33')" onMouseOut="HideTip('tt29')">uvm_objection</a> that gates the termination of the phase.</td></tr> |
| <!-- index=29 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.raise_objection" id=link34 onMouseOver="ShowTip(event, 'tt31', 'link34')" onMouseOut="HideTip('tt31')">raise_objection</a></td><td class=SDescription>Raise an objection to ending this phase Provides components with greater control over the phase flow for processes which are not implicit objectors to the phase.</td></tr> |
| <!-- index=30 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.drop_objection" id=link35 onMouseOver="ShowTip(event, 'tt32', 'link35')" onMouseOut="HideTip('tt32')">drop_objection</a></td><td class=SDescription>Drop an objection to ending this phase</td></tr> |
| <!-- index=31 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.get_objection_count" id=link36 onMouseOver="ShowTip(event, 'tt33', 'link36')" onMouseOut="HideTip('tt33')">get_objection_count</a></td><td class=SDescription>Returns the current number of objections to ending this phase raised by the given <i>object</i>.</td></tr> |
| <!-- index=32 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_phase.Synchronization" >Synchronization</a></td><td class=SDescription>The functions ‘sync’ and ‘unsync’ add soft sync relationships between nodes</td></tr> |
| <!-- index=33 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.sync" id=link37 onMouseOver="ShowTip(event, 'tt34', 'link37')" onMouseOut="HideTip('tt34')">sync</a></td><td class=SDescription>Synchronize two domains, fully or partially</td></tr> |
| <!-- index=34 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.unsync" id=link38 onMouseOver="ShowTip(event, 'tt35', 'link38')" onMouseOut="HideTip('tt35')">unsync</a></td><td class=SDescription>Remove synchronization between two domains, fully or partially</td></tr> |
| <!-- index=35 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.wait_for_state" id=link39 onMouseOver="ShowTip(event, 'tt36', 'link39')" onMouseOut="HideTip('tt36')">wait_for_state</a></td><td class=SDescription>Wait until this phase compares with the given <i>state</i> and <i>op</i> operand. </td></tr> |
| <!-- index=36 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_phase.Jumping" >Jumping</a></td><td class=SDescription></td></tr> |
| <!-- index=37 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.jump" id=link40 onMouseOver="ShowTip(event, 'tt37', 'link40')" onMouseOut="HideTip('tt37')">jump</a></td><td class=SDescription>Jump to a specified <i>phase</i>. </td></tr> |
| <!-- index=38 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.set_jump_phase" id=link41 onMouseOver="ShowTip(event, 'tt38', 'link41')" onMouseOut="HideTip('tt38')">set_jump_phase</a></td><td class=SDescription>Specify a phase to transition to when phase is complete. </td></tr> |
| <!-- index=39 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase.end_prematurely" id=link42 onMouseOver="ShowTip(event, 'tt39', 'link42')" onMouseOut="HideTip('tt39')">end_prematurely</a></td><td class=SDescription>Set a flag to cause the phase to end prematurely. </td></tr> |
| <!-- index=40 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase.get_jump_target" id=link43 onMouseOver="ShowTip(event, 'tt40', 'link43')" onMouseOut="HideTip('tt40')">get_jump_target</a></td><td class=SDescription>Return handle to the target phase of the current jump, or <i>null</i> if no jump is in progress. </td></tr></table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=2 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.Construction" href="../../src/base/uvm_phase.svh">Construction</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=3 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.new" href="../../src/base/uvm_phase.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%>"uvm_phase",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase_type </td> |
| <td class=PParameter nowrap>phase_type</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>UVM_PHASE_SCHEDULE,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>parent</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>Create a new phase node, with a name and a note of its type name - name of this phase type - a value in <a href="uvm_object_globals-svh.html#uvm_phase_type" class=LType id=link45 onMouseOver="ShowTip(event, 'tt8', 'link45')" onMouseOut="HideTip('tt8')">uvm_phase_type</a></p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=4 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.get_phase_type" href="../../src/base/uvm_phase.svh">get_phase_type</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_phase_type get_phase_type() |
| </td></tr></table></blockquote><div class=CBody><p>Returns the phase type as defined by <a href="uvm_object_globals-svh.html#uvm_phase_type" class=LType id=link46 onMouseOver="ShowTip(event, 'tt8', 'link46')" onMouseOut="HideTip('tt8')">uvm_phase_type</a></p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=5 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.State" href="../../src/base/uvm_phase.svh">State</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=6 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.get_state" href="../../src/base/uvm_phase.svh">get_state</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_phase_state get_state() |
| </td></tr></table></blockquote><div class=CBody><p>Accessor to return current state of this phase</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=7 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.get_run_count" href="../../src/base/uvm_phase.svh">get_run_count</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function int get_run_count() |
| </td></tr></table></blockquote><div class=CBody><p>Accessor to return the integer number of times this phase has executed</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=8 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.find_by_name" href="../../src/base/uvm_phase.svh">find_by_name</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 uvm_phase find_by_name(</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> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>stay_in_scope</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>Locate a phase node with the specified <i>name</i> and return its handle. With <i>stay_in_scope</i> set, searches only within this phase’s schedule or domain.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=9 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.find" href="../../src/base/uvm_phase.svh">find</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 uvm_phase find(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>stay_in_scope</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>Locate the phase node with the specified <i>phase</i> IMP and return its handle. With <i>stay_in_scope</i> set, searches only within this phase’s schedule or domain.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=10 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.is" href="../../src/base/uvm_phase.svh">is</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 bit is(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>returns 1 if the containing uvm_phase refers to the same phase as the phase argument, 0 otherwise</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=11 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.is_before" href="../../src/base/uvm_phase.svh">is_before</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 bit is_before(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Returns 1 if the containing uvm_phase refers to a phase that is earlier than the phase argument, 0 otherwise</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=12 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.is_after" href="../../src/base/uvm_phase.svh">is_after</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 bit is_after(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>returns 1 if the containing uvm_phase refers to a phase that is later than the phase argument, 0 otherwise</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=13 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.Callbacks" href="../../src/base/uvm_phase.svh">Callbacks</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=14 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.exec_func" href="../../src/base/uvm_phase.svh">exec_func</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 exec_func(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap width=100%>comp,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Implements the functor/delegate functionality for a function phase type comp - the component to execute the functionality upon phase - the phase schedule that originated this phase call</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=15 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.exec_task" href="../../src/base/uvm_phase.svh">exec_task</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 exec_task(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap width=100%>comp,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Implements the functor/delegate functionality for a task phase type comp - the component to execute the functionality upon phase - the phase schedule that originated this phase call</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=16 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.Schedule" href="../../src/base/uvm_phase.svh">Schedule</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=17 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.add" href="../../src/base/uvm_phase.svh">add</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 add(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>with_phase</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>after_phase</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>before_phase</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>Build up a schedule structure inserting phase by phase, specifying linkage</p><p>Phases can be added anywhere, in series or parallel with existing nodes</p><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>phase</td><td class=CDLDescription>handle of singleton derived imp containing actual functor. by default the new phase is appended to the schedule</td></tr><tr><td class=CDLEntry>with_phase</td><td class=CDLDescription>specify to add the new phase in parallel with this one</td></tr><tr><td class=CDLEntry>after_phase</td><td class=CDLDescription>specify to add the new phase as successor to this one</td></tr><tr><td class=CDLEntry>before_phase</td><td class=CDLDescription>specify to add the new phase as predecessor to this one</td></tr></table></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=18 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.get_parent" href="../../src/base/uvm_phase.svh">get_parent</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_phase get_parent() |
| </td></tr></table></blockquote><div class=CBody><p>Returns the parent schedule node, if any, for hierarchical graph traversal</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=19 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.get_full_name" href="../../src/base/uvm_phase.svh">get_full_name</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function string get_full_name() |
| </td></tr></table></blockquote><div class=CBody><p>Returns the full path from the enclosing domain down to this node. The singleton IMP phases have no hierarchy.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=20 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.get_schedule" href="../../src/base/uvm_phase.svh">get_schedule</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 uvm_phase get_schedule(</td> </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>hier</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Returns the topmost parent schedule node, if any, for hierarchical graph traversal</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=21 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.get_schedule_name" href="../../src/base/uvm_phase.svh">get_schedule_name</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 string get_schedule_name(</td> </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>hier</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Returns the schedule name associated with this phase node</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=22 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.get_domain" href="../../src/base/uvm_phase.svh">get_domain</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_domain get_domain() |
| </td></tr></table></blockquote><div class=CBody><p>Returns the enclosing domain</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=23 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.get_imp" href="../../src/base/uvm_phase.svh">get_imp</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_phase get_imp() |
| </td></tr></table></blockquote><div class=CBody><p>Returns the phase implementation for this this node. Returns <i>null</i> if this phase type is not a UVM_PHASE_LEAF_NODE.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=24 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.get_domain_name" href="../../src/base/uvm_phase.svh">get_domain_name</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function string get_domain_name() |
| </td></tr></table></blockquote><div class=CBody><p>Returns the domain name associated with this phase node</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=25 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.get_adjacent_predecessor_nodes" href="../../src/base/uvm_phase.svh">get_adjacent_predecessor_nodes</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_adjacent_predecessor_nodes(</td> </tr><tr><td> </td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>pred[]</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=4>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Provides an array of nodes which are predecessors to <i>this</i> phase node. A ‘predecessor node’ is defined as any phase node which lies prior to <i>this</i> node in the phase graph, with no nodes between <i>this</i> node and the predecessor node.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=26 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.get_adjacent_successor_nodes" href="../../src/base/uvm_phase.svh">get_adjacent_successor_nodes</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_adjacent_successor_nodes(</td> </tr><tr><td> </td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>succ[]</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=4>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Provides an array of nodes which are successors to <i>this</i> phase node. A ‘successor’s node’ is defined as any phase node which comes after <i>this</i> node in the phase graph, with no nodes between <i>this</i> node and the successor node.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=27 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.Phase_Done_Objection" href="../../src/base/uvm_phase.svh">Phase Done Objection</a></h3><div class=CBody><p>Task-based phase nodes within the phasing graph provide a <a href="uvm_objection-svh.html#uvm_objection" class=LClass id=link47 onMouseOver="ShowTip(event, 'tt29', 'link47')" onMouseOut="HideTip('tt29')">uvm_objection</a> based interface for prolonging the execution of the phase. All other phase types do not contain an objection, and will report a fatal error if the user attempts to <i>raise</i>, <i>drop</i>, or <i>get_objection_count</i>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=28 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.get_objection" href="../../src/base/uvm_phase.svh">get_objection</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_objection get_objection() |
| </td></tr></table></blockquote><div class=CBody><p>Return the <a href="uvm_objection-svh.html#uvm_objection" class=LClass id=link48 onMouseOver="ShowTip(event, 'tt29', 'link48')" onMouseOut="HideTip('tt29')">uvm_objection</a> that gates the termination of the phase.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=29 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.raise_objection" href="../../src/base/uvm_phase.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%></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>Raise an objection to ending this phase Provides components with greater control over the phase flow for processes which are not implicit objectors to the phase.</p><blockquote><pre>while(1) begin |
| some_phase.raise_objection(this); |
| ... |
| some_phase.drop_objection(this); |
| end |
| ...</pre></blockquote></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=30 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.drop_objection" href="../../src/base/uvm_phase.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%></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>Drop an objection to ending this phase</p><p>The drop is expected to be matched with an earlier raise.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=31 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.get_objection_count" href="../../src/base/uvm_phase.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>virtual 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 to ending this phase raised by the given <i>object</i>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=32 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.Synchronization" href="../../src/base/uvm_phase.svh">Synchronization</a></h3><div class=CBody><p>The functions ‘sync’ and ‘unsync’ add soft sync relationships between nodes</p><h4 class=CHeading>Summary of usage</h4><blockquote><pre>my_phase.sync(.target(domain) |
| [,.phase(phase)[,.with_phase(phase)]]); |
| my_phase.unsync(.target(domain) |
| [,.phase(phase)[,.with_phase(phase)]]);</pre></blockquote><p>Components in different schedule domains can be phased independently or in sync with each other. An API is provided to specify synchronization rules between any two domains. Synchronization can be done at any of three levels:</p><ul><li>the domain’s whole phase schedule can be synchronized</li><li>a phase can be specified, to sync that phase with a matching counterpart</li><li>or a more detailed arbitrary synchronization between any two phases</li></ul><p>Each kind of synchronization causes the same underlying data structures to be managed. Like other APIs, we use the parameter dot-notation to set optional parameters.</p><p>When a domain is synced with another domain, all of the matching phases in the two domains get a ‘with’ relationship between them. Likewise, if a domain is unsynched, all of the matching phases that have a ‘with’ relationship have the dependency removed. It is possible to sync two domains and then just remove a single phase from the dependency relationship by unsyncing just the one phase.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=33 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.sync" href="../../src/base/uvm_phase.svh">sync</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 sync(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_domain </td> |
| <td class=PParameter nowrap>target,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>with_phase</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>Synchronize two domains, fully or partially</p><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>target</td><td class=CDLDescription>handle of target domain to synchronize this one to</td></tr><tr><td class=CDLEntry>phase</td><td class=CDLDescription>optional single phase in this domain to synchronize, otherwise sync all</td></tr><tr><td class=CDLEntry>with_phase</td><td class=CDLDescription>optional different target-domain phase to synchronize with, otherwise use <i>phase</i> in the target domain</td></tr></table></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=34 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.unsync" href="../../src/base/uvm_phase.svh">unsync</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 unsync(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_domain </td> |
| <td class=PParameter nowrap>target,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>with_phase</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>Remove synchronization between two domains, fully or partially</p><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>target</td><td class=CDLDescription>handle of target domain to remove synchronization from</td></tr><tr><td class=CDLEntry>phase</td><td class=CDLDescription>optional single phase in this domain to un-synchronize, otherwise unsync all</td></tr><tr><td class=CDLEntry>with_phase</td><td class=CDLDescription>optional different target-domain phase to un-synchronize with, otherwise use <i>phase</i> in the target domain</td></tr></table></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=35 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.wait_for_state" href="../../src/base/uvm_phase.svh">wait_for_state</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_state(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase_state </td> |
| <td class=PParameter nowrap>state,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_wait_op </td> |
| <td class=PParameter nowrap>op</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>UVM_EQ</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Wait until this phase compares with the given <i>state</i> and <i>op</i> operand. For <a href="uvm_object_globals-svh.html#UVM_EQ" class=LConstant id=link49 onMouseOver="ShowTip(event, 'tt42', 'link49')" onMouseOut="HideTip('tt42')">UVM_EQ</a> and <a href="uvm_object_globals-svh.html#UVM_NE" class=LConstant id=link50 onMouseOver="ShowTip(event, 'tt43', 'link50')" onMouseOut="HideTip('tt43')">UVM_NE</a> operands, several <a href="uvm_object_globals-svh.html#uvm_phase_state" class=LType id=link51 onMouseOver="ShowTip(event, 'tt44', 'link51')" onMouseOut="HideTip('tt44')">uvm_phase_states</a> can be supplied by ORing their enum constants, in which case the caller will wait until the phase state is any of (UVM_EQ) or none of (UVM_NE) the provided states.</p><p>To wait for the phase to be at the started state or after</p><blockquote><pre>wait_for_state(UVM_PHASE_STARTED, UVM_GTE);</pre></blockquote><p>To wait for the phase to be either started or executing</p><blockquote><pre>wait_for_state(UVM_PHASE_STARTED | UVM_PHASE_EXECUTING, UVM_EQ);</pre></blockquote></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=36 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.Jumping" href="../../src/base/uvm_phase.svh">Jumping</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=37 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.jump" href="../../src/base/uvm_phase.svh">jump</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 jump(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Jump to a specified <i>phase</i>. If the destination <i>phase</i> is within the current phase schedule, a simple local jump takes place. If the jump-to <i>phase</i> is outside of the current schedule then the jump affects other schedules which share the phase.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=38 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.set_jump_phase" href="../../src/base/uvm_phase.svh">set_jump_phase</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_jump_phase(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Specify a phase to transition to when phase is complete. Note that this function is part of what jump() does; unlike jump() it does not set the flag to terminate the phase prematurely.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=39 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.end_prematurely" href="../../src/base/uvm_phase.svh">end_prematurely</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function void end_prematurely() |
| </td></tr></table></blockquote><div class=CBody><p>Set a flag to cause the phase to end prematurely. Note that this function is part of what jump() does; unlike jump() it does not set a jump_phase to go to after the phase ends.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=40 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase.get_jump_target" href="../../src/base/uvm_phase.svh">get_jump_target</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_phase get_jump_target() |
| </td></tr></table></blockquote><div class=CBody><p>Return handle to the target phase of the current jump, or <i>null</i> if no jump is in progress. Valid for use during the phase_ended() callback</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=41 --> |
| <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_phase_state_change" href="../../src/base/uvm_phase.svh">uvm_phase_state_change</a></h2><div class=CBody><p>Phase state transition descriptor. Used to describe the phase transition that caused a <uvm_phase_cb::phase_state_changed()> callback to be invoked.</p> |
| |
| <!--START_ND_SUMMARY index=41--> |
| <div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=41 --> |
| |
| <tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_phase_state_change" id=link54 onMouseOver="ShowTip(event, 'tt2', 'link54')" onMouseOut="HideTip('tt2')">uvm_phase_state_change</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>Phase state transition descriptor. </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=link52 onMouseOver="ShowTip(event, 'tt5', 'link52')" onMouseOut="HideTip('tt5')">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=link53 onMouseOver="ShowTip(event, 'tt6', 'link53')" onMouseOut="HideTip('tt6')">uvm_object</a></div></div></td></tr> |
| <tr><td><div class=CHCurrent><div class=CHEntry>uvm_phase_state_change</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_phase_state_change extends uvm_object |
| </td></tr></table></blockquote></td></tr> |
| |
| <!-- index=42 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_phase_state_change.Methods" >Methods</a></td><td class=SDescription></td></tr> |
| <!-- index=43 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase_state_change.get_state" id=link55 onMouseOver="ShowTip(event, 'tt45', 'link55')" onMouseOut="HideTip('tt45')">get_state()</a></td><td class=SDescription>Returns the state the phase just transitioned to. </td></tr> |
| <!-- index=44 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase_state_change.get_prev_state" id=link56 onMouseOver="ShowTip(event, 'tt46', 'link56')" onMouseOut="HideTip('tt46')">get_prev_state()</a></td><td class=SDescription>Returns the state the phase just transitioned from.</td></tr> |
| <!-- index=45 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase_state_change.jump_to" id=link57 onMouseOver="ShowTip(event, 'tt47', 'link57')" onMouseOut="HideTip('tt47')">jump_to()</a></td><td class=SDescription>If the current state is <i>UVM_PHASE_ENDED</i> or <i>UVM_PHASE_JUMPING</i> because of a phase jump, returns the phase that is the target of jump. </td></tr></table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=42 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_phase_state_change.Methods" href="../../src/base/uvm_phase.svh">Methods</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=43 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase_state_change.get_state" href="../../src/base/uvm_phase.svh">get_state()</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function uvm_phase_state get_state() |
| </td></tr></table></blockquote><div class=CBody><p>Returns the state the phase just transitioned to. Functionally equivalent to <a href="#uvm_phase.get_state" class=LMethod id=link58 onMouseOver="ShowTip(event, 'tt10', 'link58')" onMouseOut="HideTip('tt10')">uvm_phase::get_state()</a>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=44 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase_state_change.get_prev_state" href="../../src/base/uvm_phase.svh">get_prev_state()</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function uvm_phase_state get_prev_state() |
| </td></tr></table></blockquote><div class=CBody><p>Returns the state the phase just transitioned from.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=45 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase_state_change.jump_to" href="../../src/base/uvm_phase.svh">jump_to()</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_phase jump_to() |
| </td></tr></table></blockquote><div class=CBody><p>If the current state is <i>UVM_PHASE_ENDED</i> or <i>UVM_PHASE_JUMPING</i> because of a phase jump, returns the phase that is the target of jump. Returns <i>null</i> otherwise.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=46 --> |
| <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_phase_cb" href="../../src/base/uvm_phase.svh">uvm_phase_cb</a></h2><div class=CBody><p>This class defines a callback method that is invoked by the phaser during the execution of a specific node in the phase graph or all phase nodes. User-defined callback extensions can be used to integrate data types that are not natively phase-aware with the UVM phasing.</p> |
| |
| <!--START_ND_SUMMARY index=46--> |
| <div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=46 --> |
| |
| <tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_phase_cb" id=link62 onMouseOver="ShowTip(event, 'tt3', 'link62')" onMouseOut="HideTip('tt3')">uvm_phase_cb</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>This class defines a callback method that is invoked by the phaser during the execution of a specific node in the phase graph or all phase nodes. </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=link59 onMouseOver="ShowTip(event, 'tt5', 'link59')" onMouseOut="HideTip('tt5')">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=link60 onMouseOver="ShowTip(event, 'tt6', 'link60')" onMouseOut="HideTip('tt6')">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=link61 onMouseOver="ShowTip(event, 'tt48', 'link61')" onMouseOut="HideTip('tt48')">uvm_callback</a></div></div></td></tr> |
| <tr><td><div class=CHCurrent><div class=CHEntry>uvm_phase_cb</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_phase_cb extends uvm_callback |
| </td></tr></table></blockquote></td></tr> |
| |
| <!-- index=47 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_phase_cb.Methods" >Methods</a></td><td class=SDescription></td></tr> |
| <!-- index=48 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_phase_cb.new" id=link63 onMouseOver="ShowTip(event, 'tt49', 'link63')" onMouseOut="HideTip('tt49')">new</a></td><td class=SDescription>Constructor</td></tr> |
| <!-- index=49 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_phase_cb.phase_state_change" id=link64 onMouseOver="ShowTip(event, 'tt50', 'link64')" onMouseOut="HideTip('tt50')">phase_state_change</a></td><td class=SDescription>Called whenever a <i>phase</i> changes state. </td></tr></table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=47 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_phase_cb.Methods" href="../../src/base/uvm_phase.svh">Methods</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=48 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase_cb.new" href="../../src/base/uvm_phase.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%>"unnamed-uvm_phase_cb"</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Constructor</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=49 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_phase_cb.phase_state_change" href="../../src/base/uvm_phase.svh">phase_state_change</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 phase_state_change(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase_state_change </td> |
| <td class=PParameter nowrap width=100%>change</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Called whenever a <i>phase</i> changes state. The <i>change</i> descriptor describes the transition that was just completed. The callback method is invoked immediately after the phase state has changed, but before the phase implementation is executed.</p><p>An extension may interact with the phase, such as raising the phase objection to prolong the phase, in a manner that is consistent with the current phase state.</p><p>By default, the callback method does nothing. Unless otherwise specified, modifying the phase transition descriptor has no effect on the phasing schedule or execution.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=50 --> |
| <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_phase_cb_pool" href="../../src/base/uvm_phase.svh">uvm_phase_cb_pool</a></h2><div class=CBody><p>Convenience type for the uvm_callbacks#(uvm_phase, uvm_phase_cb) class.</p> |
| |
| <!--START_ND_SUMMARY index=50--> |
| <div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=50 --> |
| |
| <tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_phase_cb_pool" id=link65 onMouseOver="ShowTip(event, 'tt4', 'link65')" onMouseOut="HideTip('tt4')">uvm_phase_cb_pool</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>Convenience type for the uvm_callbacks#(uvm_phase, uvm_phase_cb) class.</td></tr> |
| <!-- PROTOTYPE --> |
| <tr class="SPrototype SIndent1"><td colspan=2 class="SEntry SIndent1">Class Declaration</td></tr> |
| <tr class="SPrototype SIndent1"><td colspan=2 class=SDescription> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=2>typedef uvm_callbacks#(</td> </tr><tr><td> </td> <td class=PParameter nowrap width=100%>uvm_phase,</td> |
| </tr><tr><td> </td> <td class=PParameter nowrap width=100%>uvm_phase_cb</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=2>) uvm_phase_cb_pool</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </td></tr> |
| </table></div></div><!--END_ND_SUMMARY--> |
| </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_phase extends uvm_object |
| </td></tr></table></blockquote>This base class defines everything about a phase: behavior, state, and context.</div></div><div class=CToolTip id="tt2"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_phase_state_change extends uvm_object |
| </td></tr></table></blockquote>Phase state transition descriptor. </div></div><div class=CToolTip id="tt3"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_phase_cb extends uvm_callback |
| </td></tr></table></blockquote>This class defines a callback method that is invoked by the phaser during the execution of a specific node in the phase graph or all phase nodes. </div></div><div class=CToolTip id="tt4"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=2>typedef uvm_callbacks#(</td> </tr><tr><td> </td> <td class=PParameter nowrap width=100%>uvm_phase,</td> |
| </tr><tr><td> </td> <td class=PParameter nowrap width=100%>uvm_phase_cb</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=2>) uvm_phase_cb_pool</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Convenience type for the uvm_callbacks#(uvm_phase, uvm_phase_cb) class.</div></div><div class=CToolTip id="tt5"><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="tt6"><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="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 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%>"uvm_phase",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase_type </td> |
| <td class=PParameter nowrap>phase_type</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>UVM_PHASE_SCHEDULE,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>parent</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> |
| Create a new phase node, with a name and a note of its type name - name of this phase type - a value in uvm_phase_type</div></div><div class=CToolTip id="tt8"><div class=CType>This is an attribute of a uvm_phase object which defines the phase type.</div></div><div class=CToolTip id="tt9"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_phase_type get_phase_type() |
| </td></tr></table></blockquote>Returns the phase type as defined by uvm_phase_type</div></div><div class=CToolTip id="tt10"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_phase_state get_state() |
| </td></tr></table></blockquote>Accessor to return current state of this phase</div></div><div class=CToolTip id="tt11"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function int get_run_count() |
| </td></tr></table></blockquote>Accessor to return the integer number of times this phase has executed</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>function uvm_phase find_by_name(</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> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>stay_in_scope</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> |
| Locate a phase node with the specified <i>name</i> and return its handle. </div></div><div class=CToolTip id="tt13"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=5>function uvm_phase find(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>stay_in_scope</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> |
| Locate the phase node with the specified <i>phase</i> IMP and return its handle. </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>function bit is(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| returns 1 if the containing uvm_phase refers to the same phase as the phase argument, 0 otherwise</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>function bit is_before(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Returns 1 if the containing uvm_phase refers to a phase that is earlier than the phase argument, 0 otherwise</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=3>function bit is_after(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| returns 1 if the containing uvm_phase refers to a phase that is later than the phase argument, 0 otherwise</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=3>virtual function void exec_func(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap width=100%>comp,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Implements the functor/delegate functionality for a function phase type comp - the component to execute the functionality upon phase - the phase schedule that originated this phase call</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=3>virtual task exec_task(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap width=100%>comp,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Implements the functor/delegate functionality for a task phase type comp - the component to execute the functionality upon phase - the phase schedule that originated this phase call</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 void add(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>with_phase</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>after_phase</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>before_phase</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> |
| Build up a schedule structure inserting phase by phase, specifying linkage</div></div><div class=CToolTip id="tt20"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_phase get_parent() |
| </td></tr></table></blockquote>Returns the parent schedule node, if any, for hierarchical graph traversal</div></div><div class=CToolTip id="tt21"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function string get_full_name() |
| </td></tr></table></blockquote>Returns the full path from the enclosing domain down to this node. </div></div><div class=CToolTip id="tt22"><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 uvm_phase get_schedule(</td> </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>hier</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Returns the topmost parent schedule node, if any, for hierarchical graph traversal</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=5>function string get_schedule_name(</td> </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>hier</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Returns the schedule name associated with this phase node</div></div><div class=CToolTip id="tt24"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_domain get_domain() |
| </td></tr></table></blockquote>Returns the enclosing domain</div></div><div class=CToolTip id="tt25"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_phase get_imp() |
| </td></tr></table></blockquote>Returns the phase implementation for this this node. </div></div><div class=CToolTip id="tt26"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function string get_domain_name() |
| </td></tr></table></blockquote>Returns the domain name associated with this phase node</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=4>function void get_adjacent_predecessor_nodes(</td> </tr><tr><td> </td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>pred[]</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=4>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Provides an array of nodes which are predecessors to <i>this</i> phase node. </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=4>function void get_adjacent_successor_nodes(</td> </tr><tr><td> </td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>succ[]</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=4>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Provides an array of nodes which are successors to <i>this</i> phase node. </div></div><div class=CToolTip id="tt29"><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="tt30"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_objection get_objection() |
| </td></tr></table></blockquote>Return the uvm_objection that gates the termination of the phase.</div></div><div class=CToolTip id="tt31"><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%></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> |
| Raise an objection to ending this phase Provides components with greater control over the phase flow for processes which are not implicit objectors to the phase.</div></div><div class=CToolTip id="tt32"><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%></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> |
| Drop an objection to ending this phase</div></div><div class=CToolTip id="tt33"><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 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 to ending this phase raised by the given <i>object</i>.</div></div><div class=CToolTip id="tt34"><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 sync(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_domain </td> |
| <td class=PParameter nowrap>target,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>with_phase</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> |
| Synchronize two domains, fully or partially</div></div><div class=CToolTip id="tt35"><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 unsync(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_domain </td> |
| <td class=PParameter nowrap>target,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>with_phase</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> |
| Remove synchronization between two domains, fully or partially</div></div><div class=CToolTip id="tt36"><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_state(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase_state </td> |
| <td class=PParameter nowrap>state,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_wait_op </td> |
| <td class=PParameter nowrap>op</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>UVM_EQ</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Wait until this phase compares with the given <i>state</i> and <i>op</i> operand. </div></div><div class=CToolTip id="tt37"><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 jump(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Jump to a specified <i>phase</i>. </div></div><div class=CToolTip id="tt38"><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_jump_phase(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Specify a phase to transition to when phase is complete. </div></div><div class=CToolTip id="tt39"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function void end_prematurely() |
| </td></tr></table></blockquote>Set a flag to cause the phase to end prematurely. </div></div><div class=CToolTip id="tt40"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_phase get_jump_target() |
| </td></tr></table></blockquote>Return handle to the target phase of the current jump, or <i>null</i> if no jump is in progress. </div></div><div class=CToolTip id="tt41"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>static function uvm_run_phase get() |
| </td></tr></table></blockquote>Returns the singleton phase handle</div></div><div class=CToolTip id="tt42"><div class=CConstant>equal</div></div><div class=CToolTip id="tt43"><div class=CConstant>not equal</div></div><div class=CToolTip id="tt44"><div class=CType>The set of possible states of a phase. </div></div><div class=CToolTip id="tt45"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function uvm_phase_state get_state() |
| </td></tr></table></blockquote>Returns the state the phase just transitioned to. </div></div><div class=CToolTip id="tt46"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function uvm_phase_state get_prev_state() |
| </td></tr></table></blockquote>Returns the state the phase just transitioned from.</div></div><div class=CToolTip id="tt47"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_phase jump_to() |
| </td></tr></table></blockquote>If the current state is <i>UVM_PHASE_ENDED</i> or <i>UVM_PHASE_JUMPING</i> because of a phase jump, returns the phase that is the target of jump. </div></div><div class=CToolTip id="tt48"><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="tt49"><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%>"unnamed-uvm_phase_cb"</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Constructor</div></div><div class=CToolTip id="tt50"><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 phase_state_change(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap width=100%>phase,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_phase_state_change </td> |
| <td class=PParameter nowrap width=100%>change</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Called whenever a <i>phase</i> changes state. </div></div><!--END_ND_TOOLTIPS--> |
| |
| <script language=JavaScript><!-- |
| if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html> |