blob: 5553d7f0c15f1065a0a1f6ba2d5e6d764eb1120b [file] [log] [blame]
<html><head><title>Factory Component and Object Wrappers</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
<!-- Generated by Natural Docs, version Development Release 01-12-2008 (1.35 base) -->
<!-- http://www.naturaldocs.org -->
<!-- saved from url=(0026)http://www.naturaldocs.org -->
<!--TOP - START OF CONTENT-->
<div id=Content>
<!--CONTENT index=0 -->
<div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Factory_Component_and_Object_Wrappers" href="../../src/base/uvm_registry.svh">Factory Component and Object Wrappers</a></h1><div class=CBody>
<!--START_ND_SUMMARY index=0-->
<div class=Summary><div class=STitle>Contents</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable>
<!-- index=0 -->
<tr class="SMain"><td class=SEntry><a href="#Factory_Component_and_Object_Wrappers" >Factory Component and Object Wrappers</a></td><td class=SDescription></td></tr>
<!-- index=1 -->
<tr class="SGeneric"><td class=SEntry><a href="#Intro" >Intro</a></td><td class=SDescription>This section defines the proxy component and object classes used by the factory. </td></tr>
<!-- index=2 -->
<tr class="SSMethod SMarked"><td class=SEntry><a href="#uvm_component_registry#(T,Tname)" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">uvm_component_registry #(T,Tname)</a></td><td class=SDescription>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. </td></tr>
<!-- index=10 -->
<tr class="SSMethod"><td class=SEntry><a href="#uvm_object_registry#(T,Tname)" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">uvm_object_registry #(T,Tname)</a></td><td class=SDescription>The uvm_object_registry serves as a lightweight proxy for a <a href="uvm_object-svh.html#uvm_object" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">uvm_object</a> of type <i>T</i> and type name <i>Tname</i>, a string. </td></tr></table></div></div><!--END_ND_SUMMARY-->
</div></div></div>
<!--CONTENT index=1 -->
<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Intro" href="../../src/base/uvm_registry.svh">Intro</a></h3><div class=CBody><p>This section defines the proxy component and object classes used by the factory.&nbsp; To avoid the overhead of creating an instance of every component and object that get registered, the factory holds lightweight wrappers, or proxies.&nbsp; When a request for a new object is made, the factory calls upon the proxy to create the object it represents.</p></div></div></div>
<!--CONTENT index=2 -->
<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_component_registry#(T,Tname)" href="../../src/base/uvm_registry.svh">uvm_component_registry #(T,Tname)</a></h2><div class=CBody><p>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.&nbsp; The proxy enables efficient registration with the <a href="uvm_factory-svh.html#uvm_factory" class=LClass id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">uvm_factory</a>.&nbsp; Without it, registration would require an instance of the component itself.</p><p>See <a href="../overviews/tlm1-txt.html#Usage" class=LGroup id=link13 onMouseOver="ShowTip(event, 'tt12', 'link13')" onMouseOut="HideTip('tt12')">Usage</a> section below for information on using uvm_component_registry.</p>
<!--START_ND_SUMMARY index=2-->
<div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable>
<!-- index=2 -->
<tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_component_registry#(T,Tname)" id=link5 onMouseOver="ShowTip(event, 'tt1', 'link5')" onMouseOut="HideTip('tt1')">uvm_component_registry #(T,Tname)</a></td></tr>
<tr class=SMain><td colspan=2 class=SWideDescription>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. </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_factory-svh.html#uvm_object_wrapper" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">uvm_object_wrapper</a></div></div></td></tr>
<tr><td><div class=CHCurrent><div class=CHEntry>uvm_component_registry#(T,Tname)</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><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>class uvm_component_registry #(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>type&nbsp;</td>
<td class=PParameter nowrap>T</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>uvm_component,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>Tname</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&lt;unknown&gt;&quot;</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>) extends uvm_object_wrapper</td></tr>
</table></td></tr>
</table></blockquote>
</td></tr>
<!-- index=3 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_component_registry#(T,Tname).Methods" >Methods</a></td><td class=SDescription></td></tr>
<!-- index=4 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component_registry#(T,Tname).create_component" id=link6 onMouseOver="ShowTip(event, 'tt5', 'link6')" onMouseOut="HideTip('tt5')">create_component</a></td><td class=SDescription>Creates a component of type T having the provided <i>name</i> and <i>parent</i>. </td></tr>
<!-- index=5 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component_registry#(T,Tname).get_type_name" id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">get_type_name</a></td><td class=SDescription>Returns the value given by the string parameter, <i>Tname</i>. </td></tr>
<!-- index=6 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component_registry#(T,Tname).get" id=link8 onMouseOver="ShowTip(event, 'tt7', 'link8')" onMouseOut="HideTip('tt7')">get</a></td><td class=SDescription>Returns the singleton instance of this type. </td></tr>
<!-- index=7 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component_registry#(T,Tname).create" id=link9 onMouseOver="ShowTip(event, 'tt8', 'link9')" onMouseOut="HideTip('tt8')">create</a></td><td class=SDescription>Returns an instance of the component type, <i>T</i>, represented by this proxy, subject to any factory overrides based on the context provided by the <i>parent</i>&rsquo;s full name. </td></tr>
<!-- index=8 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component_registry#(T,Tname).set_type_override" id=link10 onMouseOver="ShowTip(event, 'tt9', 'link10')" onMouseOut="HideTip('tt9')">set_type_override</a></td><td class=SDescription>Configures the factory to create an object of the type represented by <i>override_type</i> whenever a request is made to create an object of the type, <i>T</i>, represented by this proxy, provided no instance override applies. </td></tr>
<!-- index=9 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#uvm_component_registry#(T,Tname).set_inst_override" id=link11 onMouseOver="ShowTip(event, 'tt10', 'link11')" onMouseOut="HideTip('tt10')">set_inst_override</a></td><td class=SDescription>Configures the factory to create a component of the type represented by <i>override_type</i> whenever a request is made to create an object of the type, <i>T</i>, represented by this proxy, with matching instance paths. </td></tr></table></div></div><!--END_ND_SUMMARY-->
</div></div></div>
<!--CONTENT index=3 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_component_registry#(T,Tname).Methods" href="../../src/base/uvm_registry.svh">Methods</a></h3></div></div>
<!--CONTENT index=4 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component_registry#(T,Tname).create_component" href="../../src/base/uvm_registry.svh">create_component</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=3>virtual function uvm_component create_component (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>name,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_component&nbsp;</td>
<td class=PParameter nowrap width=100%>parent</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Creates a component of type T having the provided <i>name</i> and <i>parent</i>.&nbsp; This is an override of the method in <a href="uvm_factory-svh.html#uvm_object_wrapper" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt4', 'link14')" onMouseOut="HideTip('tt4')">uvm_object_wrapper</a>.&nbsp; It is called by the factory after determining the type of object to create.&nbsp; You should not call this method directly.&nbsp; Call <a href="#uvm_component_registry#(T,Tname).create" class=LMethod id=link15 onMouseOver="ShowTip(event, 'tt8', 'link15')" onMouseOut="HideTip('tt8')">create</a> instead.</p></div></div></div>
<!--CONTENT index=5 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component_registry#(T,Tname).get_type_name" href="../../src/base/uvm_registry.svh">get_type_name</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function string get_type_name()
</td></tr></table></blockquote><div class=CBody><p>Returns the value given by the string parameter, <i>Tname</i>.&nbsp; This method overrides the method in <a href="uvm_factory-svh.html#uvm_object_wrapper" class=LClass id=link16 onMouseOver="ShowTip(event, 'tt4', 'link16')" onMouseOut="HideTip('tt4')">uvm_object_wrapper</a>.</p></div></div></div>
<!--CONTENT index=6 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component_registry#(T,Tname).get" href="../../src/base/uvm_registry.svh">get</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>static function this_type get()
</td></tr></table></blockquote><div class=CBody><p>Returns the singleton instance of this type.&nbsp; Type-based factory operation depends on there being a single proxy instance for each registered type.</p></div></div></div>
<!--CONTENT index=7 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component_registry#(T,Tname).create" href="../../src/base/uvm_registry.svh">create</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 T create(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>name,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_component&nbsp;</td>
<td class=PParameter nowrap>parent,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>contxt</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&quot;</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Returns an instance of the component type, <i>T</i>, represented by this proxy, subject to any factory overrides based on the context provided by the <i>parent</i>&rsquo;s full name.&nbsp; The <i>contxt</i> argument, if supplied, supersedes the <i>parent</i>&rsquo;s context.&nbsp; The new instance will have the given leaf <i>name</i> and <i>parent</i>.</p></div></div></div>
<!--CONTENT index=8 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component_registry#(T,Tname).set_type_override" href="../../src/base/uvm_registry.svh">set_type_override</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>static function void set_type_override (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object_wrapper&nbsp;</td>
<td class=PParameter nowrap>override_type,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>bit&nbsp;</td>
<td class=PParameter nowrap>replace</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>1</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Configures the factory to create an object of the type represented by <i>override_type</i> whenever a request is made to create an object of the type, <i>T</i>, represented by this proxy, provided no instance override applies.&nbsp; The original type, <i>T</i>, is typically a super class of the override type.</p></div></div></div>
<!--CONTENT index=9 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component_registry#(T,Tname).set_inst_override" href="../../src/base/uvm_registry.svh">set_inst_override</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>static function void set_inst_override(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object_wrapper&nbsp;</td>
<td class=PParameter nowrap>override_type,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>inst_path,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_component&nbsp;</td>
<td class=PParameter nowrap>parent</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>null</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Configures the factory to create a component of the type represented by <i>override_type</i> whenever a request is made to create an object of the type, <i>T</i>, represented by this proxy, with matching instance paths.&nbsp; The original type, <i>T</i>, is typically a super class of the override type.</p><p>If <i>parent</i> is not specified, <i>inst_path</i> is interpreted as an absolute instance path, which enables instance overrides to be set from outside component classes.&nbsp; If <i>parent</i> is specified, <i>inst_path</i> is interpreted as being relative to the <i>parent</i>&rsquo;s hierarchical instance path, i.e.&nbsp; <i>{parent.get_full_name(),&rdquo;.&rdquo;,inst_path}</i> is the instance path that is registered with the override.&nbsp; The <i>inst_path</i> may contain wildcards for matching against multiple contexts.</p></div></div></div>
<!--CONTENT index=10 -->
<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_object_registry#(T,Tname)" href="../../src/base/uvm_registry.svh">uvm_object_registry #(T,Tname)</a></h2><div class=CBody><p>The uvm_object_registry serves as a lightweight proxy for a <a href="uvm_object-svh.html#uvm_object" class=LClass id=link27 onMouseOver="ShowTip(event, 'tt3', 'link27')" onMouseOut="HideTip('tt3')">uvm_object</a> of type <i>T</i> and type name <i>Tname</i>, a string.&nbsp; The proxy enables efficient registration with the <a href="uvm_factory-svh.html#uvm_factory" class=LClass id=link28 onMouseOver="ShowTip(event, 'tt11', 'link28')" onMouseOut="HideTip('tt11')">uvm_factory</a>.&nbsp; Without it, registration would require an instance of the object itself.</p><p>See <a href="#uvm_object_registry#(T,Tname).Usage" class=LGroup id=link29 onMouseOver="ShowTip(event, 'tt19', 'link29')" onMouseOut="HideTip('tt19')">Usage</a> section below for information on using uvm_component_registry.</p>
<!--START_ND_SUMMARY index=10-->
<div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable>
<!-- index=10 -->
<tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_object_registry#(T,Tname)" id=link18 onMouseOver="ShowTip(event, 'tt2', 'link18')" onMouseOut="HideTip('tt2')">uvm_object_registry #(T,Tname)</a></td></tr>
<tr class=SMain><td colspan=2 class=SWideDescription>The uvm_object_registry serves as a lightweight proxy for a <a href="uvm_object-svh.html#uvm_object" class=LClass id=link19 onMouseOver="ShowTip(event, 'tt3', 'link19')" onMouseOut="HideTip('tt3')">uvm_object</a> of type <i>T</i> and type name <i>Tname</i>, a string. </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_factory-svh.html#uvm_object_wrapper" class=LClass id=link17 onMouseOver="ShowTip(event, 'tt4', 'link17')" onMouseOut="HideTip('tt4')">uvm_object_wrapper</a></div></div></td></tr>
<tr><td><div class=CHCurrent><div class=CHEntry>uvm_object_registry#(T,Tname)</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><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>class uvm_object_registry #(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>type&nbsp;</td>
<td class=PParameter nowrap>T</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>uvm_object,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>Tname</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&lt;unknown&gt;&quot;</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>) extends uvm_object_wrapper</td></tr>
</table></td></tr>
</table></blockquote>
</td></tr>
<!-- index=11 -->
<tr class="SMethod SIndent1 SMarked"><td class=SEntry><a href="#uvm_object_registry#(T,Tname).create_object" id=link20 onMouseOver="ShowTip(event, 'tt13', 'link20')" onMouseOut="HideTip('tt13')">create_object</a></td><td class=SDescription>Creates an object of type <i>T</i> and returns it as a handle to a <a href="uvm_object-svh.html#uvm_object" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt3', 'link21')" onMouseOut="HideTip('tt3')">uvm_object</a>. </td></tr>
<!-- index=12 -->
<tr class="SMethod SIndent1"><td class=SEntry><a href="#uvm_object_registry#(T,Tname).get_type_name" id=link22 onMouseOver="ShowTip(event, 'tt14', 'link22')" onMouseOut="HideTip('tt14')">get_type_name</a></td><td class=SDescription>Returns the value given by the string parameter, <i>Tname</i>. </td></tr>
<!-- index=13 -->
<tr class="SMethod SIndent1 SMarked"><td class=SEntry><a href="#uvm_object_registry#(T,Tname).get" id=link23 onMouseOver="ShowTip(event, 'tt15', 'link23')" onMouseOut="HideTip('tt15')">get</a></td><td class=SDescription>Returns the singleton instance of this type. </td></tr>
<!-- index=14 -->
<tr class="SMethod SIndent1"><td class=SEntry><a href="#uvm_object_registry#(T,Tname).create" id=link24 onMouseOver="ShowTip(event, 'tt16', 'link24')" onMouseOut="HideTip('tt16')">create</a></td><td class=SDescription>Returns an instance of the object type, <i>T</i>, represented by this proxy, subject to any factory overrides based on the context provided by the <i>parent</i>&rsquo;s full name. </td></tr>
<!-- index=15 -->
<tr class="SMethod SIndent1 SMarked"><td class=SEntry><a href="#uvm_object_registry#(T,Tname).set_type_override" id=link25 onMouseOver="ShowTip(event, 'tt17', 'link25')" onMouseOut="HideTip('tt17')">set_type_override</a></td><td class=SDescription>Configures the factory to create an object of the type represented by <i>override_type</i> whenever a request is made to create an object of the type represented by this proxy, provided no instance override applies. </td></tr>
<!-- index=16 -->
<tr class="SMethod SIndent1"><td class=SEntry><a href="#uvm_object_registry#(T,Tname).set_inst_override" id=link26 onMouseOver="ShowTip(event, 'tt18', 'link26')" onMouseOut="HideTip('tt18')">set_inst_override</a></td><td class=SDescription>Configures the factory to create an object of the type represented by <i>override_type</i> whenever a request is made to create an object of the type represented by this proxy, with matching instance paths. </td></tr>
<!-- index=17 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_object_registry#(T,Tname).Usage" >Usage</a></td><td class=SDescription>This section describes usage for the uvm_*_registry classes.</td></tr></table></div></div><!--END_ND_SUMMARY-->
</div></div></div>
<!--CONTENT index=11 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_object_registry#(T,Tname).create_object" href="../../src/base/uvm_registry.svh">create_object</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>virtual function uvm_object create_object(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>name</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&quot;</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Creates an object of type <i>T</i> and returns it as a handle to a <a href="uvm_object-svh.html#uvm_object" class=LClass id=link30 onMouseOver="ShowTip(event, 'tt3', 'link30')" onMouseOut="HideTip('tt3')">uvm_object</a>.&nbsp; This is an override of the method in <a href="uvm_factory-svh.html#uvm_object_wrapper" class=LClass id=link31 onMouseOver="ShowTip(event, 'tt4', 'link31')" onMouseOut="HideTip('tt4')">uvm_object_wrapper</a>.&nbsp; It is called by the factory after determining the type of object to create.&nbsp; You should not call this method directly.&nbsp; Call <a href="#uvm_object_registry#(T,Tname).create" class=LMethod id=link32 onMouseOver="ShowTip(event, 'tt16', 'link32')" onMouseOut="HideTip('tt16')">create</a> instead.</p></div></div></div>
<!--CONTENT index=12 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_object_registry#(T,Tname).get_type_name" href="../../src/base/uvm_registry.svh">get_type_name</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function string get_type_name()
</td></tr></table></blockquote><div class=CBody><p>Returns the value given by the string parameter, <i>Tname</i>.&nbsp; This method overrides the method in <a href="uvm_factory-svh.html#uvm_object_wrapper" class=LClass id=link33 onMouseOver="ShowTip(event, 'tt4', 'link33')" onMouseOut="HideTip('tt4')">uvm_object_wrapper</a>.</p></div></div></div>
<!--CONTENT index=13 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_object_registry#(T,Tname).get" href="../../src/base/uvm_registry.svh">get</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>static function this_type get()
</td></tr></table></blockquote><div class=CBody><p>Returns the singleton instance of this type.&nbsp; Type-based factory operation depends on there being a single proxy instance for each registered type.</p></div></div></div>
<!--CONTENT index=14 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_object_registry#(T,Tname).create" href="../../src/base/uvm_registry.svh">create</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 T create (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>name</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&quot;,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_component&nbsp;</td>
<td class=PParameter nowrap>parent</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>null,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>contxt</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&quot;</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Returns an instance of the object type, <i>T</i>, represented by this proxy, subject to any factory overrides based on the context provided by the <i>parent</i>&rsquo;s full name.&nbsp; The <i>contxt</i> argument, if supplied, supersedes the <i>parent</i>&rsquo;s context.&nbsp; The new instance will have the given leaf <i>name</i>, if provided.</p></div></div></div>
<!--CONTENT index=15 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_object_registry#(T,Tname).set_type_override" href="../../src/base/uvm_registry.svh">set_type_override</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>static function void set_type_override (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object_wrapper&nbsp;</td>
<td class=PParameter nowrap>override_type,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>bit&nbsp;</td>
<td class=PParameter nowrap>replace</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>1</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Configures the factory to create an object of the type represented by <i>override_type</i> whenever a request is made to create an object of the type represented by this proxy, provided no instance override applies.&nbsp; The original type, <i>T</i>, is typically a super class of the override type.</p></div></div></div>
<!--CONTENT index=16 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_object_registry#(T,Tname).set_inst_override" href="../../src/base/uvm_registry.svh">set_inst_override</a></h3>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>static function void set_inst_override(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object_wrapper&nbsp;</td>
<td class=PParameter nowrap>override_type,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>inst_path,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_component&nbsp;</td>
<td class=PParameter nowrap>parent</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>null</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
<div class=CBody><p>Configures the factory to create an object of the type represented by <i>override_type</i> whenever a request is made to create an object of the type represented by this proxy, with matching instance paths.&nbsp; The original type, <i>T</i>, is typically a super class of the override type.</p><p>If <i>parent</i> is not specified, <i>inst_path</i> is interpreted as an absolute instance path, which enables instance overrides to be set from outside component classes.&nbsp; If <i>parent</i> is specified, <i>inst_path</i> is interpreted as being relative to the <i>parent</i>&rsquo;s hierarchical instance path, i.e.&nbsp; <i>{parent.get_full_name(),&rdquo;.&rdquo;,inst_path}</i> is the instance path that is registered with the override.&nbsp; The <i>inst_path</i> may contain wildcards for matching against multiple contexts.</p></div></div></div>
<!--CONTENT index=17 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_object_registry#(T,Tname).Usage" href="../../src/base/uvm_registry.svh">Usage</a></h3><div class=CBody><p>This section describes usage for the uvm_*_registry classes.</p><p>The wrapper classes are used to register lightweight proxies of objects and components.</p><p>To register a particular component type, you need only typedef a specialization of its proxy class, which is typically done inside the class.</p><p>For example, to register a UVM component of type <i>mycomp</i></p><blockquote><pre>class mycomp extends uvm_component;
typedef uvm_component_registry #(mycomp,&quot;mycomp&quot;) type_id;
endclass</pre></blockquote><p>However, because of differences between simulators, it is necessary to use a macro to ensure vendor interoperability with factory registration.&nbsp; To register a UVM component of type <i>mycomp</i> in a vendor-independent way, you would write instead:</p><blockquote><pre>class mycomp extends uvm_component;
`uvm_component_utils(mycomp);
...
endclass</pre></blockquote><p>The <a href="../macros/uvm_object_defines-svh.html#`uvm_component_utils" class=LMacro >`uvm_component_utils</a> macro is for non-parameterized classes.&nbsp; In this example, the typedef underlying the macro specifies the <i>Tname</i> parameter as &ldquo;mycomp&rdquo;, and <i>mycomp</i>&rsquo;s get_type_name() is defined to return the same.&nbsp; With <i>Tname</i> defined, you can use the factory&rsquo;s name-based methods to set overrides and create objects and components of non-parameterized types.</p><p>For parameterized types, the type name changes with each specialization, so you cannot specify a <i>Tname</i> inside a parameterized class and get the behavior you want; the same type name string would be registered for all specializations of the class!&nbsp; (The factory would produce warnings for each specialization beyond the first.)&nbsp; To avoid the warnings and simulator interoperability issues with parameterized classes, you must register parameterized classes with a different macro.</p><p>For example, to register a UVM component of type driver #(T), you would write:</p><blockquote><pre>class driver #(type T=int) extends uvm_component;
`uvm_component_param_utils(driver #(T));
...
endclass</pre></blockquote><p>The <a href="../macros/uvm_object_defines-svh.html#`uvm_component_param_utils" class=LMacro >`uvm_component_param_utils</a> and <a href="../macros/uvm_object_defines-svh.html#`uvm_object_param_utils" class=LMacro >`uvm_object_param_utils</a> macros are used to register parameterized classes with the factory.&nbsp; Unlike the non-param versions, these macros do not specify the <i>Tname</i> parameter in the underlying uvm_component_registry typedef, and they do not define the get_type_name method for the user class.&nbsp; Consequently, you will not be able to use the factory&rsquo;s name-based methods for parameterized classes.</p><p>The primary purpose for adding the factory&rsquo;s type-based methods was to accommodate registration of parameterized types and eliminate the many sources of errors associated with string-based factory usage.&nbsp; Thus, use of name-based lookup in <a href="uvm_factory-svh.html#uvm_factory" class=LClass id=link34 onMouseOver="ShowTip(event, 'tt11', 'link34')" onMouseOut="HideTip('tt11')">uvm_factory</a> is no longer recommended.</p></div></div></div>
</div><!--Content-->
<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CClass>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>class uvm_component_registry #(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>type&nbsp;</td>
<td class=PParameter nowrap>T</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>uvm_component,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>Tname</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&lt;unknown&gt;&quot;</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="tt2"><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>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>type&nbsp;</td>
<td class=PParameter nowrap>T</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>uvm_object,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>Tname</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&lt;unknown&gt;&quot;</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>) extends uvm_object_wrapper</td></tr>
</table></td></tr>
</table></blockquote>
The uvm_object_registry serves as a lightweight proxy for a uvm_object of type <i>T</i> and type name <i>Tname</i>, a string. </div></div><div class=CToolTip id="tt3"><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="tt4"><div class=CClass>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_object_wrapper
</td></tr></table></blockquote>The uvm_object_wrapper provides an abstract interface for creating object and component proxies. </div></div><div class=CToolTip id="tt5"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=3>virtual function uvm_component create_component (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap width=100%>name,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_component&nbsp;</td>
<td class=PParameter nowrap width=100%>parent</td>
</tr>
<tr>
<td class=PAfterParameters colspan=3>)</td></tr>
</table></td></tr>
</table></blockquote>
Creates a component of type T having the provided <i>name</i> and <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 string get_type_name()
</td></tr></table></blockquote>Returns the value given by the string parameter, <i>Tname</i>. </div></div><div class=CToolTip id="tt7"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>static function this_type get()
</td></tr></table></blockquote>Returns the singleton instance of this type. </div></div><div class=CToolTip id="tt8"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>static function T create(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>name,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_component&nbsp;</td>
<td class=PParameter nowrap>parent,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>contxt</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&quot;</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
Returns an instance of the component type, <i>T</i>, represented by this proxy, subject to any factory overrides based on the context provided by the <i>parent</i>&rsquo;s full name. </div></div><div class=CToolTip id="tt9"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>static function void set_type_override (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object_wrapper&nbsp;</td>
<td class=PParameter nowrap>override_type,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>bit&nbsp;</td>
<td class=PParameter nowrap>replace</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>1</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
Configures the factory to create an object of the type represented by <i>override_type</i> whenever a request is made to create an object of the type, <i>T</i>, represented by this proxy, provided no instance override applies. </div></div><div class=CToolTip id="tt10"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>static function void set_inst_override(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object_wrapper&nbsp;</td>
<td class=PParameter nowrap>override_type,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>inst_path,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_component&nbsp;</td>
<td class=PParameter nowrap>parent</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>null</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
Configures the factory to create a component of the type represented by <i>override_type</i> whenever a request is made to create an object of the type, <i>T</i>, represented by this proxy, with matching instance paths. </div></div><div class=CToolTip id="tt11"><div class=CClass>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_factory
</td></tr></table></blockquote>As the name implies, uvm_factory is used to manufacture (create) UVM objects and components. </div></div><div class=CToolTip id="tt12"><div class=CGroup>This example illustrates basic TLM connectivity using the blocking put interface.</div></div><div class=CToolTip id="tt13"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>virtual function uvm_object create_object(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>name</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&quot;</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
Creates an object of type <i>T</i> and returns it as a handle to a uvm_object. </div></div><div class=CToolTip id="tt14"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function string get_type_name()
</td></tr></table></blockquote>Returns the value given by the string parameter, <i>Tname</i>. </div></div><div class=CToolTip id="tt15"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>static function this_type get()
</td></tr></table></blockquote>Returns the singleton instance of this type. </div></div><div class=CToolTip id="tt16"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>static function T create (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>name</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&quot;,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_component&nbsp;</td>
<td class=PParameter nowrap>parent</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>null,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>contxt</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>&quot;&quot;</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
Returns an instance of the object type, <i>T</i>, represented by this proxy, subject to any factory overrides based on the context provided by the <i>parent</i>&rsquo;s full name. </div></div><div class=CToolTip id="tt17"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>static function void set_type_override (</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object_wrapper&nbsp;</td>
<td class=PParameter nowrap>override_type,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>bit&nbsp;</td>
<td class=PParameter nowrap>replace</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>1</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
Configures the factory to create an object of the type represented by <i>override_type</i> whenever a request is made to create an object of the type represented by this proxy, provided no instance override applies. </div></div><div class=CToolTip id="tt18"><div class=CMethod>
<blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype>
<tr><td><table border=0 cellspacing=0 cellpadding=0><tr>
<td class=PBeforeParameters colspan=5>static function void set_inst_override(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_object_wrapper&nbsp;</td>
<td class=PParameter nowrap>override_type,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>string&nbsp;</td>
<td class=PParameter nowrap>inst_path,</td>
<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
<td class=PDefaultValue width=100%></td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>uvm_component&nbsp;</td>
<td class=PParameter nowrap>parent</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%>null</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>)</td></tr>
</table></td></tr>
</table></blockquote>
Configures the factory to create an object of the type represented by <i>override_type</i> whenever a request is made to create an object of the type represented by this proxy, with matching instance paths. </div></div><div class=CToolTip id="tt19"><div class=CGroup>This section describes usage for the uvm_*_registry classes.</div></div><!--END_ND_TOOLTIPS-->
<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>