| <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=link129 onMouseOver="ShowTip(event, 'tt2', 'link129')" onMouseOut="HideTip('tt2')">uvm_object</a> and <a href="uvm_report_object-svh.html#uvm_report_object" class=LClass id=link130 onMouseOver="ShowTip(event, 'tt3', 'link130')" 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>Configuration</td><td class=CDLDescription>provides methods for configuring component topology and other parameters ahead of and during component construction.</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=link131 onMouseOver="ShowTip(event, 'tt123', 'link131')" onMouseOut="HideTip('tt123')">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=link132 onMouseOver="ShowTip(event, 'tt84', 'link132')" onMouseOut="HideTip('tt84')">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=link133 onMouseOver="ShowTip(event, 'tt124', 'link133')" onMouseOut="HideTip('tt124')">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=LGeneric 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 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 null 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.set_config_int" id=link68 onMouseOver="ShowTip(event, 'tt68', 'link68')" onMouseOut="HideTip('tt68')">set_config_int</a></td><td class=SDescription></td></tr> |
| <!-- index=47 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_config_string" id=link69 onMouseOver="ShowTip(event, 'tt69', 'link69')" onMouseOut="HideTip('tt69')">set_config_string</a></td><td class=SDescription></td></tr> |
| <!-- index=48 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_config_object" id=link70 onMouseOver="ShowTip(event, 'tt70', 'link70')" onMouseOut="HideTip('tt70')">set_config_object</a></td><td class=SDescription>Calling set_config_* causes configuration settings to be created and placed in a table internal to this component. </td></tr> |
| <!-- index=49 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.get_config_int" id=link71 onMouseOver="ShowTip(event, 'tt71', 'link71')" onMouseOut="HideTip('tt71')">get_config_int</a></td><td class=SDescription></td></tr> |
| <!-- index=50 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.get_config_string" id=link72 onMouseOver="ShowTip(event, 'tt72', 'link72')" onMouseOut="HideTip('tt72')">get_config_string</a></td><td class=SDescription></td></tr> |
| <!-- index=51 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.get_config_object" id=link73 onMouseOver="ShowTip(event, 'tt73', 'link73')" onMouseOut="HideTip('tt73')">get_config_object</a></td><td class=SDescription>These methods retrieve configuration settings made by previous calls to their set_config_* counterparts. </td></tr> |
| <!-- index=52 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.check_config_usage" id=link74 onMouseOver="ShowTip(event, 'tt74', 'link74')" onMouseOut="HideTip('tt74')">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=53 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.apply_config_settings" id=link75 onMouseOver="ShowTip(event, 'tt75', 'link75')" onMouseOut="HideTip('tt75')">apply_config_settings</a></td><td class=SDescription>Searches for all config settings matching this component’s instance path. </td></tr> |
| <!-- index=54 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.print_config_settings" id=link76 onMouseOver="ShowTip(event, 'tt76', 'link76')" onMouseOut="HideTip('tt76')">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 set_config_*. </td></tr> |
| <!-- index=55 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.print_config" id=link77 onMouseOver="ShowTip(event, 'tt77', 'link77')" onMouseOut="HideTip('tt77')">print_config</a></td><td class=SDescription>Print_config_settings prints all configuration information for this component, as set by previous calls to set_config_* and exports to the resources pool. </td></tr> |
| <!-- index=56 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.print_config_with_audit" id=link78 onMouseOver="ShowTip(event, 'tt78', 'link78')" onMouseOut="HideTip('tt78')">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=57 --> |
| |
| <tr class="SVariable SIndent2"><td class=SEntry><a href="#uvm_component.print_config_matches" id=link79 onMouseOver="ShowTip(event, 'tt79', 'link79')" onMouseOut="HideTip('tt79')">print_config_matches</a></td><td class=SDescription>Setting this static variable causes get_config_* to print info about matching configuration settings as they are being applied.</td></tr> |
| <!-- index=58 --> |
| |
| <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=link80 onMouseOver="ShowTip(event, 'tt80', 'link80')" onMouseOut="HideTip('tt80')">uvm_objection</a> mechanism.</td></tr> |
| <!-- index=59 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.raised" id=link81 onMouseOver="ShowTip(event, 'tt81', 'link81')" onMouseOut="HideTip('tt81')">raised</a></td><td class=SDescription>The <i>raised</i> callback is called when this or a descendant of this component instance raises the specfied <i>objection</i>. </td></tr> |
| <!-- index=60 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.dropped" id=link82 onMouseOver="ShowTip(event, 'tt82', 'link82')" onMouseOut="HideTip('tt82')">dropped</a></td><td class=SDescription>The <i>dropped</i> callback is called when this or a descendant of this component instance drops the specfied <i>objection</i>. </td></tr> |
| <!-- index=61 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.all_dropped" id=link83 onMouseOver="ShowTip(event, 'tt83', 'link83')" onMouseOut="HideTip('tt83')">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=62 --> |
| |
| <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=link84 onMouseOver="ShowTip(event, 'tt84', 'link84')" onMouseOut="HideTip('tt84')">uvm_factory</a> interface. </td></tr> |
| <!-- index=63 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.create_component" id=link85 onMouseOver="ShowTip(event, 'tt85', 'link85')" onMouseOut="HideTip('tt85')">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=link86 onMouseOver="ShowTip(event, 'tt86', 'link86')" onMouseOut="HideTip('tt86')">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=64 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.create_object" id=link87 onMouseOver="ShowTip(event, 'tt87', 'link87')" onMouseOut="HideTip('tt87')">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=link88 onMouseOver="ShowTip(event, 'tt88', 'link88')" onMouseOut="HideTip('tt88')">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=65 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_type_override_by_type" id=link89 onMouseOver="ShowTip(event, 'tt89', 'link89')" onMouseOut="HideTip('tt89')">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=link90 onMouseOver="ShowTip(event, 'tt90', 'link90')" onMouseOut="HideTip('tt90')">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=66 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.set_inst_override_by_type" id=link91 onMouseOver="ShowTip(event, 'tt91', 'link91')" onMouseOut="HideTip('tt91')">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=link92 onMouseOver="ShowTip(event, 'tt92', 'link92')" onMouseOut="HideTip('tt92')">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=67 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_type_override" id=link93 onMouseOver="ShowTip(event, 'tt93', 'link93')" onMouseOut="HideTip('tt93')">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=link94 onMouseOver="ShowTip(event, 'tt94', 'link94')" onMouseOut="HideTip('tt94')">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=68 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.set_inst_override" id=link95 onMouseOver="ShowTip(event, 'tt95', 'link95')" onMouseOut="HideTip('tt95')">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=link96 onMouseOver="ShowTip(event, 'tt96', 'link96')" onMouseOut="HideTip('tt96')">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=69 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.print_override_info" id=link97 onMouseOver="ShowTip(event, 'tt97', 'link97')" onMouseOut="HideTip('tt97')">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=70 --> |
| |
| <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=link98 onMouseOver="ShowTip(event, 'tt3', 'link98')" onMouseOut="HideTip('tt3')">uvm_report_object</a> base class that are applied recursively to this component and all its children.</td></tr> |
| <!-- index=71 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_report_id_verbosity_hier" id=link99 onMouseOver="ShowTip(event, 'tt98', 'link99')" onMouseOut="HideTip('tt98')">set_report_id_verbosity_hier</a></td><td class=SDescription></td></tr> |
| <!-- index=72 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_report_severity_id_verbosity_hier" id=link100 onMouseOver="ShowTip(event, 'tt99', 'link100')" onMouseOut="HideTip('tt99')">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=73 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.set_report_severity_action_hier" id=link101 onMouseOver="ShowTip(event, 'tt100', 'link101')" onMouseOut="HideTip('tt100')">set_report_severity_action_hier</a></td><td class=SDescription></td></tr> |
| <!-- index=74 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.set_report_id_action_hier" id=link102 onMouseOver="ShowTip(event, 'tt101', 'link102')" onMouseOut="HideTip('tt101')">set_report_id_action_hier</a></td><td class=SDescription></td></tr> |
| <!-- index=75 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.set_report_severity_id_action_hier" id=link103 onMouseOver="ShowTip(event, 'tt102', 'link103')" onMouseOut="HideTip('tt102')">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=76 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_report_default_file_hier" id=link104 onMouseOver="ShowTip(event, 'tt103', 'link104')" onMouseOut="HideTip('tt103')">set_report_default_file_hier</a></td><td class=SDescription></td></tr> |
| <!-- index=77 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_report_severity_file_hier" id=link105 onMouseOver="ShowTip(event, 'tt104', 'link105')" onMouseOut="HideTip('tt104')">set_report_severity_file_hier</a></td><td class=SDescription></td></tr> |
| <!-- index=78 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_report_id_file_hier" id=link106 onMouseOver="ShowTip(event, 'tt105', 'link106')" onMouseOut="HideTip('tt105')">set_report_id_file_hier</a></td><td class=SDescription></td></tr> |
| <!-- index=79 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.set_report_severity_id_file_hier" id=link107 onMouseOver="ShowTip(event, 'tt106', 'link107')" onMouseOut="HideTip('tt106')">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=80 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.set_report_verbosity_level_hier" id=link108 onMouseOver="ShowTip(event, 'tt107', 'link108')" onMouseOut="HideTip('tt107')">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=81 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.pre_abort" id=link109 onMouseOver="ShowTip(event, 'tt108', 'link109')" onMouseOut="HideTip('tt108')">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=link110 onMouseOver="ShowTip(event, 'tt109', 'link110')" onMouseOut="HideTip('tt109')">UVM_EXIT</a> action. </td></tr> |
| <!-- index=82 --> |
| |
| <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=83 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.accept_tr" id=link111 onMouseOver="ShowTip(event, 'tt110', 'link111')" onMouseOut="HideTip('tt110')">accept_tr</a></td><td class=SDescription>This function marks the acceptance of a transaction, <i>tr</i>, by this component. </td></tr> |
| <!-- index=84 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.do_accept_tr" id=link112 onMouseOver="ShowTip(event, 'tt111', 'link112')" onMouseOut="HideTip('tt111')">do_accept_tr</a></td><td class=SDescription>The <a href="#uvm_component.accept_tr" class=LMethod id=link113 onMouseOver="ShowTip(event, 'tt110', 'link113')" onMouseOut="HideTip('tt110')">accept_tr</a> method calls this function to accommodate any user-defined post-accept action. </td></tr> |
| <!-- index=85 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.begin_tr" id=link114 onMouseOver="ShowTip(event, 'tt112', 'link114')" onMouseOut="HideTip('tt112')">begin_tr</a></td><td class=SDescription>This function marks the start of a transaction, <i>tr</i>, by this component. </td></tr> |
| <!-- index=86 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.begin_child_tr" id=link115 onMouseOver="ShowTip(event, 'tt113', 'link115')" onMouseOut="HideTip('tt113')">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=87 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.do_begin_tr" id=link116 onMouseOver="ShowTip(event, 'tt114', 'link116')" onMouseOut="HideTip('tt114')">do_begin_tr</a></td><td class=SDescription>The <a href="#uvm_component.begin_tr" class=LMethod id=link117 onMouseOver="ShowTip(event, 'tt112', 'link117')" onMouseOut="HideTip('tt112')">begin_tr</a> and <a href="#uvm_component.begin_child_tr" class=LMethod id=link118 onMouseOver="ShowTip(event, 'tt113', 'link118')" onMouseOut="HideTip('tt113')">begin_child_tr</a> methods call this function to accommodate any user-defined post-begin action. </td></tr> |
| <!-- index=88 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.end_tr" id=link119 onMouseOver="ShowTip(event, 'tt115', 'link119')" onMouseOut="HideTip('tt115')">end_tr</a></td><td class=SDescription>This function marks the end of a transaction, <i>tr</i>, by this component. </td></tr> |
| <!-- index=89 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.do_end_tr" id=link120 onMouseOver="ShowTip(event, 'tt116', 'link120')" onMouseOut="HideTip('tt116')">do_end_tr</a></td><td class=SDescription>The <a href="#uvm_component.end_tr" class=LMethod id=link121 onMouseOver="ShowTip(event, 'tt115', 'link121')" onMouseOut="HideTip('tt115')">end_tr</a> method calls this function to accommodate any user-defined post-end action. </td></tr> |
| <!-- index=90 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component.record_error_tr" id=link122 onMouseOver="ShowTip(event, 'tt117', 'link122')" onMouseOut="HideTip('tt117')">record_error_tr</a></td><td class=SDescription>This function marks an error transaction by a component. </td></tr> |
| <!-- index=91 --> |
| |
| <tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.record_event_tr" id=link123 onMouseOver="ShowTip(event, 'tt118', 'link123')" onMouseOut="HideTip('tt118')">record_event_tr</a></td><td class=SDescription>This function marks an event transaction by a component.</td></tr> |
| <!-- index=92 --> |
| |
| <tr class="SVariable SIndent2"><td class=SEntry><a href="#uvm_component.print_enabled" id=link124 onMouseOver="ShowTip(event, 'tt119', 'link124')" onMouseOut="HideTip('tt119')">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=93 --> |
| |
| <tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#uvm_component.recorder" id=link125 onMouseOver="ShowTip(event, 'tt120', 'link125')" onMouseOut="HideTip('tt120')">recorder</a></td><td class=SDescription>Specifies the <a href="uvm_recorder-svh.html#uvm_recorder" class=LClass id=link126 onMouseOver="ShowTip(event, 'tt121', 'link126')" onMouseOut="HideTip('tt121')">uvm_recorder</a> object to use for <a href="#uvm_component.begin_tr" class=LMethod id=link127 onMouseOver="ShowTip(event, 'tt112', 'link127')" onMouseOut="HideTip('tt112')">begin_tr</a> and other methods in the <a href="#uvm_component.Recording_Interface" class=LGroup id=link128 onMouseOver="ShowTip(event, 'tt122', 'link128')" onMouseOut="HideTip('tt122')">Recording Interface</a>. </td></tr> |
| <!-- index=94 --> |
| |
| <tr class="SGeneric SIndent2"><td class=SEntry><a href="#uvm_component.the_following_is_VERY_expensive.Needs_refactoring.Should" >the following is VERY expensive. Needs refactoring. Should</a></td><td class=SDescription>get config only for the specific field names in ‘field_array’. </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 nowrap>function new (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap>parent</td> |
| <td class=PAfterParameters nowrap>)</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 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 null.</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 null, 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 null 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=link134 onMouseOver="ShowTip(event, 'tt125', 'link134')" onMouseOut="HideTip('tt125')">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 nowrap>function void get_children(</td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap>children[$]</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>function uvm_component get_child (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>function int get_next_child (</td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>function int get_first_child (</td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PAfterParameters nowrap>)</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=link135 onMouseOver="ShowTip(event, 'tt126', 'link135')" onMouseOut="HideTip('tt126')">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 nowrap>function int has_child (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>function uvm_component lookup (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PAfterParameters nowrap>)</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 null. 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=link136 onMouseOver="ShowTip(event, 'tt16', 'link136')" onMouseOut="HideTip('tt16')">build_phase</a>.</p><p>All processes associated with a task-based phase are killed when the phase ends. See <uvm_phase::execute> 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 nowrap>virtual function void build_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link137 onMouseOver="ShowTip(event, 'tt17', 'link137')" 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 registed in the component by calling <a href="#uvm_component.apply_config_settings" class=LMethod id=link138 onMouseOver="ShowTip(event, 'tt75', 'link138')" onMouseOut="HideTip('tt75')">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 nowrap>virtual function void connect_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link139 onMouseOver="ShowTip(event, 'tt19', 'link139')" 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 nowrap>virtual function void end_of_elaboration_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link140 onMouseOver="ShowTip(event, 'tt21', 'link140')" 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 nowrap>virtual function void start_of_simulation_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link141 onMouseOver="ShowTip(event, 'tt23', 'link141')" 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 nowrap>virtual task run_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link142 onMouseOver="ShowTip(event, 'tt25', 'link142')" 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. Thn the phase will automatically ends 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 nowrap>virtual task pre_reset_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link143 onMouseOver="ShowTip(event, 'tt27', 'link143')" 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 nowrap>virtual task reset_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link144 onMouseOver="ShowTip(event, 'tt29', 'link144')" 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 nowrap>virtual task post_reset_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link145 onMouseOver="ShowTip(event, 'tt31', 'link145')" 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 nowrap>virtual task pre_configure_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link146 onMouseOver="ShowTip(event, 'tt33', 'link146')" 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 nowrap>virtual task configure_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link147 onMouseOver="ShowTip(event, 'tt35', 'link147')" 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 nowrap>virtual task post_configure_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link148 onMouseOver="ShowTip(event, 'tt37', 'link148')" 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 nowrap>virtual task pre_main_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link149 onMouseOver="ShowTip(event, 'tt39', 'link149')" 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 nowrap>virtual task main_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link150 onMouseOver="ShowTip(event, 'tt41', 'link150')" 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 nowrap>virtual task post_main_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link151 onMouseOver="ShowTip(event, 'tt43', 'link151')" 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 nowrap>virtual task pre_shutdown_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link152 onMouseOver="ShowTip(event, 'tt45', 'link152')" 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 nowrap>virtual task shutdown_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link153 onMouseOver="ShowTip(event, 'tt47', 'link153')" 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 nowrap>virtual task post_shutdown_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link154 onMouseOver="ShowTip(event, 'tt49', 'link154')" 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 nowrap>virtual function void extract_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link155 onMouseOver="ShowTip(event, 'tt51', 'link155')" 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 nowrap>virtual function void check_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link156 onMouseOver="ShowTip(event, 'tt53', 'link156')" 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 nowrap>virtual function void report_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link157 onMouseOver="ShowTip(event, 'tt55', 'link157')" 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 nowrap>virtual function void final_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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=link158 onMouseOver="ShowTip(event, 'tt57', 'link158')" 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 nowrap>virtual function void phase_started (</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual function void phase_ready_to_end (</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual function void phase_ended (</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>function void set_domain(</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> |
| <td class=PAfterParameters nowrap>)</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=link159 onMouseOver="ShowTip(event, 'tt63', 'link159')" onMouseOut="HideTip('tt63')">define_domain</a> method, which derived components can override to augment or replace the domain definition of ita 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 nowrap>virtual protected function void define_domain(</td> <td class=PType nowrap>uvm_domain </td> |
| <td class=PParameter nowrap>domain</td> |
| <td class=PAfterParameters nowrap>)</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=link160 onMouseOver="ShowTip(event, 'tt61', 'link160')" 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 <defined_domain>. 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=link161 onMouseOver="ShowTip(event, 'tt61', 'link161')" onMouseOut="HideTip('tt61')">set_domain</a> with the default <i>uvm</i> domain (see <uvm_domain::get_uvm_domain>) 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, 'tt127', 'link164')" onMouseOut="HideTip('tt127')">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 nowrap>function void set_phase_imp(</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> |
| <td class=PAfterParameters nowrap>)</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.set_config_int" href="../../src/base/uvm_component.svh">set_config_int</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 nowrap>virtual function void set_config_int (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>inst_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>field_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_bitstream_t </td> |
| <td class=PParameter nowrap>value</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=47 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_config_string" href="../../src/base/uvm_component.svh">set_config_string</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 nowrap>virtual function void set_config_string (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>inst_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>field_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>value</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=48 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.set_config_object" href="../../src/base/uvm_component.svh">set_config_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 nowrap>virtual function void set_config_object (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>inst_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>field_name,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>value,</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>clone</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>1</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>Calling set_config_* causes configuration settings to be created and placed in a table internal to this component. There are similar global methods that store settings in a global table. Each setting stores the supplied <i>inst_name</i>, <i>field_name</i>, and <i>value</i> for later use by descendent components during their construction. (The global table applies to all components and takes precedence over the component tables.)</p><p>When a descendant component calls a get_config_* method, the <i>inst_name</i> and <i>field_name</i> provided in the get call are matched against all the configuration settings stored in the global table and then in each component in the parent hierarchy, top-down. Upon the first match, the value stored in the configuration setting is returned. Thus, precedence is global, following by the top-level component, and so on down to the descendent component’s parent.</p><p>These methods work in conjunction with the get_config_* methods to provide a configuration setting mechanism for integral, string, and uvm_object-based types. Settings of other types, such as virtual interfaces and arrays, can be indirectly supported by defining a class that contains them.</p><p>Both <i>inst_name</i> and <i>field_name</i> may contain wildcards.</p><ul><li>For set_config_int, <i>value</i> is an integral value that can be anything from 1 bit to 4096 bits.</li><li>For set_config_string, <i>value</i> is a string.</li><li>For set_config_object, <i>value</i> must be an <a href="uvm_object-svh.html#uvm_object" class=LClass id=link168 onMouseOver="ShowTip(event, 'tt2', 'link168')" onMouseOut="HideTip('tt2')">uvm_object</a>-based object or null. Its clone argument specifies whether the object should be cloned. If set, the object is cloned both going into the table (during the set) and coming out of the table (during the get), so that multiple components matched to the same setting (by way of wildcards) do not end up sharing the same object.</li></ul><p>See <a href="#uvm_component.get_config_int" class=LMethod id=link169 onMouseOver="ShowTip(event, 'tt71', 'link169')" onMouseOut="HideTip('tt71')">get_config_int</a>, <a href="#uvm_component.get_config_string" class=LMethod id=link170 onMouseOver="ShowTip(event, 'tt72', 'link170')" onMouseOut="HideTip('tt72')">get_config_string</a>, and <a href="#uvm_component.get_config_object" class=LMethod id=link171 onMouseOver="ShowTip(event, 'tt73', 'link171')" onMouseOut="HideTip('tt73')">get_config_object</a> for information on getting the configurations set by these methods.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=49 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.get_config_int" href="../../src/base/uvm_component.svh">get_config_int</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 nowrap>virtual function bit get_config_int (</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>field_name,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>inout </td> |
| <td class=PType nowrap>uvm_bitstream_t </td> |
| <td class=PParameter nowrap>value</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=50 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.get_config_string" href="../../src/base/uvm_component.svh">get_config_string</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 nowrap>virtual function bit get_config_string (</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>field_name,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>inout </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>value</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=51 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component.get_config_object" href="../../src/base/uvm_component.svh">get_config_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 nowrap>virtual function bit get_config_object (</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>field_name,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>inout </td> |
| <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>value,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>clone</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>1</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>These methods retrieve configuration settings made by previous calls to their set_config_* counterparts. As the methods’ names suggest, there is direct support for integral types, strings, and objects. Settings of other types can be indirectly supported by defining an object to contain them.</p><p>Configuration settings are stored in a global table and in each component instance. With each call to a get_config_* method, a top-down search is made for a setting that matches this component’s full name and the given <i>field_name</i>. For example, say this component’s full instance name is top.u1.u2. First, the global configuration table is searched. If that fails, then it searches the configuration table in component ‘top’, followed by top.u1.</p><p>The first instance/field that matches causes <i>value</i> to be written with the value of the configuration setting and 1 is returned. If no match is found, then <i>value</i> is unchanged and the 0 returned.</p><p>Calling the get_config_object method requires special handling. Because <i>value</i> is an output of type <a href="uvm_object-svh.html#uvm_object" class=LClass id=link172 onMouseOver="ShowTip(event, 'tt2', 'link172')" onMouseOut="HideTip('tt2')">uvm_object</a>, you must provide an uvm_object handle to assign to (<u>not</u> a derived class handle). After the call, you can then $cast to the actual type.</p><p>For example, the following code illustrates how a component designer might call upon the configuration mechanism to assign its <i>data</i> object property, whose type myobj_t derives from uvm_object.</p><blockquote><pre>class mycomponent extends uvm_component; |
| |
| local myobj_t data; |
| |
| function void build_phase(uvm_phase phase); |
| uvm_object tmp; |
| super.build_phase(phase); |
| if(get_config_object("data", tmp)) |
| if (!$cast(data, tmp)) |
| $display("error! config setting for 'data' not of type myobj_t"); |
| endfunction |
| ...</pre></blockquote><p>The above example overrides the <a href="#uvm_component.build_phase" class=LMethod id=link173 onMouseOver="ShowTip(event, 'tt16', 'link173')" onMouseOut="HideTip('tt16')">build_phase</a> method. If you want to retain any base functionality, you must call super.build_phase(uvm_phase phase).</p><p>The <i>clone</i> bit clones the data inbound. The get_config_object method can also clone the data outbound.</p><p>See Members for information on setting the global configuration table.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=52 --> |
| <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 nowrap>function void check_config_usage (</td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>recurse</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>1</td> |
| <td class=PAfterParameters nowrap>)</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=53 --> |
| <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 nowrap>virtual function void apply_config_settings (</td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>verbose</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PAfterParameters nowrap>)</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=link174 onMouseOver="ShowTip(event, 'tt16', 'link174')" 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=link175 onMouseOver="ShowTip(event, 'tt79', 'link175')" onMouseOut="HideTip('tt79')">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=54 --> |
| <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 nowrap>function void print_config_settings (</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> |
| <td class=PAfterParameters nowrap>)</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 set_config_*. 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-null, 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=55 --> |
| <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 nowrap>function void print_config(</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> |
| <td class=PAfterParameters nowrap>)</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 set_config_* 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=56 --> |
| <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 nowrap>function void print_config_with_audit(</td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>recurse</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| <td class=PAfterParameters nowrap>)</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=57 --> |
| <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 get_config_* to print info about matching configuration settings as they are being applied.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=58 --> |
| <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=link176 onMouseOver="ShowTip(event, 'tt80', 'link176')" onMouseOut="HideTip('tt80')">uvm_objection</a> mechanism.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=59 --> |
| <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 nowrap>virtual function void raised (</td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap>objection,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>source_obj,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>description,</td> |
| </tr><tr><td></td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>count</td> |
| <td class=PAfterParameters nowrap>)</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 specfied <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=60 --> |
| <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 nowrap>virtual function void dropped (</td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap>objection,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>source_obj,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>description,</td> |
| </tr><tr><td></td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>count</td> |
| <td class=PAfterParameters nowrap>)</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 specfied <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 the <i>source_obj</i>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=61 --> |
| <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 nowrap>virtual task all_dropped (</td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap>objection,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>source_obj,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>description,</td> |
| </tr><tr><td></td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>count</td> |
| <td class=PAfterParameters nowrap>)</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 the <i>source_obj</i>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=62 --> |
| <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=link177 onMouseOver="ShowTip(event, 'tt84', 'link177')" onMouseOut="HideTip('tt84')">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=link178 onMouseOver="ShowTip(event, 'tt128', 'link178')" onMouseOut="HideTip('tt128')">uvm_component_registry #(T,Tname)</a> and <a href="uvm_registry-svh.html#uvm_object_registry#(T,Tname)" class=LClass id=link179 onMouseOver="ShowTip(event, 'tt129', 'link179')" onMouseOut="HideTip('tt129')">uvm_object_registry #(T,Tname)</a>). The wrapper also provides functions for setting type and instance overrides.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=63 --> |
| <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 nowrap>function uvm_component create_component (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>requested_type_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PAfterParameters nowrap>)</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=link180 onMouseOver="ShowTip(event, 'tt86', 'link180')" onMouseOut="HideTip('tt86')">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=link181 onMouseOver="ShowTip(event, 'tt93', 'link181')" onMouseOut="HideTip('tt93')">set_type_override</a> and <a href="#uvm_component.set_inst_override" class=LMethod id=link182 onMouseOver="ShowTip(event, 'tt95', 'link182')" onMouseOut="HideTip('tt95')">set_inst_override</a>. See also <a href="uvm_factory-svh.html#uvm_factory" class=LClass id=link183 onMouseOver="ShowTip(event, 'tt84', 'link183')" onMouseOut="HideTip('tt84')">uvm_factory</a> for details on factory operation.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=64 --> |
| <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 nowrap>function uvm_object create_object (</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> |
| <td class=PAfterParameters nowrap>)</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=link184 onMouseOver="ShowTip(event, 'tt88', 'link184')" onMouseOut="HideTip('tt88')">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=link185 onMouseOver="ShowTip(event, 'tt84', 'link185')" onMouseOut="HideTip('tt84')">uvm_factory</a> for details on factory operation.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=65 --> |
| <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=link186 onMouseOver="ShowTip(event, 'tt90', 'link186')" onMouseOut="HideTip('tt90')">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=link187 onMouseOver="ShowTip(event, 'tt130', 'link187')" onMouseOut="HideTip('tt130')">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, 'tt131', 'link188')" onMouseOut="HideTip('tt131')">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=link189 onMouseOver="ShowTip(event, 'tt91', 'link189')" onMouseOut="HideTip('tt91')">set_inst_override_by_type</a> for information on usage.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=66 --> |
| <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 nowrap>function void set_inst_override_by_type(</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>relative_inst_path,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap>original_type,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap>override_type</td> |
| <td class=PAfterParameters nowrap>)</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=link190 onMouseOver="ShowTip(event, 'tt92', 'link190')" onMouseOut="HideTip('tt92')">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({get_full_name(),".", |
| relative_inst_path}, |
| original_type, |
| override_type);</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=link191 onMouseOver="ShowTip(event, 'tt130', 'link191')" onMouseOut="HideTip('tt130')">uvm_factory::create_object_by_type</a> or <a href="uvm_factory-svh.html#uvm_factory.create_component_by_type" class=LMethod id=link192 onMouseOver="ShowTip(event, 'tt131', 'link192')" onMouseOut="HideTip('tt131')">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=link193 onMouseOver="ShowTip(event, 'tt129', 'link193')" onMouseOut="HideTip('tt129')">uvm_object_registry #(T,Tname)</a> or <a href="uvm_registry-svh.html#uvm_component_registry#(T,Tname)" class=LClass id=link194 onMouseOver="ShowTip(event, 'tt128', 'link194')" onMouseOut="HideTip('tt128')">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=67 --> |
| <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 nowrap>static function void set_type_override(</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> |
| <td class=PAfterParameters nowrap>)</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=link195 onMouseOver="ShowTip(event, 'tt94', 'link195')" onMouseOut="HideTip('tt94')">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=68 --> |
| <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 nowrap>function void set_inst_override(</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>relative_inst_path,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>original_type_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>override_type_name</td> |
| <td class=PAfterParameters nowrap>)</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=link196 onMouseOver="ShowTip(event, 'tt96', 'link196')" onMouseOut="HideTip('tt96')">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({get_full_name(),".", |
| relative_inst_path}, |
| original_type_name, |
| override_type_name);</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=69 --> |
| <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 nowrap>function void print_override_info(</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> |
| <td class=PAfterParameters nowrap>)</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=70 --> |
| <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=link197 onMouseOver="ShowTip(event, 'tt3', 'link197')" 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=71 --> |
| <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 nowrap>function void set_report_id_verbosity_hier (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>id,</td> |
| </tr><tr><td></td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>verbosity</td> |
| <td class=PAfterParameters nowrap>)</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_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 nowrap>function void set_report_severity_id_verbosity_hier(</td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap>severity,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>id,</td> |
| </tr><tr><td></td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>verbosity</td> |
| <td class=PAfterParameters nowrap>)</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. An verbosity associated with a particular severity-id pair takes precedence over an verbosity associated with id, which takes precedence over an an 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=link198 onMouseOver="ShowTip(event, 'tt123', 'link198')" onMouseOut="HideTip('tt123')">uvm_report_handler</a>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=73 --> |
| <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 nowrap>function void set_report_severity_action_hier (</td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap>severity,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_action </td> |
| <td class=PParameter nowrap>action</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=74 --> |
| <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 nowrap>function void set_report_id_action_hier (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>id,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_action </td> |
| <td class=PParameter nowrap>action</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=75 --> |
| <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 nowrap>function void set_report_severity_id_action_hier(</td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap>severity,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>id,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_action </td> |
| <td class=PParameter nowrap>action</td> |
| <td class=PAfterParameters nowrap>)</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 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=link199 onMouseOver="ShowTip(event, 'tt123', 'link199')" onMouseOut="HideTip('tt123')">uvm_report_handler</a>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=76 --> |
| <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 nowrap>function void set_report_default_file_hier (</td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap>file</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=77 --> |
| <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 nowrap>function void set_report_severity_file_hier (</td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap>severity,</td> |
| </tr><tr><td></td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap>file</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=78 --> |
| <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 nowrap>function void set_report_id_file_hier (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>id,</td> |
| </tr><tr><td></td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap>file</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=79 --> |
| <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 nowrap>function void set_report_severity_id_file_hier(</td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap>severity,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>id,</td> |
| </tr><tr><td></td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap>file</td> |
| <td class=PAfterParameters nowrap>)</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=link200 onMouseOver="ShowTip(event, 'tt123', 'link200')" onMouseOut="HideTip('tt123')">uvm_report_handler</a>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=80 --> |
| <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 nowrap>function void set_report_verbosity_level_hier (</td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>verbosity</td> |
| <td class=PAfterParameters nowrap>)</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=link201 onMouseOver="ShowTip(event, 'tt123', 'link201')" onMouseOut="HideTip('tt123')">uvm_report_handler</a> for a list of predefined message verbosity levels and their meaning.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=81 --> |
| <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=link202 onMouseOver="ShowTip(event, 'tt109', 'link202')" onMouseOut="HideTip('tt109')">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=82 --> |
| <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=83 --> |
| <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 nowrap>function void accept_tr (</td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr,</td> |
| <td class=PDefaultValuePrefix> </td> |
| </tr><tr><td></td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>accept_time</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PAfterParameters nowrap>)</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=link203 onMouseOver="ShowTip(event, 'tt132', 'link203')" onMouseOut="HideTip('tt132')">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=link204 onMouseOver="ShowTip(event, 'tt111', 'link204')" onMouseOut="HideTip('tt111')">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=84 --> |
| <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 nowrap>virtual protected function void do_accept_tr (</td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>The <a href="#uvm_component.accept_tr" class=LMethod id=link205 onMouseOver="ShowTip(event, 'tt110', 'link205')" onMouseOut="HideTip('tt110')">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=85 --> |
| <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 nowrap>function integer begin_tr (</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> |
| <td class=PAfterParameters nowrap>)</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=link206 onMouseOver="ShowTip(event, 'tt133', 'link206')" onMouseOut="HideTip('tt133')">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=link207 onMouseOver="ShowTip(event, 'tt114', 'link207')" onMouseOut="HideTip('tt114')">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=86 --> |
| <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 nowrap>function integer begin_child_tr (</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> |
| <td class=PAfterParameters nowrap>)</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=link208 onMouseOver="ShowTip(event, 'tt112', 'link208')" onMouseOut="HideTip('tt112')">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=87 --> |
| <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 nowrap>virtual protected function void do_begin_tr (</td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>stream_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>integer </td> |
| <td class=PParameter nowrap>tr_handle</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>The <a href="#uvm_component.begin_tr" class=LMethod id=link209 onMouseOver="ShowTip(event, 'tt112', 'link209')" onMouseOut="HideTip('tt112')">begin_tr</a> and <a href="#uvm_component.begin_child_tr" class=LMethod id=link210 onMouseOver="ShowTip(event, 'tt113', 'link210')" onMouseOut="HideTip('tt113')">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=88 --> |
| <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 nowrap>function void end_tr (</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> |
| <td class=PAfterParameters nowrap>)</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=link211 onMouseOver="ShowTip(event, 'tt134', 'link211')" onMouseOut="HideTip('tt134')">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=link212 onMouseOver="ShowTip(event, 'tt116', 'link212')" onMouseOut="HideTip('tt116')">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=89 --> |
| <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 nowrap>virtual protected function void do_end_tr (</td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr,</td> |
| </tr><tr><td></td> <td class=PType nowrap>integer </td> |
| <td class=PParameter nowrap>tr_handle</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>The <a href="#uvm_component.end_tr" class=LMethod id=link213 onMouseOver="ShowTip(event, 'tt115', 'link213')" onMouseOut="HideTip('tt115')">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=90 --> |
| <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 nowrap>function integer record_error_tr (</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> |
| <td class=PAfterParameters nowrap>)</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=link214 onMouseOver="ShowTip(event, 'tt135', 'link214')" onMouseOut="HideTip('tt135')">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=91 --> |
| <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 nowrap>function integer record_event_tr (</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> |
| <td class=PAfterParameters nowrap>)</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=92 --> |
| <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=93 --> |
| <div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="uvm_component.recorder" href="../../src/base/uvm_component.svh">recorder</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>uvm_recorder recorder |
| </td></tr></table></blockquote><div class=CBody><p>Specifies the <a href="uvm_recorder-svh.html#uvm_recorder" class=LClass id=link215 onMouseOver="ShowTip(event, 'tt121', 'link215')" onMouseOut="HideTip('tt121')">uvm_recorder</a> object to use for <a href="#uvm_component.begin_tr" class=LMethod id=link216 onMouseOver="ShowTip(event, 'tt112', 'link216')" onMouseOut="HideTip('tt112')">begin_tr</a> and other methods in the <a href="#uvm_component.Recording_Interface" class=LGroup id=link217 onMouseOver="ShowTip(event, 'tt122', 'link217')" onMouseOut="HideTip('tt122')">Recording Interface</a>. Default is <a href="uvm_object_globals-svh.html#uvm_default_recorder" class=LVariable id=link218 onMouseOver="ShowTip(event, 'tt136', 'link218')" onMouseOut="HideTip('tt136')">uvm_default_recorder</a>.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=94 --> |
| <div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="uvm_component.the_following_is_VERY_expensive.Needs_refactoring.Should" href="../../src/base/uvm_component.svh">the following is VERY expensive. Needs refactoring. Should</a></h3><div class=CBody><p>get config only for the specific field names in ‘field_array’. That’s because the resource pool is organized first by field name. Can further optimize by encoding the value for each ‘field_array’ entry to indicate string, uvm_bitstream_t, or object. That way, we call ‘get’ for specific fields of specific types rather than the search-and-cast approach here.</p></div></div></div> |
| |
| </div><!--Content--> |
| |
| |
| |
| <!--START_ND_TOOLTIPS--> |
| <div class=CToolTip id="tt1"><div class=CGeneric>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 nowrap>function new (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap>parent</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Creates a new component with the given leaf instance <i>name</i> and handle to 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 null 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 nowrap>function void get_children(</td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>uvm_component </td> |
| <td class=PParameter nowrap>children[$]</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>function uvm_component get_child (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>function int get_next_child (</td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>function int get_first_child (</td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>function int has_child (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>function uvm_component lookup (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual function void build_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual function void connect_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual function void end_of_elaboration_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual function void start_of_simulation_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual task run_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual task pre_reset_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual task reset_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual task post_reset_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual task pre_configure_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual task configure_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual task post_configure_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual task pre_main_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual task main_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual task post_main_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual task pre_shutdown_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual task shutdown_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual task post_shutdown_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual function void extract_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 verficiation 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 nowrap>virtual function void check_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual function void report_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual function void final_phase(</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual function void phase_started (</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual function void phase_ready_to_end (</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual function void phase_ended (</td> <td class=PType nowrap>uvm_phase </td> |
| <td class=PParameter nowrap>phase</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>function void set_domain(</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> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual protected function void define_domain(</td> <td class=PType nowrap>uvm_domain </td> |
| <td class=PParameter nowrap>domain</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>function void set_phase_imp(</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> |
| <td class=PAfterParameters nowrap>)</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 nowrap>virtual function void set_config_int (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>inst_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>field_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_bitstream_t </td> |
| <td class=PParameter nowrap>value</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </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 nowrap>virtual function void set_config_string (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>inst_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>field_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>value</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </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 nowrap>virtual function void set_config_object (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>inst_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>field_name,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>value,</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>clone</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>1</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Calling set_config_* causes configuration settings to be created and placed in a table internal to this component. </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 nowrap>virtual function bit get_config_int (</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>field_name,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>inout </td> |
| <td class=PType nowrap>uvm_bitstream_t </td> |
| <td class=PParameter nowrap>value</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </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 nowrap>virtual function bit get_config_string (</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>field_name,</td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>inout </td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>value</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </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 nowrap>virtual function bit get_config_object (</td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>field_name,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>inout </td> |
| <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>value,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td></td> <td class=PTypePrefix nowrap>input </td> |
| <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>clone</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>1</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| These methods retrieve configuration settings made by previous calls to their set_config_* counterparts. </div></div><div class=CToolTip id="tt74"><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 nowrap>function void check_config_usage (</td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>recurse</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>1</td> |
| <td class=PAfterParameters nowrap>)</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="tt75"><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 nowrap>virtual function void apply_config_settings (</td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>verbose</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Searches for all config settings matching this component’s instance path. </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 nowrap>function void print_config_settings (</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> |
| <td class=PAfterParameters nowrap>)</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 set_config_*. </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 nowrap>function void print_config(</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> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| Print_config_settings prints all configuration information for this component, as set by previous calls to set_config_* and exports to the resources pool. </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 nowrap>function void print_config_with_audit(</td> <td class=PType nowrap>bit </td> |
| <td class=PParameter nowrap>recurse</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%> 0</td> |
| <td class=PAfterParameters nowrap>)</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="tt79"><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 get_config_* to print info about matching configuration settings as they are being applied.</div></div><div class=CToolTip id="tt80"><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="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 nowrap>virtual function void raised (</td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap>objection,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>source_obj,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>description,</td> |
| </tr><tr><td></td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>count</td> |
| <td class=PAfterParameters nowrap>)</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 specfied <i>objection</i>. </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 nowrap>virtual function void dropped (</td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap>objection,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>source_obj,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>description,</td> |
| </tr><tr><td></td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>count</td> |
| <td class=PAfterParameters nowrap>)</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 specfied <i>objection</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 nowrap>virtual task all_dropped (</td> <td class=PType nowrap>uvm_objection </td> |
| <td class=PParameter nowrap>objection,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_object </td> |
| <td class=PParameter nowrap>source_obj,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>description,</td> |
| </tr><tr><td></td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>count</td> |
| <td class=PAfterParameters nowrap>)</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="tt84"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>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="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 nowrap>function uvm_component create_component (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>requested_type_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>name</td> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>function uvm_component create_component_by_name (</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> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>function uvm_object create_object (</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> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>function uvm_object create_object_by_name (</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> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </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>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="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 nowrap>function void set_type_override_by_type (</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> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </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 nowrap>function void set_inst_override_by_type(</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>relative_inst_path,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap>original_type,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap>override_type</td> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>function void set_inst_override_by_type (</td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap>original_type,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_object_wrapper </td> |
| <td class=PParameter nowrap>override_type,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>full_inst_path</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </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 nowrap>static function void set_type_override(</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> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>function void set_type_override_by_name (</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> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>function void set_inst_override(</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>relative_inst_path,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>original_type_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>override_type_name</td> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>function void set_inst_override_by_name (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>original_type_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>override_type_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>full_inst_path</td> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>function void print_override_info(</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> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>function void set_report_id_verbosity_hier (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>id,</td> |
| </tr><tr><td></td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>verbosity</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>function void set_report_severity_id_verbosity_hier(</td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap>severity,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>id,</td> |
| </tr><tr><td></td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>verbosity</td> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>function void set_report_severity_action_hier (</td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap>severity,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_action </td> |
| <td class=PParameter nowrap>action</td> |
| <td class=PAfterParameters nowrap>)</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 nowrap>function void set_report_id_action_hier (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>id,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_action </td> |
| <td class=PParameter nowrap>action</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </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 nowrap>function void set_report_severity_id_action_hier(</td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap>severity,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>id,</td> |
| </tr><tr><td></td> <td class=PType nowrap>uvm_action </td> |
| <td class=PParameter nowrap>action</td> |
| <td class=PAfterParameters nowrap>)</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="tt103"><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 nowrap>function void set_report_default_file_hier (</td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap>file</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </div></div><div class=CToolTip id="tt104"><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 nowrap>function void set_report_severity_file_hier (</td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap>severity,</td> |
| </tr><tr><td></td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap>file</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </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 nowrap>function void set_report_id_file_hier (</td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>id,</td> |
| </tr><tr><td></td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap>file</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </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 nowrap>function void set_report_severity_id_file_hier(</td> <td class=PType nowrap>uvm_severity </td> |
| <td class=PParameter nowrap>severity,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>id,</td> |
| </tr><tr><td></td> <td class=PType nowrap>UVM_FILE </td> |
| <td class=PParameter nowrap>file</td> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>function void set_report_verbosity_level_hier (</td> <td class=PType nowrap>int </td> |
| <td class=PParameter nowrap>verbosity</td> |
| <td class=PAfterParameters nowrap>)</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="tt108"><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="tt109"><div class=CConstant>Terminates the simulation immediately.</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 nowrap>function void accept_tr (</td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr,</td> |
| <td class=PDefaultValuePrefix> </td> |
| </tr><tr><td></td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>accept_time</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>virtual protected function void do_accept_tr (</td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr</td> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>function integer begin_tr (</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> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>function integer begin_child_tr (</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> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>virtual protected function void do_begin_tr (</td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr,</td> |
| </tr><tr><td></td> <td class=PType nowrap>string </td> |
| <td class=PParameter nowrap>stream_name,</td> |
| </tr><tr><td></td> <td class=PType nowrap>integer </td> |
| <td class=PParameter nowrap>tr_handle</td> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>function void end_tr (</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> |
| <td class=PAfterParameters nowrap>)</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="tt116"><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 nowrap>virtual protected function void do_end_tr (</td> <td class=PType nowrap>uvm_transaction </td> |
| <td class=PParameter nowrap>tr,</td> |
| </tr><tr><td></td> <td class=PType nowrap>integer </td> |
| <td class=PParameter nowrap>tr_handle</td> |
| <td class=PAfterParameters nowrap>)</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="tt117"><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 nowrap>function integer record_error_tr (</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> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| This function marks an error transaction by a component. </div></div><div class=CToolTip id="tt118"><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 nowrap>function integer record_event_tr (</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> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| This function marks an event transaction by a component.</div></div><div class=CToolTip id="tt119"><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="tt120"><div class=CVariable> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>uvm_recorder recorder |
| </td></tr></table></blockquote>Specifies the uvm_recorder object to use for begin_tr and other methods in the Recording Interface. </div></div><div class=CToolTip id="tt121"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_recorder extends uvm_object |
| </td></tr></table></blockquote>The uvm_recorder class provides a policy object for recording uvm_objects. </div></div><div class=CToolTip id="tt122"><div class=CGroup>These methods comprise the component-based transaction recording interface. </div></div><div class=CToolTip id="tt123"><div class=CClass>The uvm_report_handler is the class to which most methods in uvm_report_object delegate. </div></div><div class=CToolTip id="tt124"><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="tt125"><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="tt126"><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 nowrap>function void print (</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> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| The print 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="tt127"><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="tt128"><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="tt129"><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 an uvm_object of type <i>T</i> and type name <i>Tname</i>, a string. </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 nowrap>function uvm_object create_object_by_type (</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> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </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 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="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 nowrap>function void accept_tr (</td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>accept_time</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PAfterParameters nowrap>)</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="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 nowrap>function integer begin_tr (</td> <td class=PType nowrap>time </td> |
| <td class=PParameter nowrap>begin_time</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PAfterParameters nowrap>)</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="tt134"><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 nowrap>function void end_tr (</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> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| This function indicates that the transaction execution has ended. </div></div><div class=CToolTip id="tt135"><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 nowrap>virtual function void do_record (</td> <td class=PType nowrap>uvm_recorder </td> |
| <td class=PParameter nowrap>recorder</td> |
| <td class=PAfterParameters nowrap>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| The do_record method is the user-definable hook called by the record method. </div></div><div class=CToolTip id="tt136"><div class=CVariable> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>uvm_recorder uvm_default_recorder = new() |
| </td></tr></table></blockquote>The default recording policy. </div></div><!--END_ND_TOOLTIPS--> |
| |
| <script language=JavaScript><!-- |
| if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html> |