| <html><head><title>uvm_component</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!-- |
| if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script> |
| |
| <!-- Generated by Natural Docs, version Development Release 01-12-2008 (1.35 base) --> |
| <!-- http://www.naturaldocs.org --> |
| |
| <!-- saved from url=(0026)http://www.naturaldocs.org --> |
| |
| |
| |
| |
| |
| |
| |
| |
| <!--TOP - START OF CONTENT--> |
| <div id=Content> |
| |
| |
| <!--CONTENT index=0 --> |
| <div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="uvm_component" href="../../src/base/uvm_component.svh">uvm_component</a></h1><div class=CBody><p>The uvm_component class is the root base class for UVM components. In addition to the features inherited from <a href="uvm_object-svh.html#uvm_object" class=LClass id=link127 onMouseOver="ShowTip(event, 'tt2', 'link127')" onMouseOut="HideTip('tt2')">uvm_object</a> and <a href="uvm_report_object-svh.html#uvm_report_object" class=LClass id=link128 onMouseOver="ShowTip(event, 'tt3', 'link128')" onMouseOut="HideTip('tt3')">uvm_report_object</a>, uvm_component provides the following interfaces:</p><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Hierarchy</td><td class=CDLDescription>provides methods for searching and traversing the component hierarchy.</td></tr><tr><td class=CDLEntry>Phasing</td><td class=CDLDescription>defines a phased test flow that all components follow, with a group of standard phase methods and an API for custom phases and multiple independent phasing domains to mirror DUT behavior e.g. power</td></tr><tr><td class=CDLEntry>Reporting</td><td class=CDLDescription>provides a convenience interface to the <a href="uvm_report_handler-svh.html#uvm_report_handler" class=LClass id=link129 onMouseOver="ShowTip(event, 'tt120', 'link129')" onMouseOut="HideTip('tt120')">uvm_report_handler</a>. All messages, warnings, and errors are processed through this interface.</td></tr><tr><td class=CDLEntry>Transaction recording</td><td class=CDLDescription>provides methods for recording the transactions produced or consumed by the component to a transaction database (vendor specific).</td></tr><tr><td class=CDLEntry>Factory</td><td class=CDLDescription>provides a convenience interface to the <a href="uvm_factory-svh.html#uvm_factory" class=LClass id=link130 onMouseOver="ShowTip(event, 'tt79', 'link130')" onMouseOut="HideTip('tt79')">uvm_factory</a>. The factory is used to create new components and other objects based on type-wide and instance-specific configuration.</td></tr></table><p>The uvm_component is automatically seeded during construction using UVM seeding, if enabled. All other objects must be manually reseeded, if appropriate. See <a href="uvm_object-svh.html#uvm_object.reseed" class=LMethod id=link131 onMouseOver="ShowTip(event, 'tt121', 'link131')" onMouseOut="HideTip('tt121')">uvm_object::reseed</a> for more information.</p> |
| |
| <!--START_ND_SUMMARY index=0--> |
| <div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=0 --> |
| |
| <tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_component" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">uvm_component</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>The uvm_component class is the root base class for UVM components. </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=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">uvm_void</a></div></div></td></tr> |
| <tr><td><div class=CHParent><div class=CHEntry><a href="uvm_object-svh.html#uvm_object" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">uvm_object</a></div></div></td></tr> |
| <tr><td><div class=CHParent><div class=CHEntry><a href="uvm_report_object-svh.html#uvm_report_object" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">uvm_report_object</a></div></div></td></tr> |
| <tr><td><div class=CHCurrent><div class=CHEntry>uvm_component</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>virtual class uvm_component extends uvm_report_object |
| </td></tr></table></blockquote></td></tr> |
| |
| <!-- index=1 --> |
| |
| <tr class="SMethod SIndent1 SMarked"><td class=SEntry><a href="#uvm_component.new" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">new</a></td><td class=SDescription>Creates a new component with the given leaf instance <i>name</i> and handle to its <i>parent</i>. </td></tr> |
| <!-- index=2 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_component.Hierarchy_Interface" >Hierarchy Interface</a></td><td class=SDescription>These methods provide user access to information about the component hierarchy, i.e., topology.</td></tr> |
| <!-- index=3 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.get_parent" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">get_parent</a></td><td class=SDescription>Returns a handle to this component’s parent, or <i>null</i> if it has no parent.</td></tr> |
| <!-- index=4 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.get_full_name" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">get_full_name</a></td><td class=SDescription>Returns the full hierarchical name of this object. </td></tr> |
| <!-- index=5 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.get_children" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">get_children</a></td><td class=SDescription>This function populates the end of the <i>children</i> array with the list of this component’s children.</td></tr> |
| <!-- index=6 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.get_child" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">get_child</a></td><td class=SDescription></td></tr> |
| <!-- index=7 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.get_next_child" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">get_next_child</a></td><td class=SDescription></td></tr> |
| <!-- index=8 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.get_first_child" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">get_first_child</a></td><td class=SDescription>These methods are used to iterate through this component’s children, if any. </td></tr> |
| <!-- index=9 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.get_num_children" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">get_num_children</a></td><td class=SDescription>Returns the number of this component’s children.</td></tr> |
| <!-- index=10 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.has_child" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">has_child</a></td><td class=SDescription>Returns 1 if this component has a child with the given <i>name</i>, 0 otherwise.</td></tr> |
| <!-- index=11 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.lookup" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">lookup</a></td><td class=SDescription>Looks for a component with the given hierarchical <i>name</i> relative to this component. </td></tr> |
| <!-- index=12 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.get_depth" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">get_depth</a></td><td class=SDescription>Returns the component’s depth from the root level. </td></tr> |
| <!-- index=13 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_component.Phasing_Interface" >Phasing Interface</a></td><td class=SDescription>These methods implement an interface which allows all components to step through a standard schedule of phases, or a customized schedule, and also an API to allow independent phase domains which can jump like state machines to reflect behavior e.g. </td></tr> |
| <!-- index=14 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.build_phase" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">build_phase</a></td><td class=SDescription>The <a href="uvm_common_phases-svh.html#uvm_build_phase" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">uvm_build_phase</a> phase implementation method.</td></tr> |
| <!-- index=15 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.connect_phase" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">connect_phase</a></td><td class=SDescription>The <a href="uvm_common_phases-svh.html#uvm_connect_phase" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">uvm_connect_phase</a> phase implementation method.</td></tr> |
| <!-- index=16 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.end_of_elaboration_phase" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">end_of_elaboration_phase</a></td><td class=SDescription>The <a href="uvm_common_phases-svh.html#uvm_end_of_elaboration_phase" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">uvm_end_of_elaboration_phase</a> phase implementation method.</td></tr> |
| <!-- index=17 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.start_of_simulation_phase" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')">start_of_simulation_phase</a></td><td class=SDescription>The <a href="uvm_common_phases-svh.html#uvm_start_of_simulation_phase" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">uvm_start_of_simulation_phase</a> phase implementation method.</td></tr> |
| <!-- index=18 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.run_phase" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')">run_phase</a></td><td class=SDescription>The <a href="uvm_common_phases-svh.html#uvm_run_phase" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')">uvm_run_phase</a> phase implementation method.</td></tr> |
| <!-- index=19 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.pre_reset_phase" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')">pre_reset_phase</a></td><td class=SDescription>The <a href="uvm_runtime_phases-svh.html#uvm_pre_reset_phase" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')">uvm_pre_reset_phase</a> phase implementation method.</td></tr> |
| <!-- index=20 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.reset_phase" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')">reset_phase</a></td><td class=SDescription>The <a href="uvm_runtime_phases-svh.html#uvm_reset_phase" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')">uvm_reset_phase</a> phase implementation method.</td></tr> |
| <!-- index=21 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.post_reset_phase" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')">post_reset_phase</a></td><td class=SDescription>The <a href="uvm_runtime_phases-svh.html#uvm_post_reset_phase" class=LClass id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')">uvm_post_reset_phase</a> phase implementation method.</td></tr> |
| <!-- index=22 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.pre_configure_phase" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')">pre_configure_phase</a></td><td class=SDescription>The <a href="uvm_runtime_phases-svh.html#uvm_pre_configure_phase" class=LClass id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')">uvm_pre_configure_phase</a> phase implementation method.</td></tr> |
| <!-- index=23 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.configure_phase" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')">configure_phase</a></td><td class=SDescription>The <a href="uvm_runtime_phases-svh.html#uvm_configure_phase" class=LClass id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')">uvm_configure_phase</a> phase implementation method.</td></tr> |
| <!-- index=24 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.post_configure_phase" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')">post_configure_phase</a></td><td class=SDescription>The <a href="uvm_runtime_phases-svh.html#uvm_post_configure_phase" class=LClass id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')">uvm_post_configure_phase</a> phase implementation method.</td></tr> |
| <!-- index=25 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.pre_main_phase" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')">pre_main_phase</a></td><td class=SDescription>The <a href="uvm_runtime_phases-svh.html#uvm_pre_main_phase" class=LClass id=link39 onMouseOver="ShowTip(event, 'tt39', 'link39')" onMouseOut="HideTip('tt39')">uvm_pre_main_phase</a> phase implementation method.</td></tr> |
| <!-- index=26 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.main_phase" id=link40 onMouseOver="ShowTip(event, 'tt40', 'link40')" onMouseOut="HideTip('tt40')">main_phase</a></td><td class=SDescription>The <a href="uvm_runtime_phases-svh.html#uvm_main_phase" class=LClass id=link41 onMouseOver="ShowTip(event, 'tt41', 'link41')" onMouseOut="HideTip('tt41')">uvm_main_phase</a> phase implementation method.</td></tr> |
| <!-- index=27 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.post_main_phase" id=link42 onMouseOver="ShowTip(event, 'tt42', 'link42')" onMouseOut="HideTip('tt42')">post_main_phase</a></td><td class=SDescription>The <a href="uvm_runtime_phases-svh.html#uvm_post_main_phase" class=LClass id=link43 onMouseOver="ShowTip(event, 'tt43', 'link43')" onMouseOut="HideTip('tt43')">uvm_post_main_phase</a> phase implementation method.</td></tr> |
| <!-- index=28 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.pre_shutdown_phase" id=link44 onMouseOver="ShowTip(event, 'tt44', 'link44')" onMouseOut="HideTip('tt44')">pre_shutdown_phase</a></td><td class=SDescription>The <a href="uvm_runtime_phases-svh.html#uvm_pre_shutdown_phase" class=LClass id=link45 onMouseOver="ShowTip(event, 'tt45', 'link45')" onMouseOut="HideTip('tt45')">uvm_pre_shutdown_phase</a> phase implementation method.</td></tr> |
| <!-- index=29 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.shutdown_phase" id=link46 onMouseOver="ShowTip(event, 'tt46', 'link46')" onMouseOut="HideTip('tt46')">shutdown_phase</a></td><td class=SDescription>The <a href="uvm_runtime_phases-svh.html#uvm_shutdown_phase" class=LClass id=link47 onMouseOver="ShowTip(event, 'tt47', 'link47')" onMouseOut="HideTip('tt47')">uvm_shutdown_phase</a> phase implementation method.</td></tr> |
| <!-- index=30 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.post_shutdown_phase" id=link48 onMouseOver="ShowTip(event, 'tt48', 'link48')" onMouseOut="HideTip('tt48')">post_shutdown_phase</a></td><td class=SDescription>The <a href="uvm_runtime_phases-svh.html#uvm_post_shutdown_phase" class=LClass id=link49 onMouseOver="ShowTip(event, 'tt49', 'link49')" onMouseOut="HideTip('tt49')">uvm_post_shutdown_phase</a> phase implementation method.</td></tr> |
| <!-- index=31 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.extract_phase" id=link50 onMouseOver="ShowTip(event, 'tt50', 'link50')" onMouseOut="HideTip('tt50')">extract_phase</a></td><td class=SDescription>The <a href="uvm_common_phases-svh.html#uvm_extract_phase" class=LClass id=link51 onMouseOver="ShowTip(event, 'tt51', 'link51')" onMouseOut="HideTip('tt51')">uvm_extract_phase</a> phase implementation method.</td></tr> |
| <!-- index=32 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.check_phase" id=link52 onMouseOver="ShowTip(event, 'tt52', 'link52')" onMouseOut="HideTip('tt52')">check_phase</a></td><td class=SDescription>The <a href="uvm_common_phases-svh.html#uvm_check_phase" class=LClass id=link53 onMouseOver="ShowTip(event, 'tt53', 'link53')" onMouseOut="HideTip('tt53')">uvm_check_phase</a> phase implementation method.</td></tr> |
| <!-- index=33 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.report_phase" id=link54 onMouseOver="ShowTip(event, 'tt54', 'link54')" onMouseOut="HideTip('tt54')">report_phase</a></td><td class=SDescription>The <a href="uvm_common_phases-svh.html#uvm_report_phase" class=LClass id=link55 onMouseOver="ShowTip(event, 'tt55', 'link55')" onMouseOut="HideTip('tt55')">uvm_report_phase</a> phase implementation method.</td></tr> |
| <!-- index=34 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.final_phase" id=link56 onMouseOver="ShowTip(event, 'tt56', 'link56')" onMouseOut="HideTip('tt56')">final_phase</a></td><td class=SDescription>The <a href="uvm_common_phases-svh.html#uvm_final_phase" class=LClass id=link57 onMouseOver="ShowTip(event, 'tt57', 'link57')" onMouseOut="HideTip('tt57')">uvm_final_phase</a> phase implementation method.</td></tr> |
| <!-- index=35 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.phase_started" id=link58 onMouseOver="ShowTip(event, 'tt58', 'link58')" onMouseOut="HideTip('tt58')">phase_started</a></td><td class=SDescription>Invoked at the start of each phase. </td></tr> |
| <!-- index=36 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.phase_ready_to_end" id=link59 onMouseOver="ShowTip(event, 'tt59', 'link59')" onMouseOut="HideTip('tt59')">phase_ready_to_end</a></td><td class=SDescription>Invoked when all objections to ending the given <i>phase</i> and all sibling phases have been dropped, thus indicating that <i>phase</i> is ready to begin a clean exit. </td></tr> |
| <!-- index=37 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.phase_ended" id=link60 onMouseOver="ShowTip(event, 'tt60', 'link60')" onMouseOut="HideTip('tt60')">phase_ended</a></td><td class=SDescription>Invoked at the end of each phase. </td></tr> |
| <!-- index=38 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_domain" id=link61 onMouseOver="ShowTip(event, 'tt61', 'link61')" onMouseOut="HideTip('tt61')">set_domain</a></td><td class=SDescription>Apply a phase domain to this component and, if <i>hier</i> is set, recursively to all its children.</td></tr> |
| <!-- index=39 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.get_domain" id=link62 onMouseOver="ShowTip(event, 'tt62', 'link62')" onMouseOut="HideTip('tt62')">get_domain</a></td><td class=SDescription>Return handle to the phase domain set on this component</td></tr> |
| <!-- index=40 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.define_domain" id=link63 onMouseOver="ShowTip(event, 'tt63', 'link63')" onMouseOut="HideTip('tt63')">define_domain</a></td><td class=SDescription>Builds custom phase schedules into the provided <i>domain</i> handle.</td></tr> |
| <!-- index=41 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.set_phase_imp" id=link64 onMouseOver="ShowTip(event, 'tt64', 'link64')" onMouseOut="HideTip('tt64')">set_phase_imp</a></td><td class=SDescription>Override the default implementation for a phase on this component (tree) with a custom one, which must be created as a singleton object extending the default one and implementing required behavior in exec and traverse methods</td></tr> |
| <!-- index=42 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.suspend" id=link65 onMouseOver="ShowTip(event, 'tt65', 'link65')" onMouseOut="HideTip('tt65')">suspend</a></td><td class=SDescription>Suspend this component.</td></tr> |
| <!-- index=43 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.resume" id=link66 onMouseOver="ShowTip(event, 'tt66', 'link66')" onMouseOut="HideTip('tt66')">resume</a></td><td class=SDescription>Resume this component.</td></tr> |
| <!-- index=44 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.resolve_bindings" id=link67 onMouseOver="ShowTip(event, 'tt67', 'link67')" onMouseOut="HideTip('tt67')">resolve_bindings</a></td><td class=SDescription>Processes all port, export, and imp connections. </td></tr> |
| <!-- index=45 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_component.Configuration_Interface" >Configuration Interface</a></td><td class=SDescription>Components can be designed to be user-configurable in terms of its topology (the type and number of children it has), mode of operation, and run-time parameters (knobs). </td></tr> |
| <!-- index=46 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.check_config_usage" id=link68 onMouseOver="ShowTip(event, 'tt68', 'link68')" onMouseOut="HideTip('tt68')">check_config_usage</a></td><td class=SDescription>Check all configuration settings in a components configuration table to determine if the setting has been used, overridden or not used. </td></tr> |
| <!-- index=47 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.apply_config_settings" id=link69 onMouseOver="ShowTip(event, 'tt69', 'link69')" onMouseOut="HideTip('tt69')">apply_config_settings</a></td><td class=SDescription>Searches for all config settings matching this component’s instance path. </td></tr> |
| <!-- index=48 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.print_config_settings" id=link70 onMouseOver="ShowTip(event, 'tt70', 'link70')" onMouseOut="HideTip('tt70')">print_config_settings</a></td><td class=SDescription>Called without arguments, print_config_settings prints all configuration information for this component, as set by previous calls to <a href="uvm_config_db-svh.html#uvm_config_db.set" class=LMethod id=link71 onMouseOver="ShowTip(event, 'tt71', 'link71')" onMouseOut="HideTip('tt71')">uvm_config_db::set()</a>. </td></tr> |
| <!-- index=49 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.print_config" id=link72 onMouseOver="ShowTip(event, 'tt72', 'link72')" onMouseOut="HideTip('tt72')">print_config</a></td><td class=SDescription>Print_config_settings prints all configuration information for this component, as set by previous calls to <a href="uvm_config_db-svh.html#uvm_config_db.set" class=LMethod id=link73 onMouseOver="ShowTip(event, 'tt71', 'link73')" onMouseOut="HideTip('tt71')">uvm_config_db::set()</a> and exports to the resources pool. </td></tr> |
| <!-- index=50 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.print_config_with_audit" id=link74 onMouseOver="ShowTip(event, 'tt73', 'link74')" onMouseOut="HideTip('tt73')">print_config_with_audit</a></td><td class=SDescription>Operates the same as print_config except that the audit bit is forced to 1. </td></tr> |
| <!-- index=51 --> |
| |
| <tr class="SVariable SIndent2"><td class=SEntry><a href="#uvm_component.print_config_matches" id=link75 onMouseOver="ShowTip(event, 'tt74', 'link75')" onMouseOut="HideTip('tt74')">print_config_matches</a></td><td class=SDescription>Setting this static variable causes uvm_config_db::get() to print info about matching configuration settings as they are being applied.</td></tr> |
| <!-- index=52 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_component.Objection_Interface" >Objection Interface</a></td><td class=SDescription>These methods provide object level hooks into the <a href="uvm_objection-svh.html#uvm_objection" class=LClass id=link76 onMouseOver="ShowTip(event, 'tt75', 'link76')" onMouseOut="HideTip('tt75')">uvm_objection</a> mechanism.</td></tr> |
| <!-- index=53 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.raised" id=link77 onMouseOver="ShowTip(event, 'tt76', 'link77')" onMouseOut="HideTip('tt76')">raised</a></td><td class=SDescription>The <i>raised</i> callback is called when this or a descendant of this component instance raises the specified <i>objection</i>. </td></tr> |
| <!-- index=54 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.dropped" id=link78 onMouseOver="ShowTip(event, 'tt77', 'link78')" onMouseOut="HideTip('tt77')">dropped</a></td><td class=SDescription>The <i>dropped</i> callback is called when this or a descendant of this component instance drops the specified <i>objection</i>. </td></tr> |
| <!-- index=55 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.all_dropped" id=link79 onMouseOver="ShowTip(event, 'tt78', 'link79')" onMouseOut="HideTip('tt78')">all_dropped</a></td><td class=SDescription>The <i>all_droppped</i> callback is called when all objections have been dropped by this component and all its descendants. </td></tr> |
| <!-- index=56 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_component.Factory_Interface" >Factory Interface</a></td><td class=SDescription>The factory interface provides convenient access to a portion of UVM’s <a href="uvm_factory-svh.html#uvm_factory" class=LClass id=link80 onMouseOver="ShowTip(event, 'tt79', 'link80')" onMouseOut="HideTip('tt79')">uvm_factory</a> interface. </td></tr> |
| <!-- index=57 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.create_component" id=link81 onMouseOver="ShowTip(event, 'tt80', 'link81')" onMouseOut="HideTip('tt80')">create_component</a></td><td class=SDescription>A convenience function for <a href="uvm_factory-svh.html#uvm_factory.create_component_by_name" class=LMethod id=link82 onMouseOver="ShowTip(event, 'tt81', 'link82')" onMouseOut="HideTip('tt81')">uvm_factory::create_component_by_name</a>, this method calls upon the factory to create a new child component whose type corresponds to the preregistered type name, <i>requested_type_name</i>, and instance name, <i>name</i>. </td></tr> |
| <!-- index=58 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.create_object" id=link83 onMouseOver="ShowTip(event, 'tt82', 'link83')" onMouseOut="HideTip('tt82')">create_object</a></td><td class=SDescription>A convenience function for <a href="uvm_factory-svh.html#uvm_factory.create_object_by_name" class=LMethod id=link84 onMouseOver="ShowTip(event, 'tt83', 'link84')" onMouseOut="HideTip('tt83')">uvm_factory::create_object_by_name</a>, this method calls upon the factory to create a new object whose type corresponds to the preregistered type name, <i>requested_type_name</i>, and instance name, <i>name</i>. </td></tr> |
| <!-- index=59 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_type_override_by_type" id=link85 onMouseOver="ShowTip(event, 'tt84', 'link85')" onMouseOut="HideTip('tt84')">set_type_override_by_type</a></td><td class=SDescription>A convenience function for <a href="uvm_factory-svh.html#uvm_factory.set_type_override_by_type" class=LMethod id=link86 onMouseOver="ShowTip(event, 'tt85', 'link86')" onMouseOut="HideTip('tt85')">uvm_factory::set_type_override_by_type</a>, this method registers a factory override for components and objects created at this level of hierarchy or below. </td></tr> |
| <!-- index=60 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.set_inst_override_by_type" id=link87 onMouseOver="ShowTip(event, 'tt86', 'link87')" onMouseOut="HideTip('tt86')">set_inst_override_by_type</a></td><td class=SDescription>A convenience function for <a href="uvm_factory-svh.html#uvm_factory.set_inst_override_by_type" class=LMethod id=link88 onMouseOver="ShowTip(event, 'tt87', 'link88')" onMouseOut="HideTip('tt87')">uvm_factory::set_inst_override_by_type</a>, this method registers a factory override for components and objects created at this level of hierarchy or below. </td></tr> |
| <!-- index=61 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_type_override" id=link89 onMouseOver="ShowTip(event, 'tt88', 'link89')" onMouseOut="HideTip('tt88')">set_type_override</a></td><td class=SDescription>A convenience function for <a href="uvm_factory-svh.html#uvm_factory.set_type_override_by_name" class=LMethod id=link90 onMouseOver="ShowTip(event, 'tt89', 'link90')" onMouseOut="HideTip('tt89')">uvm_factory::set_type_override_by_name</a>, this method configures the factory to create an object of type <i>override_type_name</i> whenever the factory is asked to produce a type represented by <i>original_type_name</i>. </td></tr> |
| <!-- index=62 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.set_inst_override" id=link91 onMouseOver="ShowTip(event, 'tt90', 'link91')" onMouseOut="HideTip('tt90')">set_inst_override</a></td><td class=SDescription>A convenience function for <a href="uvm_factory-svh.html#uvm_factory.set_inst_override_by_name" class=LMethod id=link92 onMouseOver="ShowTip(event, 'tt91', 'link92')" onMouseOut="HideTip('tt91')">uvm_factory::set_inst_override_by_name</a>, this method registers a factory override for components created at this level of hierarchy or below. </td></tr> |
| <!-- index=63 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.print_override_info" id=link93 onMouseOver="ShowTip(event, 'tt92', 'link93')" onMouseOut="HideTip('tt92')">print_override_info</a></td><td class=SDescription>This factory debug method performs the same lookup process as create_object and create_component, but instead of creating an object, it prints information about what type of object would be created given the provided arguments.</td></tr> |
| <!-- index=64 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_component.Hierarchical_Reporting_Interface" >Hierarchical Reporting Interface</a></td><td class=SDescription>This interface provides versions of the set_report_* methods in the <a href="uvm_report_object-svh.html#uvm_report_object" class=LClass id=link94 onMouseOver="ShowTip(event, 'tt3', 'link94')" onMouseOut="HideTip('tt3')">uvm_report_object</a> base class that are applied recursively to this component and all its children.</td></tr> |
| <!-- index=65 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_report_id_verbosity_hier" id=link95 onMouseOver="ShowTip(event, 'tt93', 'link95')" onMouseOut="HideTip('tt93')">set_report_id_verbosity_hier</a></td><td class=SDescription></td></tr> |
| <!-- index=66 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_report_severity_id_verbosity_hier" id=link96 onMouseOver="ShowTip(event, 'tt94', 'link96')" onMouseOut="HideTip('tt94')">set_report_severity_id_verbosity_hier</a></td><td class=SDescription>These methods recursively associate the specified verbosity with reports of the given <i>severity</i>, <i>id</i>, or <i>severity-id</i> pair. </td></tr> |
| <!-- index=67 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.set_report_severity_action_hier" id=link97 onMouseOver="ShowTip(event, 'tt95', 'link97')" onMouseOut="HideTip('tt95')">set_report_severity_action_hier</a></td><td class=SDescription></td></tr> |
| <!-- index=68 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.set_report_id_action_hier" id=link98 onMouseOver="ShowTip(event, 'tt96', 'link98')" onMouseOut="HideTip('tt96')">set_report_id_action_hier</a></td><td class=SDescription></td></tr> |
| <!-- index=69 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.set_report_severity_id_action_hier" id=link99 onMouseOver="ShowTip(event, 'tt97', 'link99')" onMouseOut="HideTip('tt97')">set_report_severity_id_action_hier</a></td><td class=SDescription>These methods recursively associate the specified action with reports of the given <i>severity</i>, <i>id</i>, or <i>severity-id</i> pair. </td></tr> |
| <!-- index=70 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_report_default_file_hier" id=link100 onMouseOver="ShowTip(event, 'tt98', 'link100')" onMouseOut="HideTip('tt98')">set_report_default_file_hier</a></td><td class=SDescription></td></tr> |
| <!-- index=71 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_report_severity_file_hier" id=link101 onMouseOver="ShowTip(event, 'tt99', 'link101')" onMouseOut="HideTip('tt99')">set_report_severity_file_hier</a></td><td class=SDescription></td></tr> |
| <!-- index=72 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_report_id_file_hier" id=link102 onMouseOver="ShowTip(event, 'tt100', 'link102')" onMouseOut="HideTip('tt100')">set_report_id_file_hier</a></td><td class=SDescription></td></tr> |
| <!-- index=73 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_report_severity_id_file_hier" id=link103 onMouseOver="ShowTip(event, 'tt101', 'link103')" onMouseOut="HideTip('tt101')">set_report_severity_id_file_hier</a></td><td class=SDescription>These methods recursively associate the specified FILE descriptor with reports of the given <i>severity</i>, <i>id</i>, or <i>severity-id</i> pair. </td></tr> |
| <!-- index=74 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.set_report_verbosity_level_hier" id=link104 onMouseOver="ShowTip(event, 'tt102', 'link104')" onMouseOut="HideTip('tt102')">set_report_verbosity_level_hier</a></td><td class=SDescription>This method recursively sets the maximum verbosity level for reports for this component and all those below it. </td></tr> |
| <!-- index=75 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.pre_abort" id=link105 onMouseOver="ShowTip(event, 'tt103', 'link105')" onMouseOut="HideTip('tt103')">pre_abort</a></td><td class=SDescription>This callback is executed when the message system is executing a <a href="uvm_object_globals-svh.html#UVM_EXIT" class=LConstant id=link106 onMouseOver="ShowTip(event, 'tt104', 'link106')" onMouseOut="HideTip('tt104')">UVM_EXIT</a> action. </td></tr> |
| <!-- index=76 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_component.Recording_Interface" >Recording Interface</a></td><td class=SDescription>These methods comprise the component-based transaction recording interface. </td></tr> |
| <!-- index=77 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.accept_tr" id=link107 onMouseOver="ShowTip(event, 'tt105', 'link107')" onMouseOut="HideTip('tt105')">accept_tr</a></td><td class=SDescription>This function marks the acceptance of a transaction, <i>tr</i>, by this component. </td></tr> |
| <!-- index=78 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.do_accept_tr" id=link108 onMouseOver="ShowTip(event, 'tt106', 'link108')" onMouseOut="HideTip('tt106')">do_accept_tr</a></td><td class=SDescription>The <a href="#uvm_component.accept_tr" class=LMethod id=link109 onMouseOver="ShowTip(event, 'tt105', 'link109')" onMouseOut="HideTip('tt105')">accept_tr</a> method calls this function to accommodate any user-defined post-accept action. </td></tr> |
| <!-- index=79 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.begin_tr" id=link110 onMouseOver="ShowTip(event, 'tt107', 'link110')" onMouseOut="HideTip('tt107')">begin_tr</a></td><td class=SDescription>This function marks the start of a transaction, <i>tr</i>, by this component. </td></tr> |
| <!-- index=80 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.begin_child_tr" id=link111 onMouseOver="ShowTip(event, 'tt108', 'link111')" onMouseOut="HideTip('tt108')">begin_child_tr</a></td><td class=SDescription>This function marks the start of a child transaction, <i>tr</i>, by this component. </td></tr> |
| <!-- index=81 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.do_begin_tr" id=link112 onMouseOver="ShowTip(event, 'tt109', 'link112')" onMouseOut="HideTip('tt109')">do_begin_tr</a></td><td class=SDescription>The <a href="#uvm_component.begin_tr" class=LMethod id=link113 onMouseOver="ShowTip(event, 'tt107', 'link113')" onMouseOut="HideTip('tt107')">begin_tr</a> and <a href="#uvm_component.begin_child_tr" class=LMethod id=link114 onMouseOver="ShowTip(event, 'tt108', 'link114')" onMouseOut="HideTip('tt108')">begin_child_tr</a> methods call this function to accommodate any user-defined post-begin action. </td></tr> |
| <!-- index=82 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.end_tr" id=link115 onMouseOver="ShowTip(event, 'tt110', 'link115')" onMouseOut="HideTip('tt110')">end_tr</a></td><td class=SDescription>This function marks the end of a transaction, <i>tr</i>, by this component. </td></tr> |
| <!-- index=83 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.do_end_tr" id=link116 onMouseOver="ShowTip(event, 'tt111', 'link116')" onMouseOut="HideTip('tt111')">do_end_tr</a></td><td class=SDescription>The <a href="#uvm_component.end_tr" class=LMethod id=link117 onMouseOver="ShowTip(event, 'tt110', 'link117')" onMouseOut="HideTip('tt110')">end_tr</a> method calls this function to accommodate any user-defined post-end action. </td></tr> |
| <!-- index=84 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.record_error_tr" id=link118 onMouseOver="ShowTip(event, 'tt112', 'link118')" onMouseOut="HideTip('tt112')">record_error_tr</a></td><td class=SDescription>This function marks an error transaction by a component. </td></tr> |
| <!-- index=85 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.record_event_tr" id=link119 onMouseOver="ShowTip(event, 'tt113', 'link119')" onMouseOut="HideTip('tt113')">record_event_tr</a></td><td class=SDescription>This function marks an event transaction by a component.</td></tr> |
| <!-- index=86 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.get_tr_stream" id=link120 onMouseOver="ShowTip(event, 'tt114', 'link120')" onMouseOut="HideTip('tt114')">get_tr_stream</a></td><td class=SDescription>Returns a tr stream with <i>this</i> component’s full name as a scope.</td></tr> |
| <!-- index=87 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.free_tr_stream" id=link121 onMouseOver="ShowTip(event, 'tt115', 'link121')" onMouseOut="HideTip('tt115')">free_tr_stream</a></td><td class=SDescription>Frees the internal references associated with <i>stream</i>.</td></tr> |
| <!-- index=88 --> |
| |
| <tr class="SVariable SIndent2"><td class=SEntry><a href="#uvm_component.print_enabled" id=link122 onMouseOver="ShowTip(event, 'tt116', 'link122')" onMouseOut="HideTip('tt116')">print_enabled</a></td><td class=SDescription>This bit determines if this component should automatically be printed as a child of its parent object.</td></tr> |
| <!-- index=89 --> |
| |
| <tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.tr_database" id=link123 onMouseOver="ShowTip(event, 'tt117', 'link123')" onMouseOut="HideTip('tt117')">tr_database</a></td><td class=SDescription>Specifies the <a href="uvm_tr_database-svh.html#uvm_tr_database" class=LClass id=link124 onMouseOver="ShowTip(event, 'tt118', 'link124')" onMouseOut="HideTip('tt118')">uvm_tr_database</a> object to use for <a href="#uvm_component.begin_tr" class=LMethod id=link125 onMouseOver="ShowTip(event, 'tt107', 'link125')" onMouseOut="HideTip('tt107')">begin_tr</a> and other methods in the <a href="#uvm_component.Recording_Interface" class=LGroup id=link126 onMouseOver="ShowTip(event, 'tt119', 'link126')" onMouseOut="HideTip('tt119')">Recording Interface</a>. </td></tr></table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=1 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.new" href="../../src/base/uvm_component.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=3>function new (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>name,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap width=100%>parent</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Creates a new component with the given leaf instance <i>name</i> and handle to its <i>parent</i>. If the component is a top-level component (i.e. it is created in a static module or interface), <i>parent</i> should be <i>null</i>.</p><p>The component will be inserted as a child of the <i>parent</i> object, if any. If <i>parent</i> already has a child by the given <i>name</i>, an error is produced.</p><p>If <i>parent</i> is <i>null</i>, then the component will become a child of the implicit top-level component, <i>uvm_top</i>.</p><p>All classes derived from uvm_component must call super.new(name,parent).</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=2 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_component.Hierarchy_Interface" href="../../src/base/uvm_component.svh">Hierarchy Interface</a></h3><div class=CBody><p>These methods provide user access to information about the component hierarchy, i.e., topology.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=3 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.get_parent" href="../../src/base/uvm_component.svh">get_parent</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function uvm_component get_parent () |
| </td></tr></table></blockquote><div class=CBody><p>Returns a handle to this component’s parent, or <i>null</i> if it has no parent.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=4 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.get_full_name" href="../../src/base/uvm_component.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 hierarchical name of this object. The default implementation concatenates the hierarchical name of the parent, if any, with the leaf name of this object, as given by <a href="uvm_object-svh.html#uvm_object.get_name" class=LMethod id=link132 onMouseOver="ShowTip(event, 'tt122', 'link132')" onMouseOut="HideTip('tt122')">uvm_object::get_name</a>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=5 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.get_children" href="../../src/base/uvm_component.svh">get_children</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_children(</td> </tr><tr><td> </td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap width=100%>children[$]</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=4>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>This function populates the end of the <i>children</i> array with the list of this component’s children.</p><blockquote><pre>uvm_component array[$]; |
| my_comp.get_children(array); |
| foreach(array[i]) |
| do_something(array[i]);</pre></blockquote></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=6 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.get_child" href="../../src/base/uvm_component.svh">get_child</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 uvm_component get_child (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>name</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=7 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.get_next_child" href="../../src/base/uvm_component.svh">get_next_child</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 int get_next_child (</td> </tr><tr><td> </td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>name</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=4>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=8 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.get_first_child" href="../../src/base/uvm_component.svh">get_first_child</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 int get_first_child (</td> </tr><tr><td> </td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>name</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=4>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>These methods are used to iterate through this component’s children, if any. For example, given a component with an object handle, <i>comp</i>, the following code calls <a href="uvm_object-svh.html#uvm_object.print" class=LMethod id=link133 onMouseOver="ShowTip(event, 'tt123', 'link133')" onMouseOut="HideTip('tt123')">uvm_object::print</a> for each child:</p><blockquote><pre>string name; |
| uvm_component child; |
| if (comp.get_first_child(name)) |
| do begin |
| child = comp.get_child(name); |
| child.print(); |
| end while (comp.get_next_child(name));</pre></blockquote></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=9 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.get_num_children" href="../../src/base/uvm_component.svh">get_num_children</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function int get_num_children () |
| </td></tr></table></blockquote><div class=CBody><p>Returns the number of this component’s children.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=10 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.has_child" href="../../src/base/uvm_component.svh">has_child</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 int has_child (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>name</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Returns 1 if this component has a child with the given <i>name</i>, 0 otherwise.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=11 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.lookup" href="../../src/base/uvm_component.svh">lookup</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 uvm_component lookup (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>name</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Looks for a component with the given hierarchical <i>name</i> relative to this component. If the given <i>name</i> is preceded with a ‘.’ (dot), then the search begins relative to the top level (absolute lookup). The handle of the matching component is returned, else <i>null</i>. The name must not contain wildcards.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=12 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.get_depth" href="../../src/base/uvm_component.svh">get_depth</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function int unsigned get_depth() |
| </td></tr></table></blockquote><div class=CBody><p>Returns the component’s depth from the root level. uvm_top has a depth of 0. The test and any other top level components have a depth of 1, and so on.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=13 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_component.Phasing_Interface" href="../../src/base/uvm_component.svh">Phasing Interface</a></h3><div class=CBody><p>These methods implement an interface which allows all components to step through a standard schedule of phases, or a customized schedule, and also an API to allow independent phase domains which can jump like state machines to reflect behavior e.g. power domains on the DUT in different portions of the testbench. The phase tasks and functions are the phase name with the _phase suffix. For example, the build phase function is <a href="#uvm_component.build_phase" class=LMethod id=link134 onMouseOver="ShowTip(event, 'tt16', 'link134')" onMouseOut="HideTip('tt16')">build_phase</a>.</p><p>All processes associated with a task-based phase are killed when the phase ends. See <a href="uvm_task_phase-svh.html#uvm_task_phase" class=LClass id=link135 onMouseOver="ShowTip(event, 'tt124', 'link135')" onMouseOut="HideTip('tt124')">uvm_task_phase</a> for more details.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=14 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.build_phase" href="../../src/base/uvm_component.svh">build_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>virtual function void build_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>The <a href="uvm_common_phases-svh.html#uvm_build_phase" class=LClass id=link136 onMouseOver="ShowTip(event, 'tt17', 'link136')" onMouseOut="HideTip('tt17')">uvm_build_phase</a> phase implementation method.</p><p>Any override should call super.build_phase(phase) to execute the automatic configuration of fields registered in the component by calling <a href="#uvm_component.apply_config_settings" class=LMethod id=link137 onMouseOver="ShowTip(event, 'tt69', 'link137')" onMouseOut="HideTip('tt69')">apply_config_settings</a>. To turn off automatic configuration for a component, do not call super.build_phase(phase).</p><p>This method should never be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=15 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.connect_phase" href="../../src/base/uvm_component.svh">connect_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>virtual function void connect_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>The <a href="uvm_common_phases-svh.html#uvm_connect_phase" class=LClass id=link138 onMouseOver="ShowTip(event, 'tt19', 'link138')" onMouseOut="HideTip('tt19')">uvm_connect_phase</a> phase implementation method.</p><p>This method should never be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=16 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.end_of_elaboration_phase" href="../../src/base/uvm_component.svh">end_of_elaboration_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>virtual function void end_of_elaboration_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>The <a href="uvm_common_phases-svh.html#uvm_end_of_elaboration_phase" class=LClass id=link139 onMouseOver="ShowTip(event, 'tt21', 'link139')" onMouseOut="HideTip('tt21')">uvm_end_of_elaboration_phase</a> phase implementation method.</p><p>This method should never be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=17 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.start_of_simulation_phase" href="../../src/base/uvm_component.svh">start_of_simulation_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>virtual function void start_of_simulation_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>The <a href="uvm_common_phases-svh.html#uvm_start_of_simulation_phase" class=LClass id=link140 onMouseOver="ShowTip(event, 'tt23', 'link140')" onMouseOut="HideTip('tt23')">uvm_start_of_simulation_phase</a> phase implementation method.</p><p>This method should never be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=18 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.run_phase" href="../../src/base/uvm_component.svh">run_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>virtual task run_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>The <a href="uvm_common_phases-svh.html#uvm_run_phase" class=LClass id=link141 onMouseOver="ShowTip(event, 'tt25', 'link141')" onMouseOut="HideTip('tt25')">uvm_run_phase</a> phase implementation method.</p><p>This task returning or not does not indicate the end or persistence of this phase. Thus the phase will automatically end once all objections are dropped using <i>phase.drop_objection()</i>.</p><p>Any processes forked by this task continue to run after the task returns, but they will be killed once the phase ends.</p><p>The run_phase task should never be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=19 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.pre_reset_phase" href="../../src/base/uvm_component.svh">pre_reset_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>virtual task pre_reset_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>The <a href="uvm_runtime_phases-svh.html#uvm_pre_reset_phase" class=LClass id=link142 onMouseOver="ShowTip(event, 'tt27', 'link142')" onMouseOut="HideTip('tt27')">uvm_pre_reset_phase</a> phase implementation method.</p><p>This task returning or not does not indicate the end or persistence of this phase. It is necessary to raise an objection using <i>phase.raise_objection()</i> to cause the phase to persist. Once all components have dropped their respective objection using <i>phase.drop_objection()</i>, or if no components raises an objection, the phase is ended.</p><p>Any processes forked by this task continue to run after the task returns, but they will be killed once the phase ends.</p><p>This method should not be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=20 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.reset_phase" href="../../src/base/uvm_component.svh">reset_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>virtual task reset_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>The <a href="uvm_runtime_phases-svh.html#uvm_reset_phase" class=LClass id=link143 onMouseOver="ShowTip(event, 'tt29', 'link143')" onMouseOut="HideTip('tt29')">uvm_reset_phase</a> phase implementation method.</p><p>This task returning or not does not indicate the end or persistence of this phase. It is necessary to raise an objection using <i>phase.raise_objection()</i> to cause the phase to persist. Once all components have dropped their respective objection using <i>phase.drop_objection()</i>, or if no components raises an objection, the phase is ended.</p><p>Any processes forked by this task continue to run after the task returns, but they will be killed once the phase ends.</p><p>This method should not be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=21 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.post_reset_phase" href="../../src/base/uvm_component.svh">post_reset_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>virtual task post_reset_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>The <a href="uvm_runtime_phases-svh.html#uvm_post_reset_phase" class=LClass id=link144 onMouseOver="ShowTip(event, 'tt31', 'link144')" onMouseOut="HideTip('tt31')">uvm_post_reset_phase</a> phase implementation method.</p><p>This task returning or not does not indicate the end or persistence of this phase. It is necessary to raise an objection using <i>phase.raise_objection()</i> to cause the phase to persist. Once all components have dropped their respective objection using <i>phase.drop_objection()</i>, or if no components raises an objection, the phase is ended.</p><p>Any processes forked by this task continue to run after the task returns, but they will be killed once the phase ends.</p><p>This method should not be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=22 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.pre_configure_phase" href="../../src/base/uvm_component.svh">pre_configure_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>virtual task pre_configure_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>The <a href="uvm_runtime_phases-svh.html#uvm_pre_configure_phase" class=LClass id=link145 onMouseOver="ShowTip(event, 'tt33', 'link145')" onMouseOut="HideTip('tt33')">uvm_pre_configure_phase</a> phase implementation method.</p><p>This task returning or not does not indicate the end or persistence of this phase. It is necessary to raise an objection using <i>phase.raise_objection()</i> to cause the phase to persist. Once all components have dropped their respective objection using <i>phase.drop_objection()</i>, or if no components raises an objection, the phase is ended.</p><p>Any processes forked by this task continue to run after the task returns, but they will be killed once the phase ends.</p><p>This method should not be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=23 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.configure_phase" href="../../src/base/uvm_component.svh">configure_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>virtual task configure_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>The <a href="uvm_runtime_phases-svh.html#uvm_configure_phase" class=LClass id=link146 onMouseOver="ShowTip(event, 'tt35', 'link146')" onMouseOut="HideTip('tt35')">uvm_configure_phase</a> phase implementation method.</p><p>This task returning or not does not indicate the end or persistence of this phase. It is necessary to raise an objection using <i>phase.raise_objection()</i> to cause the phase to persist. Once all components have dropped their respective objection using <i>phase.drop_objection()</i>, or if no components raises an objection, the phase is ended.</p><p>Any processes forked by this task continue to run after the task returns, but they will be killed once the phase ends.</p><p>This method should not be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=24 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.post_configure_phase" href="../../src/base/uvm_component.svh">post_configure_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>virtual task post_configure_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>The <a href="uvm_runtime_phases-svh.html#uvm_post_configure_phase" class=LClass id=link147 onMouseOver="ShowTip(event, 'tt37', 'link147')" onMouseOut="HideTip('tt37')">uvm_post_configure_phase</a> phase implementation method.</p><p>This task returning or not does not indicate the end or persistence of this phase. It is necessary to raise an objection using <i>phase.raise_objection()</i> to cause the phase to persist. Once all components have dropped their respective objection using <i>phase.drop_objection()</i>, or if no components raises an objection, the phase is ended.</p><p>Any processes forked by this task continue to run after the task returns, but they will be killed once the phase ends.</p><p>This method should not be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=25 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.pre_main_phase" href="../../src/base/uvm_component.svh">pre_main_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>virtual task pre_main_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>The <a href="uvm_runtime_phases-svh.html#uvm_pre_main_phase" class=LClass id=link148 onMouseOver="ShowTip(event, 'tt39', 'link148')" onMouseOut="HideTip('tt39')">uvm_pre_main_phase</a> phase implementation method.</p><p>This task returning or not does not indicate the end or persistence of this phase. It is necessary to raise an objection using <i>phase.raise_objection()</i> to cause the phase to persist. Once all components have dropped their respective objection using <i>phase.drop_objection()</i>, or if no components raises an objection, the phase is ended.</p><p>Any processes forked by this task continue to run after the task returns, but they will be killed once the phase ends.</p><p>This method should not be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=26 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.main_phase" href="../../src/base/uvm_component.svh">main_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>virtual task main_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>The <a href="uvm_runtime_phases-svh.html#uvm_main_phase" class=LClass id=link149 onMouseOver="ShowTip(event, 'tt41', 'link149')" onMouseOut="HideTip('tt41')">uvm_main_phase</a> phase implementation method.</p><p>This task returning or not does not indicate the end or persistence of this phase. It is necessary to raise an objection using <i>phase.raise_objection()</i> to cause the phase to persist. Once all components have dropped their respective objection using <i>phase.drop_objection()</i>, or if no components raises an objection, the phase is ended.</p><p>Any processes forked by this task continue to run after the task returns, but they will be killed once the phase ends.</p><p>This method should not be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=27 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.post_main_phase" href="../../src/base/uvm_component.svh">post_main_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>virtual task post_main_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>The <a href="uvm_runtime_phases-svh.html#uvm_post_main_phase" class=LClass id=link150 onMouseOver="ShowTip(event, 'tt43', 'link150')" onMouseOut="HideTip('tt43')">uvm_post_main_phase</a> phase implementation method.</p><p>This task returning or not does not indicate the end or persistence of this phase. It is necessary to raise an objection using <i>phase.raise_objection()</i> to cause the phase to persist. Once all components have dropped their respective objection using <i>phase.drop_objection()</i>, or if no components raises an objection, the phase is ended.</p><p>Any processes forked by this task continue to run after the task returns, but they will be killed once the phase ends.</p><p>This method should not be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=28 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.pre_shutdown_phase" href="../../src/base/uvm_component.svh">pre_shutdown_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>virtual task pre_shutdown_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>The <a href="uvm_runtime_phases-svh.html#uvm_pre_shutdown_phase" class=LClass id=link151 onMouseOver="ShowTip(event, 'tt45', 'link151')" onMouseOut="HideTip('tt45')">uvm_pre_shutdown_phase</a> phase implementation method.</p><p>This task returning or not does not indicate the end or persistence of this phase. It is necessary to raise an objection using <i>phase.raise_objection()</i> to cause the phase to persist. Once all components have dropped their respective objection using <i>phase.drop_objection()</i>, or if no components raises an objection, the phase is ended.</p><p>Any processes forked by this task continue to run after the task returns, but they will be killed once the phase ends.</p><p>This method should not be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=29 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.shutdown_phase" href="../../src/base/uvm_component.svh">shutdown_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>virtual task shutdown_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>The <a href="uvm_runtime_phases-svh.html#uvm_shutdown_phase" class=LClass id=link152 onMouseOver="ShowTip(event, 'tt47', 'link152')" onMouseOut="HideTip('tt47')">uvm_shutdown_phase</a> phase implementation method.</p><p>This task returning or not does not indicate the end or persistence of this phase. It is necessary to raise an objection using <i>phase.raise_objection()</i> to cause the phase to persist. Once all components have dropped their respective objection using <i>phase.drop_objection()</i>, or if no components raises an objection, the phase is ended.</p><p>Any processes forked by this task continue to run after the task returns, but they will be killed once the phase ends.</p><p>This method should not be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=30 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.post_shutdown_phase" href="../../src/base/uvm_component.svh">post_shutdown_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>virtual task post_shutdown_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>The <a href="uvm_runtime_phases-svh.html#uvm_post_shutdown_phase" class=LClass id=link153 onMouseOver="ShowTip(event, 'tt49', 'link153')" onMouseOut="HideTip('tt49')">uvm_post_shutdown_phase</a> phase implementation method.</p><p>This task returning or not does not indicate the end or persistence of this phase. It is necessary to raise an objection using <i>phase.raise_objection()</i> to cause the phase to persist. Once all components have dropped their respective objection using <i>phase.drop_objection()</i>, or if no components raises an objection, the phase is ended.</p><p>Any processes forked by this task continue to run after the task returns, but they will be killed once the phase ends.</p><p>This method should not be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=31 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.extract_phase" href="../../src/base/uvm_component.svh">extract_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>virtual function void extract_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>The <a href="uvm_common_phases-svh.html#uvm_extract_phase" class=LClass id=link154 onMouseOver="ShowTip(event, 'tt51', 'link154')" onMouseOut="HideTip('tt51')">uvm_extract_phase</a> phase implementation method.</p><p>This method should never be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=32 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.check_phase" href="../../src/base/uvm_component.svh">check_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>virtual function void check_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>The <a href="uvm_common_phases-svh.html#uvm_check_phase" class=LClass id=link155 onMouseOver="ShowTip(event, 'tt53', 'link155')" onMouseOut="HideTip('tt53')">uvm_check_phase</a> phase implementation method.</p><p>This method should never be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=33 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.report_phase" href="../../src/base/uvm_component.svh">report_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>virtual function void report_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>The <a href="uvm_common_phases-svh.html#uvm_report_phase" class=LClass id=link156 onMouseOver="ShowTip(event, 'tt55', 'link156')" onMouseOut="HideTip('tt55')">uvm_report_phase</a> phase implementation method.</p><p>This method should never be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=34 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.final_phase" href="../../src/base/uvm_component.svh">final_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>virtual function void final_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>The <a href="uvm_common_phases-svh.html#uvm_final_phase" class=LClass id=link157 onMouseOver="ShowTip(event, 'tt57', 'link157')" onMouseOut="HideTip('tt57')">uvm_final_phase</a> phase implementation method.</p><p>This method should never be called directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=35 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.phase_started" href="../../src/base/uvm_component.svh">phase_started</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_started (</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>Invoked at the start of each phase. The <i>phase</i> argument specifies the phase being started. Any threads spawned in this callback are not affected when the phase ends.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=36 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.phase_ready_to_end" href="../../src/base/uvm_component.svh">phase_ready_to_end</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_ready_to_end (</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>Invoked when all objections to ending the given <i>phase</i> and all sibling phases have been dropped, thus indicating that <i>phase</i> is ready to begin a clean exit. Sibling phases are any phases that have a common successor phase in the schedule plus any phases that sync’d to the current phase. Components needing to consume delta cycles or advance time to perform a clean exit from the phase may raise the phase’s objection.</p><blockquote><pre>phase.raise_objection(this,"Reason");</pre></blockquote><p>It is the responsibility of this component to drop the objection once it is ready for this phase to end (and processes killed). If no objection to the given <i>phase</i> or sibling phases are raised, then phase_ended() is called after a delta cycle. If any objection is raised, then when all objections to ending the given <i>phase</i> and siblings are dropped, another iteration of phase_ready_to_end is called. To prevent endless iterations due to coding error, after 20 iterations, phase_ended() is called regardless of whether previous iteration had any objections raised.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=37 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.phase_ended" href="../../src/base/uvm_component.svh">phase_ended</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_ended (</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>Invoked at the end of each phase. The <i>phase</i> argument specifies the phase that is ending. Any threads spawned in this callback are not affected when the phase ends.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=38 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_domain" href="../../src/base/uvm_component.svh">set_domain</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 set_domain(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_domain </td> |
| <td class=PParameter nowrap>domain,</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>hier</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>Apply a phase domain to this component and, if <i>hier</i> is set, recursively to all its children.</p><p>Calls the virtual <a href="#uvm_component.define_domain" class=LMethod id=link158 onMouseOver="ShowTip(event, 'tt63', 'link158')" onMouseOut="HideTip('tt63')">define_domain</a> method, which derived components can override to augment or replace the domain definition of its base class.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=39 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.get_domain" href="../../src/base/uvm_component.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>Return handle to the phase domain set on this component</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=40 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.define_domain" href="../../src/base/uvm_component.svh">define_domain</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 protected function void define_domain(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_domain </td> |
| <td class=PParameter nowrap width=100%>domain</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Builds custom phase schedules into the provided <i>domain</i> handle.</p><p>This method is called by <a href="#uvm_component.set_domain" class=LMethod id=link159 onMouseOver="ShowTip(event, 'tt61', 'link159')" onMouseOut="HideTip('tt61')">set_domain</a>, which integrators use to specify this component belongs in a domain apart from the default ‘uvm’ domain.</p><p>Custom component base classes requiring a custom phasing schedule can augment or replace the domain definition they inherit by overriding their <i>defined_domain</i>. To augment, overrides would call super.define_domain(). To replace, overrides would not call super.define_domain().</p><p>The default implementation adds a copy of the <i>uvm</i> phasing schedule to the given <i>domain</i>, if one doesn’t already exist, and only if the domain is currently empty.</p><p>Calling <a href="#uvm_component.set_domain" class=LMethod id=link160 onMouseOver="ShowTip(event, 'tt61', 'link160')" onMouseOut="HideTip('tt61')">set_domain</a> with the default <i>uvm</i> domain (i.e. <a href="uvm_domain-svh.html#uvm_domain.get_uvm_domain" class=LMethod id=link161 onMouseOver="ShowTip(event, 'tt125', 'link161')" onMouseOut="HideTip('tt125')">uvm_domain::get_uvm_domain</a> ) on a component with no <i>define_domain</i> override effectively reverts the that component to using the default <i>uvm</i> domain. This may be useful if a branch of the testbench hierarchy defines a custom domain, but some child sub-branch should remain in the default <i>uvm</i> domain, call <a href="#uvm_component.set_domain" class=LMethod id=link162 onMouseOver="ShowTip(event, 'tt61', 'link162')" onMouseOut="HideTip('tt61')">set_domain</a> with a new domain instance handle with <i>hier</i> set. Then, in the sub-branch, call <a href="#uvm_component.set_domain" class=LMethod id=link163 onMouseOver="ShowTip(event, 'tt61', 'link163')" onMouseOut="HideTip('tt61')">set_domain</a> with the default <i>uvm</i> domain handle, obtained via <a href="uvm_domain-svh.html#uvm_domain.get_uvm_domain" class=LMethod id=link164 onMouseOver="ShowTip(event, 'tt125', 'link164')" onMouseOut="HideTip('tt125')">uvm_domain::get_uvm_domain</a>.</p><p>Alternatively, the integrator may define the graph in a new domain externally, then call <a href="#uvm_component.set_domain" class=LMethod id=link165 onMouseOver="ShowTip(event, 'tt61', 'link165')" onMouseOut="HideTip('tt61')">set_domain</a> to apply it to a component.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=41 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_phase_imp" href="../../src/base/uvm_component.svh">set_phase_imp</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 set_phase_imp(</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>imp,</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>hier</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>Override the default implementation for a phase on this component (tree) with a custom one, which must be created as a singleton object extending the default one and implementing required behavior in exec and traverse methods</p><p>The <i>hier</i> specifies whether to apply the custom functor to the whole tree or just this component.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=42 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.suspend" href="../../src/base/uvm_component.svh">suspend</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual task suspend () |
| </td></tr></table></blockquote><div class=CBody><p>Suspend this component.</p><p>This method must be implemented by the user to suspend the component according to the protocol and functionality it implements. A suspended component can be subsequently resumed using <a href="#uvm_component.resume" class=LMethod id=link166 onMouseOver="ShowTip(event, 'tt66', 'link166')" onMouseOut="HideTip('tt66')">resume()</a>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=43 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.resume" href="../../src/base/uvm_component.svh">resume</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual task resume () |
| </td></tr></table></blockquote><div class=CBody><p>Resume this component.</p><p>This method must be implemented by the user to resume a component that was previously suspended using <a href="#uvm_component.suspend" class=LMethod id=link167 onMouseOver="ShowTip(event, 'tt65', 'link167')" onMouseOut="HideTip('tt65')">suspend()</a>. Some component may start in the suspended state and may need to be explicitly resumed.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=44 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.resolve_bindings" href="../../src/base/uvm_component.svh">resolve_bindings</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function void resolve_bindings () |
| </td></tr></table></blockquote><div class=CBody><p>Processes all port, export, and imp connections. Checks whether each port’s min and max connection requirements are met.</p><p>It is called just before the end_of_elaboration phase.</p><p>Users should not call directly.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=45 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_component.Configuration_Interface" href="../../src/base/uvm_component.svh">Configuration Interface</a></h3><div class=CBody><p>Components can be designed to be user-configurable in terms of its topology (the type and number of children it has), mode of operation, and run-time parameters (knobs). The configuration interface accommodates this common need, allowing component composition and state to be modified without having to derive new classes or new class hierarchies for every configuration scenario.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=46 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.check_config_usage" href="../../src/base/uvm_component.svh">check_config_usage</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 check_config_usage (</td> </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>recurse</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>Check all configuration settings in a components configuration table to determine if the setting has been used, overridden or not used. When <i>recurse</i> is 1 (default), configuration for this and all child components are recursively checked. This function is automatically called in the check phase, but can be manually called at any time.</p><p>To get all configuration information prior to the run phase, do something like this in your top object:</p><blockquote><pre>function void start_of_simulation_phase(uvm_phase phase); |
| check_config_usage(); |
| endfunction</pre></blockquote></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=47 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.apply_config_settings" href="../../src/base/uvm_component.svh">apply_config_settings</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 apply_config_settings (</td> </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>verbose</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>Searches for all config settings matching this component’s instance path. For each match, the appropriate set_*_local method is called using the matching config setting’s field_name and value. Provided the set_*_local method is implemented, the component property associated with the field_name is assigned the given value.</p><p>This function is called by <a href="#uvm_component.build_phase" class=LMethod id=link168 onMouseOver="ShowTip(event, 'tt16', 'link168')" onMouseOut="HideTip('tt16')">uvm_component::build_phase</a>.</p><p>The apply_config_settings method determines all the configuration settings targeting this component and calls the appropriate set_*_local method to set each one. To work, you must override one or more set_*_local methods to accommodate setting of your component’s specific properties. Any properties registered with the optional `uvm_*_field macros do not require special handling by the set_*_local methods; the macros provide the set_*_local functionality for you.</p><p>If you do not want apply_config_settings to be called for a component, then the build_phase() method should be overloaded and you should not call super.build_phase(phase). Likewise, apply_config_settings can be overloaded to customize automated configuration.</p><p>When the <i>verbose</i> bit is set, all overrides are printed as they are applied. If the component’s <a href="#uvm_component.print_config_matches" class=LVariable id=link169 onMouseOver="ShowTip(event, 'tt74', 'link169')" onMouseOut="HideTip('tt74')">print_config_matches</a> property is set, then apply_config_settings is automatically called with <i>verbose</i> = 1.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=48 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.print_config_settings" href="../../src/base/uvm_component.svh">print_config_settings</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 print_config_settings (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>field</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap>comp</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>recurse</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>Called without arguments, print_config_settings prints all configuration information for this component, as set by previous calls to <a href="uvm_config_db-svh.html#uvm_config_db.set" class=LMethod id=link170 onMouseOver="ShowTip(event, 'tt71', 'link170')" onMouseOut="HideTip('tt71')">uvm_config_db::set()</a>. The settings are printing in the order of their precedence.</p><p>If <i>field</i> is specified and non-empty, then only configuration settings matching that field, if any, are printed. The field may not contain wildcards.</p><p>If <i>comp</i> is specified and non-<i>null</i>, then the configuration for that component is printed.</p><p>If <i>recurse</i> is set, then configuration information for all <i>comp</i>’s children and below are printed as well.</p><p>This function has been deprecated. Use print_config instead.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=49 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.print_config" href="../../src/base/uvm_component.svh">print_config</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 print_config(</td> </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>recurse</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>audit</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>Print_config_settings prints all configuration information for this component, as set by previous calls to <a href="uvm_config_db-svh.html#uvm_config_db.set" class=LMethod id=link171 onMouseOver="ShowTip(event, 'tt71', 'link171')" onMouseOut="HideTip('tt71')">uvm_config_db::set()</a> and exports to the resources pool. The settings are printing in the order of their precedence.</p><p>If <i>recurse</i> is set, then configuration information for all children and below are printed as well.</p><p>if <i>audit</i> is set then the audit trail for each resource is printed along with the resource name and value</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=50 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.print_config_with_audit" href="../../src/base/uvm_component.svh">print_config_with_audit</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 print_config_with_audit(</td> </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>recurse</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>Operates the same as print_config except that the audit bit is forced to 1. This interface makes user code a bit more readable as it avoids multiple arbitrary bit settings in the argument list.</p><p>If <i>recurse</i> is set, then configuration information for all children and below are printed as well.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=51 --> |
| <div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="uvm_component.print_config_matches" href="../../src/base/uvm_component.svh">print_config_matches</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>static bit print_config_matches |
| </td></tr></table></blockquote><div class=CBody><p>Setting this static variable causes uvm_config_db::get() to print info about matching configuration settings as they are being applied.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=52 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_component.Objection_Interface" href="../../src/base/uvm_component.svh">Objection Interface</a></h3><div class=CBody><p>These methods provide object level hooks into the <a href="uvm_objection-svh.html#uvm_objection" class=LClass id=link172 onMouseOver="ShowTip(event, 'tt75', 'link172')" onMouseOut="HideTip('tt75')">uvm_objection</a> mechanism.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=53 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.raised" href="../../src/base/uvm_component.svh">raised</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=3>virtual function void raised (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap width=100%>objection,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap width=100%>count</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>The <i>raised</i> callback is called when this or a descendant of this component instance raises the specified <i>objection</i>. The <i>source_obj</i> is the object that originally raised the objection. The <i>description</i> is optionally provided by the <i>source_obj</i> to give a reason for raising the objection. The <i>count</i> indicates the number of objections raised by the <i>source_obj</i>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=54 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.dropped" href="../../src/base/uvm_component.svh">dropped</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=3>virtual function void dropped (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap width=100%>objection,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap width=100%>count</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>The <i>dropped</i> callback is called when this or a descendant of this component instance drops the specified <i>objection</i>. The <i>source_obj</i> is the object that originally dropped the objection. The <i>description</i> is optionally provided by the <i>source_obj</i> to give a reason for dropping the objection. The <i>count</i> indicates the number of objections dropped by the <i>source_obj</i>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=55 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.all_dropped" href="../../src/base/uvm_component.svh">all_dropped</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=3>virtual task all_dropped (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap width=100%>objection,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap width=100%>count</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>The <i>all_droppped</i> callback is called when all objections have been dropped by this component and all its descendants. The <i>source_obj</i> is the object that dropped the last objection. The <i>description</i> is optionally provided by the <i>source_obj</i> to give a reason for raising the objection. The <i>count</i> indicates the number of objections dropped by the <i>source_obj</i>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=56 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_component.Factory_Interface" href="../../src/base/uvm_component.svh">Factory Interface</a></h3><div class=CBody><p>The factory interface provides convenient access to a portion of UVM’s <a href="uvm_factory-svh.html#uvm_factory" class=LClass id=link173 onMouseOver="ShowTip(event, 'tt79', 'link173')" onMouseOut="HideTip('tt79')">uvm_factory</a> interface. For creating new objects and components, the preferred method of accessing the factory is via the object or component wrapper (see <a href="uvm_registry-svh.html#uvm_component_registry#(T,Tname)" class=LClass id=link174 onMouseOver="ShowTip(event, 'tt126', 'link174')" onMouseOut="HideTip('tt126')">uvm_component_registry #(T,Tname)</a> and <a href="uvm_registry-svh.html#uvm_object_registry#(T,Tname)" class=LClass id=link175 onMouseOver="ShowTip(event, 'tt127', 'link175')" onMouseOut="HideTip('tt127')">uvm_object_registry #(T,Tname)</a>). The wrapper also provides functions for setting type and instance overrides.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=57 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.create_component" href="../../src/base/uvm_component.svh">create_component</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 uvm_component create_component (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>requested_type_name,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>name</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>A convenience function for <a href="uvm_factory-svh.html#uvm_factory.create_component_by_name" class=LMethod id=link176 onMouseOver="ShowTip(event, 'tt81', 'link176')" onMouseOut="HideTip('tt81')">uvm_factory::create_component_by_name</a>, this method calls upon the factory to create a new child component whose type corresponds to the preregistered type name, <i>requested_type_name</i>, and instance name, <i>name</i>. This method is equivalent to:</p><blockquote><pre>factory.create_component_by_name(requested_type_name, |
| get_full_name(), name, this);</pre></blockquote><p>If the factory determines that a type or instance override exists, the type of the component created may be different than the requested type. See <a href="#uvm_component.set_type_override" class=LMethod id=link177 onMouseOver="ShowTip(event, 'tt88', 'link177')" onMouseOut="HideTip('tt88')">set_type_override</a> and <a href="#uvm_component.set_inst_override" class=LMethod id=link178 onMouseOver="ShowTip(event, 'tt90', 'link178')" onMouseOut="HideTip('tt90')">set_inst_override</a>. See also <a href="uvm_factory-svh.html#uvm_factory" class=LClass id=link179 onMouseOver="ShowTip(event, 'tt79', 'link179')" onMouseOut="HideTip('tt79')">uvm_factory</a> for details on factory operation.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=58 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.create_object" href="../../src/base/uvm_component.svh">create_object</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_object create_object (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>requested_type_name,</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>name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>""</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>A convenience function for <a href="uvm_factory-svh.html#uvm_factory.create_object_by_name" class=LMethod id=link180 onMouseOver="ShowTip(event, 'tt83', 'link180')" onMouseOut="HideTip('tt83')">uvm_factory::create_object_by_name</a>, this method calls upon the factory to create a new object whose type corresponds to the preregistered type name, <i>requested_type_name</i>, and instance name, <i>name</i>. This method is equivalent to:</p><blockquote><pre>factory.create_object_by_name(requested_type_name, |
| get_full_name(), name);</pre></blockquote><p>If the factory determines that a type or instance override exists, the type of the object created may be different than the requested type. See <a href="uvm_factory-svh.html#uvm_factory" class=LClass id=link181 onMouseOver="ShowTip(event, 'tt79', 'link181')" onMouseOut="HideTip('tt79')">uvm_factory</a> for details on factory operation.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=59 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_type_override_by_type" href="../../src/base/uvm_component.svh">set_type_override_by_type</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>static function void set_type_override_by_type (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap>original_type,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap>override_type,</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>replace</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>A convenience function for <a href="uvm_factory-svh.html#uvm_factory.set_type_override_by_type" class=LMethod id=link182 onMouseOver="ShowTip(event, 'tt85', 'link182')" onMouseOut="HideTip('tt85')">uvm_factory::set_type_override_by_type</a>, this method registers a factory override for components and objects created at this level of hierarchy or below. This method is equivalent to:</p><blockquote><pre>factory.set_type_override_by_type(original_type, override_type,replace);</pre></blockquote><p>The <i>relative_inst_path</i> is relative to this component and may include wildcards. The <i>original_type</i> represents the type that is being overridden. In subsequent calls to <a href="uvm_factory-svh.html#uvm_factory.create_object_by_type" class=LMethod id=link183 onMouseOver="ShowTip(event, 'tt128', 'link183')" onMouseOut="HideTip('tt128')">uvm_factory::create_object_by_type</a> or <a href="uvm_factory-svh.html#uvm_factory.create_component_by_type" class=LMethod id=link184 onMouseOver="ShowTip(event, 'tt129', 'link184')" onMouseOut="HideTip('tt129')">uvm_factory::create_component_by_type</a>, if the requested_type matches the <i>original_type</i> and the instance paths match, the factory will produce the <i>override_type</i>.</p><p>The original and override type arguments are lightweight proxies to the types they represent. See <a href="#uvm_component.set_inst_override_by_type" class=LMethod id=link185 onMouseOver="ShowTip(event, 'tt86', 'link185')" onMouseOut="HideTip('tt86')">set_inst_override_by_type</a> for information on usage.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=60 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_inst_override_by_type" href="../../src/base/uvm_component.svh">set_inst_override_by_type</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_inst_override_by_type(</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>relative_inst_path,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap width=100%>original_type,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap width=100%>override_type</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>A convenience function for <a href="uvm_factory-svh.html#uvm_factory.set_inst_override_by_type" class=LMethod id=link186 onMouseOver="ShowTip(event, 'tt87', 'link186')" onMouseOut="HideTip('tt87')">uvm_factory::set_inst_override_by_type</a>, this method registers a factory override for components and objects created at this level of hierarchy or below. In typical usage, this method is equivalent to:</p><blockquote><pre>factory.set_inst_override_by_type( original_type, |
| override_type, |
| {get_full_name(),".", |
| relative_inst_path});</pre></blockquote><p>The <i>relative_inst_path</i> is relative to this component and may include wildcards. The <i>original_type</i> represents the type that is being overridden. In subsequent calls to <a href="uvm_factory-svh.html#uvm_factory.create_object_by_type" class=LMethod id=link187 onMouseOver="ShowTip(event, 'tt128', 'link187')" onMouseOut="HideTip('tt128')">uvm_factory::create_object_by_type</a> or <a href="uvm_factory-svh.html#uvm_factory.create_component_by_type" class=LMethod id=link188 onMouseOver="ShowTip(event, 'tt129', 'link188')" onMouseOut="HideTip('tt129')">uvm_factory::create_component_by_type</a>, if the requested_type matches the <i>original_type</i> and the instance paths match, the factory will produce the <i>override_type</i>.</p><p>The original and override types are lightweight proxies to the types they represent. They can be obtained by calling <i>type::get_type()</i>, if implemented by <i>type</i>, or by directly calling <i>type::type_id::get()</i>, where <i>type</i> is the user type and <i>type_id</i> is the name of the typedef to <a href="uvm_registry-svh.html#uvm_object_registry#(T,Tname)" class=LClass id=link189 onMouseOver="ShowTip(event, 'tt127', 'link189')" onMouseOut="HideTip('tt127')">uvm_object_registry #(T,Tname)</a> or <a href="uvm_registry-svh.html#uvm_component_registry#(T,Tname)" class=LClass id=link190 onMouseOver="ShowTip(event, 'tt126', 'link190')" onMouseOut="HideTip('tt126')">uvm_component_registry #(T,Tname)</a>.</p><p>If you are employing the `uvm_*_utils macros, the typedef and the get_type method will be implemented for you. For details on the utils macros refer to <a href="../macros/uvm_object_defines-svh.html#Utility_and_Field_Macros_for_Components_and_Objects" class=LSection >Utility and Field Macros for Components and Objects</a>.</p><h4 class=CHeading>The following example shows `uvm_*_utils usage</h4><blockquote><pre>class comp extends uvm_component; |
| `uvm_component_utils(comp) |
| ... |
| endclass |
| |
| class mycomp extends uvm_component; |
| `uvm_component_utils(mycomp) |
| ... |
| endclass |
| |
| class block extends uvm_component; |
| `uvm_component_utils(block) |
| comp c_inst; |
| virtual function void build_phase(uvm_phase phase); |
| set_inst_override_by_type("c_inst",comp::get_type(), |
| mycomp::get_type()); |
| endfunction |
| ... |
| endclass</pre></blockquote></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=61 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_type_override" href="../../src/base/uvm_component.svh">set_type_override</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>static function void set_type_override(</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>original_type_name,</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>override_type_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>replace</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>A convenience function for <a href="uvm_factory-svh.html#uvm_factory.set_type_override_by_name" class=LMethod id=link191 onMouseOver="ShowTip(event, 'tt89', 'link191')" onMouseOut="HideTip('tt89')">uvm_factory::set_type_override_by_name</a>, this method configures the factory to create an object of type <i>override_type_name</i> whenever the factory is asked to produce a type represented by <i>original_type_name</i>. This method is equivalent to:</p><blockquote><pre>factory.set_type_override_by_name(original_type_name, |
| override_type_name, replace);</pre></blockquote><p>The <i>original_type_name</i> typically refers to a preregistered type in the factory. It may, however, be any arbitrary string. Subsequent calls to create_component or create_object with the same string and matching instance path will produce the type represented by override_type_name. The <i>override_type_name</i> must refer to a preregistered type in the factory.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=62 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_inst_override" href="../../src/base/uvm_component.svh">set_inst_override</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_inst_override(</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>relative_inst_path,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>original_type_name,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>override_type_name</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>A convenience function for <a href="uvm_factory-svh.html#uvm_factory.set_inst_override_by_name" class=LMethod id=link192 onMouseOver="ShowTip(event, 'tt91', 'link192')" onMouseOut="HideTip('tt91')">uvm_factory::set_inst_override_by_name</a>, this method registers a factory override for components created at this level of hierarchy or below. In typical usage, this method is equivalent to:</p><blockquote><pre>factory.set_inst_override_by_name(original_type_name, |
| override_type_name, |
| {get_full_name(),".", |
| relative_inst_path} |
| );</pre></blockquote><p>The <i>relative_inst_path</i> is relative to this component and may include wildcards. The <i>original_type_name</i> typically refers to a preregistered type in the factory. It may, however, be any arbitrary string. Subsequent calls to create_component or create_object with the same string and matching instance path will produce the type represented by <i>override_type_name</i>. The <i>override_type_name</i> must refer to a preregistered type in the factory.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=63 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.print_override_info" href="../../src/base/uvm_component.svh">print_override_info</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 print_override_info(</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>requested_type_name,</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>name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>""</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>This factory debug method performs the same lookup process as create_object and create_component, but instead of creating an object, it prints information about what type of object would be created given the provided arguments.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=64 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_component.Hierarchical_Reporting_Interface" href="../../src/base/uvm_component.svh">Hierarchical Reporting Interface</a></h3><div class=CBody><p>This interface provides versions of the set_report_* methods in the <a href="uvm_report_object-svh.html#uvm_report_object" class=LClass id=link193 onMouseOver="ShowTip(event, 'tt3', 'link193')" onMouseOut="HideTip('tt3')">uvm_report_object</a> base class that are applied recursively to this component and all its children.</p><p>When a report is issued and its associated action has the LOG bit set, the report will be sent to its associated FILE descriptor.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=65 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_report_id_verbosity_hier" href="../../src/base/uvm_component.svh">set_report_id_verbosity_hier</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_report_id_verbosity_hier (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>id,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap width=100%>verbosity</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=66 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_report_severity_id_verbosity_hier" href="../../src/base/uvm_component.svh">set_report_severity_id_verbosity_hier</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_report_severity_id_verbosity_hier(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap width=100%>severity,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>id,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap width=100%>verbosity</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>These methods recursively associate the specified verbosity with reports of the given <i>severity</i>, <i>id</i>, or <i>severity-id</i> pair. A verbosity associated with a particular severity-id pair takes precedence over a verbosity associated with id, which takes precedence over a verbosity associated with a severity.</p><p>For a list of severities and their default verbosities, refer to <a href="uvm_report_handler-svh.html#uvm_report_handler" class=LClass id=link194 onMouseOver="ShowTip(event, 'tt120', 'link194')" onMouseOut="HideTip('tt120')">uvm_report_handler</a>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=67 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_report_severity_action_hier" href="../../src/base/uvm_component.svh">set_report_severity_action_hier</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_report_severity_action_hier (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap width=100%>severity,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_action </td> |
| <td class=PParameter nowrap width=100%>action</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=68 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_report_id_action_hier" href="../../src/base/uvm_component.svh">set_report_id_action_hier</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_report_id_action_hier (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>id,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_action </td> |
| <td class=PParameter nowrap width=100%>action</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=69 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_report_severity_id_action_hier" href="../../src/base/uvm_component.svh">set_report_severity_id_action_hier</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_report_severity_id_action_hier(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap width=100%>severity,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>id,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_action </td> |
| <td class=PParameter nowrap width=100%>action</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>These methods recursively associate the specified action with reports of the given <i>severity</i>, <i>id</i>, or <i>severity-id</i> pair. An action associated with a particular severity-id pair takes precedence over an action associated with id, which takes precedence over an action associated with a severity.</p><p>For a list of severities and their default actions, refer to <a href="uvm_report_handler-svh.html#uvm_report_handler" class=LClass id=link195 onMouseOver="ShowTip(event, 'tt120', 'link195')" onMouseOut="HideTip('tt120')">uvm_report_handler</a>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=70 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_report_default_file_hier" href="../../src/base/uvm_component.svh">set_report_default_file_hier</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_report_default_file_hier (</td> </tr><tr><td> </td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap width=100%>file</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=71 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_report_severity_file_hier" href="../../src/base/uvm_component.svh">set_report_severity_file_hier</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_report_severity_file_hier (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap width=100%>severity,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap width=100%>file</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=72 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_report_id_file_hier" href="../../src/base/uvm_component.svh">set_report_id_file_hier</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_report_id_file_hier (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>id,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap width=100%>file</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=73 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_report_severity_id_file_hier" href="../../src/base/uvm_component.svh">set_report_severity_id_file_hier</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_report_severity_id_file_hier(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap width=100%>severity,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>id,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap width=100%>file</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>These methods recursively associate the specified FILE descriptor with reports of the given <i>severity</i>, <i>id</i>, or <i>severity-id</i> pair. A FILE associated with a particular severity-id pair takes precedence over a FILE associated with id, which take precedence over an a FILE associated with a severity, which takes precedence over the default FILE descriptor.</p><p>For a list of severities and other information related to the report mechanism, refer to <a href="uvm_report_handler-svh.html#uvm_report_handler" class=LClass id=link196 onMouseOver="ShowTip(event, 'tt120', 'link196')" onMouseOut="HideTip('tt120')">uvm_report_handler</a>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=74 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_report_verbosity_level_hier" href="../../src/base/uvm_component.svh">set_report_verbosity_level_hier</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_report_verbosity_level_hier (</td> </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap width=100%>verbosity</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>This method recursively sets the maximum verbosity level for reports for this component and all those below it. Any report from this component subtree whose verbosity exceeds this maximum will be ignored.</p><p>See <a href="uvm_report_handler-svh.html#uvm_report_handler" class=LClass id=link197 onMouseOver="ShowTip(event, 'tt120', 'link197')" onMouseOut="HideTip('tt120')">uvm_report_handler</a> for a list of predefined message verbosity levels and their meaning.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=75 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.pre_abort" href="../../src/base/uvm_component.svh">pre_abort</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function void pre_abort |
| </td></tr></table></blockquote><div class=CBody><p>This callback is executed when the message system is executing a <a href="uvm_object_globals-svh.html#UVM_EXIT" class=LConstant id=link198 onMouseOver="ShowTip(event, 'tt104', 'link198')" onMouseOut="HideTip('tt104')">UVM_EXIT</a> action. The exit action causes an immediate termination of the simulation, but the pre_abort callback hook gives components an opportunity to provide additional information to the user before the termination happens. For example, a test may want to executed the report function of a particular component even when an error condition has happened to force a premature termination you would write a function like:</p><blockquote><pre>function void mycomponent::pre_abort(); |
| report(); |
| endfunction</pre></blockquote><p>The pre_abort() callback hooks are called in a bottom-up fashion.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=76 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_component.Recording_Interface" href="../../src/base/uvm_component.svh">Recording Interface</a></h3><div class=CBody><p>These methods comprise the component-based transaction recording interface. The methods can be used to record the transactions that this component “sees”, i.e. produces or consumes.</p><p>The API and implementation are subject to change once a vendor-independent use-model is determined.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=77 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.accept_tr" href="../../src/base/uvm_component.svh">accept_tr</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 accept_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>accept_time</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>This function marks the acceptance of a transaction, <i>tr</i>, by this component. Specifically, it performs the following actions:</p><ul><li>Calls the <i>tr</i>’s <a href="uvm_transaction-svh.html#uvm_transaction.accept_tr" class=LMethod id=link199 onMouseOver="ShowTip(event, 'tt130', 'link199')" onMouseOut="HideTip('tt130')">uvm_transaction::accept_tr</a> method, passing to it the <i>accept_time</i> argument.</li><li>Calls this component’s <a href="#uvm_component.do_accept_tr" class=LMethod id=link200 onMouseOver="ShowTip(event, 'tt106', 'link200')" onMouseOut="HideTip('tt106')">do_accept_tr</a> method to allow for any post-begin action in derived classes.</li><li>Triggers the component’s internal accept_tr event. Any processes waiting on this event will resume in the next delta cycle.</li></ul></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=78 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.do_accept_tr" href="../../src/base/uvm_component.svh">do_accept_tr</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 protected function void do_accept_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap width=100%>tr</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>The <a href="#uvm_component.accept_tr" class=LMethod id=link201 onMouseOver="ShowTip(event, 'tt105', 'link201')" onMouseOut="HideTip('tt105')">accept_tr</a> method calls this function to accommodate any user-defined post-accept action. Implementations should call super.do_accept_tr to ensure correct operation.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=79 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.begin_tr" href="../../src/base/uvm_component.svh">begin_tr</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 integer begin_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr,</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>stream_name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"main",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>label</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>desc</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>begin_time</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>0,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>integer </td> |
| <td class=PParameter nowrap>parent_handle</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>This function marks the start of a transaction, <i>tr</i>, by this component. Specifically, it performs the following actions:</p><ul><li>Calls <i>tr</i>’s <a href="uvm_transaction-svh.html#uvm_transaction.begin_tr" class=LMethod id=link202 onMouseOver="ShowTip(event, 'tt131', 'link202')" onMouseOut="HideTip('tt131')">uvm_transaction::begin_tr</a> method, passing to it the <i>begin_time</i> argument. The <i>begin_time</i> should be greater than or equal to the accept time. By default, when <i>begin_time</i> = 0, the current simulation time is used.</li></ul><p>If recording is enabled (recording_detail != UVM_OFF), then a new database-transaction is started on the component’s transaction stream given by the stream argument. No transaction properties are recorded at this time.</p><ul><li>Calls the component’s <a href="#uvm_component.do_begin_tr" class=LMethod id=link203 onMouseOver="ShowTip(event, 'tt109', 'link203')" onMouseOut="HideTip('tt109')">do_begin_tr</a> method to allow for any post-begin action in derived classes.</li><li>Triggers the component’s internal begin_tr event. Any processes waiting on this event will resume in the next delta cycle.</li></ul><p>A handle to the transaction is returned. The meaning of this handle, as well as the interpretation of the arguments <i>stream_name</i>, <i>label</i>, and <i>desc</i> are vendor specific.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=80 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.begin_child_tr" href="../../src/base/uvm_component.svh">begin_child_tr</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 integer begin_child_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>integer </td> |
| <td class=PParameter nowrap>parent_handle</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>0,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>stream_name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"main",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>label</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>desc</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>begin_time</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>This function marks the start of a child transaction, <i>tr</i>, by this component. Its operation is identical to that of <a href="#uvm_component.begin_tr" class=LMethod id=link204 onMouseOver="ShowTip(event, 'tt107', 'link204')" onMouseOut="HideTip('tt107')">begin_tr</a>, except that an association is made between this transaction and the provided parent transaction. This association is vendor-specific.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=81 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.do_begin_tr" href="../../src/base/uvm_component.svh">do_begin_tr</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 protected function void do_begin_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap width=100%>tr,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>stream_name,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>integer </td> |
| <td class=PParameter nowrap width=100%>tr_handle</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>The <a href="#uvm_component.begin_tr" class=LMethod id=link205 onMouseOver="ShowTip(event, 'tt107', 'link205')" onMouseOut="HideTip('tt107')">begin_tr</a> and <a href="#uvm_component.begin_child_tr" class=LMethod id=link206 onMouseOver="ShowTip(event, 'tt108', 'link206')" onMouseOut="HideTip('tt108')">begin_child_tr</a> methods call this function to accommodate any user-defined post-begin action. Implementations should call super.do_begin_tr to ensure correct operation.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=82 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.end_tr" href="../../src/base/uvm_component.svh">end_tr</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 end_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>end_time</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>0,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>free_handle</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>This function marks the end of a transaction, <i>tr</i>, by this component. Specifically, it performs the following actions:</p><ul><li>Calls <i>tr</i>’s <a href="uvm_transaction-svh.html#uvm_transaction.end_tr" class=LMethod id=link207 onMouseOver="ShowTip(event, 'tt132', 'link207')" onMouseOut="HideTip('tt132')">uvm_transaction::end_tr</a> method, passing to it the <i>end_time</i> argument. The <i>end_time</i> must at least be greater than the begin time. By default, when <i>end_time</i> = 0, the current simulation time is used.</li></ul><p>The transaction’s properties are recorded to the database-transaction on which it was started, and then the transaction is ended. Only those properties handled by the transaction’s do_record method (and optional `uvm_*_field macros) are recorded.</p><ul><li>Calls the component’s <a href="#uvm_component.do_end_tr" class=LMethod id=link208 onMouseOver="ShowTip(event, 'tt111', 'link208')" onMouseOut="HideTip('tt111')">do_end_tr</a> method to accommodate any post-end action in derived classes.</li><li>Triggers the component’s internal end_tr event. Any processes waiting on this event will resume in the next delta cycle.</li></ul><p>The <i>free_handle</i> bit indicates that this transaction is no longer needed. The implementation of free_handle is vendor-specific.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=83 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.do_end_tr" href="../../src/base/uvm_component.svh">do_end_tr</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 protected function void do_end_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap width=100%>tr,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>integer </td> |
| <td class=PParameter nowrap width=100%>tr_handle</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>The <a href="#uvm_component.end_tr" class=LMethod id=link209 onMouseOver="ShowTip(event, 'tt110', 'link209')" onMouseOut="HideTip('tt110')">end_tr</a> method calls this function to accommodate any user-defined post-end action. Implementations should call super.do_end_tr to ensure correct operation.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=84 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.record_error_tr" href="../../src/base/uvm_component.svh">record_error_tr</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 integer record_error_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>stream_name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"main",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>info</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>label</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"error_tr",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>desc</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>error_time</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>0,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>keep_active</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>This function marks an error transaction by a component. Properties of the given uvm_object, <i>info</i>, as implemented in its <a href="uvm_object-svh.html#uvm_object.do_record" class=LMethod id=link210 onMouseOver="ShowTip(event, 'tt133', 'link210')" onMouseOut="HideTip('tt133')">uvm_object::do_record</a> method, are recorded to the transaction database.</p><p>An <i>error_time</i> of 0 indicates to use the current simulation time. The <i>keep_active</i> bit determines if the handle should remain active. If 0, then a zero-length error transaction is recorded. A handle to the database-transaction is returned.</p><p>Interpretation of this handle, as well as the strings <i>stream_name</i>, <i>label</i>, and <i>desc</i>, are vendor-specific.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=85 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.record_event_tr" href="../../src/base/uvm_component.svh">record_event_tr</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 integer record_event_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>stream_name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"main",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>info</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>label</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"event_tr",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>desc</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>event_time</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>0,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>keep_active</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>This function marks an event transaction by a component.</p><p>An <i>event_time</i> of 0 indicates to use the current simulation time.</p><p>A handle to the transaction is returned. The <i>keep_active</i> bit determines if the handle may be used for other vendor-specific purposes.</p><p>The strings for <i>stream_name</i>, <i>label</i>, and <i>desc</i> are vendor-specific identifiers for the transaction.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=86 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.get_tr_stream" href="../../src/base/uvm_component.svh">get_tr_stream</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 uvm_tr_stream get_tr_stream(</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>string </td> |
| <td class=PParameter nowrap>stream_type_name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>""</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Returns a tr stream with <i>this</i> component’s full name as a scope.</p><p>Streams which are retrieved via this method will be stored internally, such that later calls to <i>get_tr_stream</i> will return the same stream reference.</p><p>The stream can be removed from the internal storage via a call to <a href="#uvm_component.free_tr_stream" class=LMethod id=link211 onMouseOver="ShowTip(event, 'tt115', 'link211')" onMouseOut="HideTip('tt115')">free_tr_stream</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>name</td><td class=CDLDescription>Name for the stream</td></tr><tr><td class=CDLEntry>stream_type_name</td><td class=CDLDescription>Type name for the stream (Default = “”)</td></tr></table></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=87 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.free_tr_stream" href="../../src/base/uvm_component.svh">free_tr_stream</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 free_tr_stream(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_tr_stream </td> |
| <td class=PParameter nowrap width=100%>stream</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Frees the internal references associated with <i>stream</i>.</p><p>The next call to <a href="#uvm_component.get_tr_stream" class=LMethod id=link212 onMouseOver="ShowTip(event, 'tt114', 'link212')" onMouseOut="HideTip('tt114')">get_tr_stream</a> will result in a newly created <a href="uvm_tr_stream-svh.html#uvm_tr_stream" class=LClass id=link213 onMouseOver="ShowTip(event, 'tt134', 'link213')" onMouseOut="HideTip('tt134')">uvm_tr_stream</a>. If the current stream is open (or closed), then it will be freed.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=88 --> |
| <div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="uvm_component.print_enabled" href="../../src/base/uvm_component.svh">print_enabled</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>bit print_enabled = 1 |
| </td></tr></table></blockquote><div class=CBody><p>This bit determines if this component should automatically be printed as a child of its parent object.</p><p>By default, all children are printed. However, this bit allows a parent component to disable the printing of specific children.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=89 --> |
| <div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="uvm_component.tr_database" href="../../src/base/uvm_component.svh">tr_database</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>uvm_tr_database tr_database |
| </td></tr></table></blockquote><div class=CBody><p>Specifies the <a href="uvm_tr_database-svh.html#uvm_tr_database" class=LClass id=link214 onMouseOver="ShowTip(event, 'tt118', 'link214')" onMouseOut="HideTip('tt118')">uvm_tr_database</a> object to use for <a href="#uvm_component.begin_tr" class=LMethod id=link215 onMouseOver="ShowTip(event, 'tt107', 'link215')" onMouseOut="HideTip('tt107')">begin_tr</a> and other methods in the <a href="#uvm_component.Recording_Interface" class=LGroup id=link216 onMouseOver="ShowTip(event, 'tt119', 'link216')" onMouseOut="HideTip('tt119')">Recording Interface</a>. Default is <a href="uvm_coreservice-svh.html#uvm_coreservice_t.get_default_tr_database" class=LMethod id=link217 onMouseOver="ShowTip(event, 'tt135', 'link217')" onMouseOut="HideTip('tt135')">uvm_coreservice_t::get_default_tr_database</a>.</p></div></div></div> |
| |
| </div><!--Content--> |
| |
| |
| |
| <!--START_ND_TOOLTIPS--> |
| <div class=CToolTip id="tt1"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_void |
| </td></tr></table></blockquote>The <i>uvm_void</i> class is the base class for all UVM classes. </div></div><div class=CToolTip id="tt2"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_object extends uvm_void |
| </td></tr></table></blockquote>The uvm_object class is the base class for all UVM data and hierarchical classes. </div></div><div class=CToolTip id="tt3"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_report_object extends uvm_object |
| </td></tr></table></blockquote>The uvm_report_object provides an interface to the UVM reporting facility. </div></div><div class=CToolTip id="tt4"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_component extends uvm_report_object |
| </td></tr></table></blockquote>The uvm_component class is the root base class for UVM components. </div></div><div class=CToolTip id="tt5"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=3>function new (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>name,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap width=100%>parent</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Creates a new component with the given leaf instance <i>name</i> and handle to its <i>parent</i>. </div></div><div class=CToolTip id="tt6"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function uvm_component get_parent () |
| </td></tr></table></blockquote>Returns a handle to this component’s parent, or <i>null</i> if it has no parent.</div></div><div class=CToolTip id="tt7"><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 hierarchical name of this object. </div></div><div class=CToolTip id="tt8"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=4>function void get_children(</td> </tr><tr><td> </td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap width=100%>children[$]</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=4>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| This function populates the end of the <i>children</i> array with the list of this component’s children.</div></div><div class=CToolTip id="tt9"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=3>function uvm_component get_child (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>name</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </div></div><div class=CToolTip id="tt10"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=4>function int get_next_child (</td> </tr><tr><td> </td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>name</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=4>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </div></div><div class=CToolTip id="tt11"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=4>function int get_first_child (</td> </tr><tr><td> </td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>name</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=4>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| These methods are used to iterate through this component’s children, if any. </div></div><div class=CToolTip id="tt12"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function int get_num_children () |
| </td></tr></table></blockquote>Returns the number of this component’s children.</div></div><div class=CToolTip id="tt13"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=3>function int has_child (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>name</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Returns 1 if this component has a child with the given <i>name</i>, 0 otherwise.</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 uvm_component lookup (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>name</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Looks for a component with the given hierarchical <i>name</i> relative to this component. </div></div><div class=CToolTip id="tt15"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function int unsigned get_depth() |
| </td></tr></table></blockquote>Returns the component’s depth from the root level. </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>virtual function void build_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> |
| The uvm_build_phase phase implementation method.</div></div><div class=CToolTip id="tt17"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_build_phase extends uvm_topdown_phase |
| </td></tr></table></blockquote>Create and configure of testbench structure</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 function void connect_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> |
| The uvm_connect_phase phase implementation method.</div></div><div class=CToolTip id="tt19"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_connect_phase extends uvm_bottomup_phase |
| </td></tr></table></blockquote>Establish cross-component connections.</div></div><div class=CToolTip id="tt20"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=3>virtual function void end_of_elaboration_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> |
| The uvm_end_of_elaboration_phase phase implementation method.</div></div><div class=CToolTip id="tt21"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_end_of_elaboration_phase extends uvm_bottomup_phase |
| </td></tr></table></blockquote>Fine-tune the testbench.</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=3>virtual function void start_of_simulation_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> |
| The uvm_start_of_simulation_phase phase implementation method.</div></div><div class=CToolTip id="tt23"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_start_of_simulation_phase extends uvm_bottomup_phase |
| </td></tr></table></blockquote>Get ready for DUT to be simulated.</div></div><div class=CToolTip id="tt24"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=3>virtual task run_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> |
| The uvm_run_phase phase implementation method.</div></div><div class=CToolTip id="tt25"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_run_phase extends uvm_task_phase |
| </td></tr></table></blockquote>Stimulate the DUT.</div></div><div class=CToolTip id="tt26"><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 pre_reset_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> |
| The uvm_pre_reset_phase phase implementation method.</div></div><div class=CToolTip id="tt27"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_pre_reset_phase extends uvm_task_phase |
| </td></tr></table></blockquote>Before reset is asserted.</div></div><div class=CToolTip id="tt28"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=3>virtual task reset_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> |
| The uvm_reset_phase phase implementation method.</div></div><div class=CToolTip id="tt29"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_reset_phase extends uvm_task_phase |
| </td></tr></table></blockquote>Reset is asserted.</div></div><div class=CToolTip id="tt30"><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 post_reset_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> |
| The uvm_post_reset_phase phase implementation method.</div></div><div class=CToolTip id="tt31"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_post_reset_phase extends uvm_task_phase |
| </td></tr></table></blockquote>After reset is de-asserted.</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=3>virtual task pre_configure_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> |
| The uvm_pre_configure_phase phase implementation method.</div></div><div class=CToolTip id="tt33"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_pre_configure_phase extends uvm_task_phase |
| </td></tr></table></blockquote>Before the DUT is configured by the SW.</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=3>virtual task configure_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> |
| The uvm_configure_phase phase implementation method.</div></div><div class=CToolTip id="tt35"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_configure_phase extends uvm_task_phase |
| </td></tr></table></blockquote>The SW configures the DUT.</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=3>virtual task post_configure_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> |
| The uvm_post_configure_phase phase implementation method.</div></div><div class=CToolTip id="tt37"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_post_configure_phase extends uvm_task_phase |
| </td></tr></table></blockquote>After the SW has configured the DUT.</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>virtual task pre_main_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> |
| The uvm_pre_main_phase phase implementation method.</div></div><div class=CToolTip id="tt39"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_pre_main_phase extends uvm_task_phase |
| </td></tr></table></blockquote>Before the primary test stimulus starts.</div></div><div class=CToolTip id="tt40"><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 main_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> |
| The uvm_main_phase phase implementation method.</div></div><div class=CToolTip id="tt41"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_main_phase extends uvm_task_phase |
| </td></tr></table></blockquote>Primary test stimulus.</div></div><div class=CToolTip id="tt42"><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 post_main_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> |
| The uvm_post_main_phase phase implementation method.</div></div><div class=CToolTip id="tt43"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_post_main_phase extends uvm_task_phase |
| </td></tr></table></blockquote>After enough of the primary test stimulus.</div></div><div class=CToolTip id="tt44"><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 pre_shutdown_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> |
| The uvm_pre_shutdown_phase phase implementation method.</div></div><div class=CToolTip id="tt45"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_pre_shutdown_phase extends uvm_task_phase |
| </td></tr></table></blockquote>Before things settle down.</div></div><div class=CToolTip id="tt46"><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 shutdown_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> |
| The uvm_shutdown_phase phase implementation method.</div></div><div class=CToolTip id="tt47"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_shutdown_phase extends uvm_task_phase |
| </td></tr></table></blockquote>Letting things settle down.</div></div><div class=CToolTip id="tt48"><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 post_shutdown_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> |
| The uvm_post_shutdown_phase phase implementation method.</div></div><div class=CToolTip id="tt49"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_post_shutdown_phase extends uvm_task_phase |
| </td></tr></table></blockquote>After things have settled down.</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 extract_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> |
| The uvm_extract_phase phase implementation method.</div></div><div class=CToolTip id="tt51"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_extract_phase extends uvm_bottomup_phase |
| </td></tr></table></blockquote>Extract data from different points of the verification environment.</div></div><div class=CToolTip id="tt52"><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 check_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> |
| The uvm_check_phase phase implementation method.</div></div><div class=CToolTip id="tt53"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_check_phase extends uvm_bottomup_phase |
| </td></tr></table></blockquote>Check for any unexpected conditions in the verification environment.</div></div><div class=CToolTip id="tt54"><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 report_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> |
| The uvm_report_phase phase implementation method.</div></div><div class=CToolTip id="tt55"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_report_phase extends uvm_bottomup_phase |
| </td></tr></table></blockquote>Report results of the test.</div></div><div class=CToolTip id="tt56"><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 final_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> |
| The uvm_final_phase phase implementation method.</div></div><div class=CToolTip id="tt57"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_final_phase extends uvm_topdown_phase |
| </td></tr></table></blockquote>Tie up loose ends.</div></div><div class=CToolTip id="tt58"><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_started (</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> |
| Invoked at the start of each phase. </div></div><div class=CToolTip id="tt59"><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_ready_to_end (</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> |
| Invoked when all objections to ending the given <i>phase</i> and all sibling phases have been dropped, thus indicating that <i>phase</i> is ready to begin a clean exit. </div></div><div class=CToolTip id="tt60"><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_ended (</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> |
| Invoked at the end of each phase. </div></div><div class=CToolTip id="tt61"><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 set_domain(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_domain </td> |
| <td class=PParameter nowrap>domain,</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>hier</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> |
| Apply a phase domain to this component and, if <i>hier</i> is set, recursively to all its children.</div></div><div class=CToolTip id="tt62"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function uvm_domain get_domain() |
| </td></tr></table></blockquote>Return handle to the phase domain set on this component</div></div><div class=CToolTip id="tt63"><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 protected function void define_domain(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_domain </td> |
| <td class=PParameter nowrap width=100%>domain</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Builds custom phase schedules into the provided <i>domain</i> handle.</div></div><div class=CToolTip id="tt64"><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 set_phase_imp(</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>imp,</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>hier</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> |
| Override the default implementation for a phase on this component (tree) with a custom one, which must be created as a singleton object extending the default one and implementing required behavior in exec and traverse methods</div></div><div class=CToolTip id="tt65"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual task suspend () |
| </td></tr></table></blockquote>Suspend this component.</div></div><div class=CToolTip id="tt66"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual task resume () |
| </td></tr></table></blockquote>Resume this component.</div></div><div class=CToolTip id="tt67"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function void resolve_bindings () |
| </td></tr></table></blockquote>Processes all port, export, and imp connections. </div></div><div class=CToolTip id="tt68"><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 check_config_usage (</td> </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>recurse</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> |
| Check all configuration settings in a components configuration table to determine if the setting has been used, overridden or not used. </div></div><div class=CToolTip id="tt69"><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 apply_config_settings (</td> </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>verbose</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> |
| Searches for all config settings matching this component’s instance path. </div></div><div class=CToolTip id="tt70"><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 print_config_settings (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>field</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap>comp</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>recurse</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> |
| Called without arguments, print_config_settings prints all configuration information for this component, as set by previous calls to uvm_config_db::set(). </div></div><div class=CToolTip id="tt71"><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>static function void set(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap width=100%>cntxt,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>inst_name,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>field_name,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>T </td> |
| <td class=PParameter nowrap width=100%>value</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Create a new or update an existing configuration setting for <i>field_name</i> in <i>inst_name</i> from <i>cntxt</i>. </div></div><div class=CToolTip id="tt72"><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 print_config(</td> </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>recurse</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>audit</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> |
| Print_config_settings prints all configuration information for this component, as set by previous calls to uvm_config_db::set() and exports to the resources pool. </div></div><div class=CToolTip id="tt73"><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 print_config_with_audit(</td> </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>recurse</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> |
| Operates the same as print_config except that the audit bit is forced to 1. </div></div><div class=CToolTip id="tt74"><div class=CVariable> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>static bit print_config_matches |
| </td></tr></table></blockquote>Setting this static variable causes uvm_config_db::get() to print info about matching configuration settings as they are being applied.</div></div><div class=CToolTip id="tt75"><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="tt76"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=3>virtual function void raised (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap width=100%>objection,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap width=100%>count</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| The <i>raised</i> callback is called when this or a descendant of this component instance raises the specified <i>objection</i>. </div></div><div class=CToolTip id="tt77"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=3>virtual function void dropped (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap width=100%>objection,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap width=100%>count</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| The <i>dropped</i> callback is called when this or a descendant of this component instance drops the specified <i>objection</i>. </div></div><div class=CToolTip id="tt78"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=3>virtual task all_dropped (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap width=100%>objection,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap width=100%>source_obj,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>description,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap width=100%>count</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| The <i>all_droppped</i> callback is called when all objections have been dropped by this component and all its descendants. </div></div><div class=CToolTip id="tt79"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_factory |
| </td></tr></table></blockquote>As the name implies, uvm_factory is used to manufacture (create) UVM objects and components. </div></div><div class=CToolTip id="tt80"><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 uvm_component create_component (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>requested_type_name,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>name</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| A convenience function for uvm_factory::create_component_by_name, this method calls upon the factory to create a new child component whose type corresponds to the preregistered type name, <i>requested_type_name</i>, and instance name, <i>name</i>. </div></div><div class=CToolTip id="tt81"><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>pure virtual function uvm_component create_component_by_name (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>requested_type_name,</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>parent_inst_path</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>name,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap>parent</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Creates and returns a component or object of the requested type, which may be specified by type or by name. </div></div><div class=CToolTip id="tt82"><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_object create_object (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>requested_type_name,</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>name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>""</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| A convenience function for uvm_factory::create_object_by_name, this method calls upon the factory to create a new object whose type corresponds to the preregistered type name, <i>requested_type_name</i>, and instance name, <i>name</i>. </div></div><div class=CToolTip id="tt83"><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>pure virtual function uvm_object create_object_by_name (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>requested_type_name,</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>parent_inst_path</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>name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>""</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </div></div><div class=CToolTip id="tt84"><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>static function void set_type_override_by_type (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap>original_type,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap>override_type,</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>replace</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> |
| A convenience function for uvm_factory::set_type_override_by_type, this method registers a factory override for components and objects created at this level of hierarchy or below. </div></div><div class=CToolTip id="tt85"><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>pure virtual function void set_type_override_by_type (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap>original_type,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap>override_type,</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>replace</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></div><div class=CToolTip id="tt86"><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_inst_override_by_type(</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>relative_inst_path,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap width=100%>original_type,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap width=100%>override_type</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| A convenience function for uvm_factory::set_inst_override_by_type, this method registers a factory override for components and objects created at this level of hierarchy or below. </div></div><div class=CToolTip id="tt87"><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>pure virtual function void set_inst_override_by_type (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap width=100%>original_type,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap width=100%>override_type,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>full_inst_path</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </div></div><div class=CToolTip id="tt88"><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>static function void set_type_override(</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>original_type_name,</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>override_type_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>replace</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> |
| A convenience function for uvm_factory::set_type_override_by_name, this method configures the factory to create an object of type <i>override_type_name</i> whenever the factory is asked to produce a type represented by <i>original_type_name</i>. </div></div><div class=CToolTip id="tt89"><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>pure virtual function void set_type_override_by_name (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>original_type_name,</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>override_type_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>replace</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> |
| Configures the factory to create an object of the override’s type whenever a request is made to create an object of the original type, provided no instance override applies. </div></div><div class=CToolTip id="tt90"><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_inst_override(</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>relative_inst_path,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>original_type_name,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>override_type_name</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| A convenience function for uvm_factory::set_inst_override_by_name, this method registers a factory override for components created at this level of hierarchy or below. </div></div><div class=CToolTip id="tt91"><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>pure virtual function void set_inst_override_by_name (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>original_type_name,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>override_type_name,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>full_inst_path</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Configures the factory to create an object of the override’s type whenever a request is made to create an object of the original type using a context that matches <i>full_inst_path</i>. </div></div><div class=CToolTip id="tt92"><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 print_override_info(</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>requested_type_name,</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>name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>""</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| This factory debug method performs the same lookup process as create_object and create_component, but instead of creating an object, it prints information about what type of object would be created given the provided arguments.</div></div><div class=CToolTip id="tt93"><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_report_id_verbosity_hier (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>id,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap width=100%>verbosity</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </div></div><div class=CToolTip id="tt94"><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_report_severity_id_verbosity_hier(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap width=100%>severity,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>id,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap width=100%>verbosity</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| These methods recursively associate the specified verbosity with reports of the given <i>severity</i>, <i>id</i>, or <i>severity-id</i> pair. </div></div><div class=CToolTip id="tt95"><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_report_severity_action_hier (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap width=100%>severity,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_action </td> |
| <td class=PParameter nowrap width=100%>action</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </div></div><div class=CToolTip id="tt96"><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_report_id_action_hier (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>id,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_action </td> |
| <td class=PParameter nowrap width=100%>action</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </div></div><div class=CToolTip id="tt97"><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_report_severity_id_action_hier(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap width=100%>severity,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>id,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_action </td> |
| <td class=PParameter nowrap width=100%>action</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| These methods recursively associate the specified action with reports of the given <i>severity</i>, <i>id</i>, or <i>severity-id</i> pair. </div></div><div class=CToolTip id="tt98"><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_report_default_file_hier (</td> </tr><tr><td> </td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap width=100%>file</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </div></div><div class=CToolTip id="tt99"><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_report_severity_file_hier (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap width=100%>severity,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap width=100%>file</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </div></div><div class=CToolTip id="tt100"><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_report_id_file_hier (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>id,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap width=100%>file</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </div></div><div class=CToolTip id="tt101"><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_report_severity_id_file_hier(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap width=100%>severity,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>id,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap width=100%>file</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| These methods recursively associate the specified FILE descriptor with reports of the given <i>severity</i>, <i>id</i>, or <i>severity-id</i> pair. </div></div><div class=CToolTip id="tt102"><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_report_verbosity_level_hier (</td> </tr><tr><td> </td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap width=100%>verbosity</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| This method recursively sets the maximum verbosity level for reports for this component and all those below it. </div></div><div class=CToolTip id="tt103"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function void pre_abort |
| </td></tr></table></blockquote>This callback is executed when the message system is executing a UVM_EXIT action. </div></div><div class=CToolTip id="tt104"><div class=CConstant>Terminates the simulation immediately.</div></div><div class=CToolTip id="tt105"><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 accept_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>accept_time</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> |
| This function marks the acceptance of a transaction, <i>tr</i>, by this component. </div></div><div class=CToolTip id="tt106"><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 protected function void do_accept_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap width=100%>tr</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| The accept_tr method calls this function to accommodate any user-defined post-accept action. </div></div><div class=CToolTip id="tt107"><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 integer begin_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr,</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>stream_name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"main",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>label</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>desc</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>begin_time</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>0,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>integer </td> |
| <td class=PParameter nowrap>parent_handle</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> |
| This function marks the start of a transaction, <i>tr</i>, by this component. </div></div><div class=CToolTip id="tt108"><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 integer begin_child_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>integer </td> |
| <td class=PParameter nowrap>parent_handle</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>0,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>stream_name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"main",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>label</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>desc</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>begin_time</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> |
| This function marks the start of a child transaction, <i>tr</i>, by this component. </div></div><div class=CToolTip id="tt109"><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 protected function void do_begin_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap width=100%>tr,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap width=100%>stream_name,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>integer </td> |
| <td class=PParameter nowrap width=100%>tr_handle</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| The begin_tr and begin_child_tr methods call this function to accommodate any user-defined post-begin action. </div></div><div class=CToolTip id="tt110"><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 end_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>end_time</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>0,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>free_handle</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> |
| This function marks the end of a transaction, <i>tr</i>, by this component. </div></div><div class=CToolTip id="tt111"><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 protected function void do_end_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap width=100%>tr,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>integer </td> |
| <td class=PParameter nowrap width=100%>tr_handle</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| The end_tr method calls this function to accommodate any user-defined post-end action. </div></div><div class=CToolTip id="tt112"><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 integer record_error_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>stream_name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"main",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>info</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>label</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"error_tr",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>desc</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>error_time</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>0,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>keep_active</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> |
| This function marks an error transaction by a component. </div></div><div class=CToolTip id="tt113"><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 integer record_event_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>stream_name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"main",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>info</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>null,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>label</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"event_tr",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>desc</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"",</td> |
| </tr><tr><td> </td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>event_time</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>0,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>keep_active</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> |
| This function marks an event transaction by a component.</div></div><div class=CToolTip id="tt114"><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 uvm_tr_stream get_tr_stream(</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>string </td> |
| <td class=PParameter nowrap>stream_type_name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>""</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Returns a tr stream with <i>this</i> component’s full name as a scope.</div></div><div class=CToolTip id="tt115"><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 free_tr_stream(</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_tr_stream </td> |
| <td class=PParameter nowrap width=100%>stream</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Frees the internal references associated with <i>stream</i>.</div></div><div class=CToolTip id="tt116"><div class=CVariable> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>bit print_enabled = 1 |
| </td></tr></table></blockquote>This bit determines if this component should automatically be printed as a child of its parent object.</div></div><div class=CToolTip id="tt117"><div class=CVariable> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>uvm_tr_database tr_database |
| </td></tr></table></blockquote>Specifies the uvm_tr_database object to use for begin_tr and other methods in the Recording Interface. </div></div><div class=CToolTip id="tt118"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_tr_database extends uvm_object |
| </td></tr></table></blockquote>The <i>uvm_tr_database</i> class is intended to hide the underlying database implementation from the end user, as these details are often vendor or tool-specific.</div></div><div class=CToolTip id="tt119"><div class=CGroup>These methods comprise the component-based transaction recording interface. </div></div><div class=CToolTip id="tt120"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_report_handler extends uvm_object |
| </td></tr></table></blockquote>The uvm_report_handler is the class to which most methods in uvm_report_object delegate. </div></div><div class=CToolTip id="tt121"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function void reseed () |
| </td></tr></table></blockquote>Calls <i>srandom</i> on the object to reseed the object using the UVM seeding mechanism, which sets the seed based on type name and instance name instead of based on instance position in a thread.</div></div><div class=CToolTip id="tt122"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function string get_name () |
| </td></tr></table></blockquote>Returns the name of the object, as provided by the <i>name</i> argument in the new constructor or set_name method.</div></div><div class=CToolTip id="tt123"><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 print (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_printer </td> |
| <td class=PParameter nowrap>printer</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> |
| The <i>print</i> method deep-prints this object’s properties in a format and manner governed by the given <i>printer</i> argument; if the <i>printer</i> argument is not provided, the global uvm_default_printer is used. </div></div><div class=CToolTip id="tt124"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_task_phase extends uvm_phase |
| </td></tr></table></blockquote>Base class for all task phases. </div></div><div class=CToolTip id="tt125"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>static function uvm_domain get_uvm_domain() |
| </td></tr></table></blockquote>Get a handle to the singleton <i>uvm</i> domain</div></div><div class=CToolTip id="tt126"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=5>class uvm_component_registry #(</td> </tr><tr><td> </td> <td class=PType nowrap>type </td> |
| <td class=PParameter nowrap>T</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>uvm_component,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>Tname</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"<unknown>"</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>) extends uvm_object_wrapper</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| The uvm_component_registry serves as a lightweight proxy for a component of type <i>T</i> and type name <i>Tname</i>, a string. </div></div><div class=CToolTip id="tt127"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=5>class uvm_object_registry #(</td> </tr><tr><td> </td> <td class=PType nowrap>type </td> |
| <td class=PParameter nowrap>T</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>uvm_object,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>Tname</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>"<unknown>"</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>) extends uvm_object_wrapper</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| The uvm_object_registry serves as a lightweight proxy for a uvm_object of type <i>T</i> and type name <i>Tname</i>, a string. </div></div><div class=CToolTip id="tt128"><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>pure virtual function uvm_object create_object_by_type (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap>requested_type,</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>parent_inst_path</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>name</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>""</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </div></div><div class=CToolTip id="tt129"><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>pure virtual function uvm_component create_component_by_type (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap>requested_type,</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>parent_inst_path</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>name,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap>parent</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </div></div><div class=CToolTip id="tt130"><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 accept_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>accept_time</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> |
| Calling <i>accept_tr</i> indicates that the transaction item has been received by a consumer component. </div></div><div class=CToolTip id="tt131"><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 integer begin_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>begin_time</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> |
| This function indicates that the transaction has been started and is not the child of another transaction. </div></div><div class=CToolTip id="tt132"><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 end_tr (</td> </tr><tr><td> </td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>end_time</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>0,</td> |
| </tr><tr><td> </td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>free_handle</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> |
| This function indicates that the transaction execution has ended. </div></div><div class=CToolTip id="tt133"><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 do_record (</td> </tr><tr><td> </td> <td class=PType nowrap>uvm_recorder </td> |
| <td class=PParameter nowrap width=100%>recorder</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| The <i>do_record</i> method is the user-definable hook called by the record method. </div></div><div class=CToolTip id="tt134"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_tr_stream extends uvm_object |
| </td></tr></table></blockquote>The <i>uvm_tr_stream</i> base class is a representation of a stream of records within a uvm_tr_database.</div></div><div class=CToolTip id="tt135"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>pure virtual function uvm_tr_database get_default_tr_database() |
| </td></tr></table></blockquote>intended to return the current default record database</div></div><!--END_ND_TOOLTIPS--> |
| |
| <script language=JavaScript><!-- |
| if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html> |