| <html><head><title>uvm_visitor #(NODE)</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_visitor#(NODE)" href="../../src/base/uvm_traversal.svh">uvm_visitor #(NODE)</a></h1><div class=CBody><p>The uvm_visitor class provides an abstract base class for a visitor. The visitor visits instances of type NODE. For general information regarding the visitor pattern see <a href="http://en.wikipedia.org/wiki/Visitor_pattern" class=LURL target=_top>http://en.wikipedia.org/wiki/Visitor_pattern</a></p> |
| |
| <!--START_ND_SUMMARY index=0--> |
| <div class=Summary><div class=STitle>Contents</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=0 --> |
| |
| <tr class="SSMethod"><td class=SEntry><a href="#uvm_visitor#(NODE)" >uvm_visitor #(NODE)</a></td><td class=SDescription>The uvm_visitor class provides an abstract base class for a visitor. </td></tr> |
| <!-- index=5 --> |
| |
| <tr class="SSMethod SMarked"><td class=SEntry><a href="#uvm_structure_proxy#(STRUCTURE)" >uvm_structure_proxy #(STRUCTURE)</a></td><td class=SDescription>The uvm_structure_proxy is a wrapper and provides a set of elements of the STRUCTURE to the caller on demand. </td></tr> |
| <!-- index=8 --> |
| |
| <tr class="SSMethod"><td class=SEntry><a href="#uvm_visitor_adapter#(STRUCTURE,uvm_visitor#(STRUCTURE))" >uvm_visitor_adapter #(STRUCTURE,uvm_visitor#(STRUCTURE))</a></td><td class=SDescription>The visitor adaptor traverses all nodes of the STRUCTURE and will invoke visitor.visit() on every node.</td></tr> |
| <!-- index=11 --> |
| |
| <tr class="SSMethod SMarked"><td class=SEntry><a href="#uvm_top_down_visitor_adapter" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">uvm_top_down_visitor_adapter</a></td><td class=SDescription>This uvm_top_down_visitor_adapter traverses the STRUCTURE <i>s</i> (and will invoke the visitor) in a hierarchical fashion. </td></tr> |
| <!-- index=12 --> |
| |
| <tr class="SSMethod"><td class=SEntry><a href="#uvm_bottom_up_visitor_adapter" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">uvm_bottom_up_visitor_adapter</a></td><td class=SDescription>This uvm_bottom_up_visitor_adapter traverses the STRUCTURE <i>s</i> (and will invoke the visitor) in a hierarchical fashion. </td></tr> |
| <!-- index=13 --> |
| |
| <tr class="SSMethod SMarked"><td class=SEntry><a href="#uvm_by_level_visitor_adapter" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">uvm_by_level_visitor_adapter</a></td><td class=SDescription>This uvm_by_level_visitor_adapter traverses the STRUCTURE <i>s</i> (and will invoke the visitor) in a hierarchical fashion. </td></tr> |
| <!-- index=14 --> |
| |
| <tr class="SSMethod"><td class=SEntry><a href="#uvm_component_proxy" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">uvm_component_proxy</a></td><td class=SDescription>The class is providing the proxy to extract the direct subcomponents of <i>s</i></td></tr> |
| <!-- index=15 --> |
| |
| <tr class="SSMethod SMarked"><td class=SEntry><a href="#uvm_component_name_check_visitor" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">uvm_component_name_check_visitor</a></td><td class=SDescription>This specialized visitor analyze the naming of the current component. </td></tr></table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=1 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_visitor#(NODE).Methods" href="../../src/base/uvm_traversal.svh">Methods</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=2 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_visitor#(NODE).begin_v" href="../../src/base/uvm_traversal.svh">begin_v</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function void begin_v() |
| </td></tr></table></blockquote><div class=CBody><p>This method will be invoked by the visitor before the first NODE is visited</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=3 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_visitor#(NODE).end_v" href="../../src/base/uvm_traversal.svh">end_v</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function void end_v() |
| </td></tr></table></blockquote><div class=CBody><p>This method will be invoked by the visitor after the last NODE is visited</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=4 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_visitor#(NODE).visit" href="../../src/base/uvm_traversal.svh">visit</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>pure virtual function void visit(</td> </tr><tr><td> </td> <td class=PType nowrap>NODE </td> |
| <td class=PParameter nowrap width=100%>node</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=3>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>This method will be invoked by the visitor for every visited <i>node</i> of the provided structure. The user is expected to provide the own functionality in this function.</p><blockquote><pre>class count_nodes_visitor#(type T=uvm_component) extends uvm_visitor#(T); |
| function new (string name = ""); |
| super.new(name); |
| endfunction |
| local int cnt; |
| virtual function void begin_v(); cnt = 0; endfunction |
| virtual function void end_v(); `uvm_info("TEXT",$sformatf("%d elements",cnt),UVM_NONE) endfunction |
| virtual function void visit(T node); cnt++; endfunction |
| endclass</pre></blockquote></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=5 --> |
| <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_structure_proxy#(STRUCTURE)" href="../../src/base/uvm_traversal.svh">uvm_structure_proxy #(STRUCTURE)</a></h2><div class=CBody><p>The uvm_structure_proxy is a wrapper and provides a set of elements of the STRUCTURE to the caller on demand. This is to decouple the retrieval of the STRUCTUREs subelements from the actual function being invoked on STRUCTURE</p> |
| |
| <!--START_ND_SUMMARY index=5--> |
| <div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=5 --> |
| |
| <tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_structure_proxy#(STRUCTURE)" >uvm_structure_proxy #(STRUCTURE)</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>The uvm_structure_proxy is a wrapper and provides a set of elements of the STRUCTURE to the caller on demand. </td></tr> |
| <!-- index=6 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_structure_proxy#(STRUCTURE).Methods" >Methods</a></td><td class=SDescription></td></tr> |
| <!-- index=7 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_structure_proxy#(STRUCTURE).get_immediate_children" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">get_immediate_children</a></td><td class=SDescription>This method will be return in <i>children</i> a set of the direct subelements of <i>s</i></td></tr></table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=6 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_structure_proxy#(STRUCTURE).Methods" href="../../src/base/uvm_traversal.svh">Methods</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=7 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_structure_proxy#(STRUCTURE).get_immediate_children" href="../../src/base/uvm_traversal.svh">get_immediate_children</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=4>pure virtual function void get_immediate_children(</td> </tr><tr><td> </td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>STRUCTURE </td> |
| <td class=PParameter nowrap width=100%>s,</td> |
| </tr><tr><td> </td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>STRUCTURE </td> |
| <td class=PParameter nowrap width=100%>children[$]</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=4>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| <div class=CBody><p>This method will be return in <i>children</i> a set of the direct subelements of <i>s</i></p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=8 --> |
| <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_visitor_adapter#(STRUCTURE,uvm_visitor#(STRUCTURE))" href="../../src/base/uvm_traversal.svh">uvm_visitor_adapter #(STRUCTURE,uvm_visitor#(STRUCTURE))</a></h2><div class=CBody><p>The visitor adaptor traverses all nodes of the STRUCTURE and will invoke visitor.visit() on every node.</p> |
| |
| <!--START_ND_SUMMARY index=8--> |
| <div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=8 --> |
| |
| <tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_visitor_adapter#(STRUCTURE,uvm_visitor#(STRUCTURE))" >uvm_visitor_adapter #(STRUCTURE,uvm_visitor#(STRUCTURE))</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>The visitor adaptor traverses all nodes of the STRUCTURE and will invoke visitor.visit() on every node.</td></tr> |
| <!-- index=9 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_visitor_adapter#(STRUCTURE,uvm_visitor#(STRUCTURE)).Methods" >Methods</a></td><td class=SDescription></td></tr> |
| <!-- index=10 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_visitor_adapter#(STRUCTURE,uvm_visitor#(STRUCTURE)).accept" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">accept()</a></td><td class=SDescription>Calling this function will traverse through <i>s</i> (and every subnode of <i>s</i>). </td></tr></table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=9 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_visitor_adapter#(STRUCTURE,uvm_visitor#(STRUCTURE)).Methods" href="../../src/base/uvm_traversal.svh">Methods</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=10 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_visitor_adapter#(STRUCTURE,uvm_visitor#(STRUCTURE)).accept" href="../../src/base/uvm_traversal.svh">accept()</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>pure virtual function void accept(</td> </tr><tr><td> </td> <td class=PType nowrap>STRUCTURE </td> |
| <td class=PParameter nowrap>s,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>VISITOR </td> |
| <td class=PParameter nowrap>v,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_structure_proxy#(STRUCTURE) </td> |
| <td class=PParameter nowrap>p,</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>invoke_begin_end</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>Calling this function will traverse through <i>s</i> (and every subnode of <i>s</i>). For each node found <i>v</i>.visit(node) will be invoked. The children of <i>s</i> are recursively determined by invoking <i>p</i>.get_immediate_children().~invoke_begin_end~ determines whether the visitors begin/end functions should be invoked prior to traversal.</p></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=11 --> |
| <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_top_down_visitor_adapter" href="../../src/base/uvm_traversal.svh">uvm_top_down_visitor_adapter</a></h2><div class=CBody><p>This uvm_top_down_visitor_adapter traverses the STRUCTURE <i>s</i> (and will invoke the visitor) in a hierarchical fashion. During traversal <i>s</i> will be visited before all subnodes of <i>s</i> will be visited.</p> |
| |
| <!--START_ND_SUMMARY index=11--> |
| <div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=11 --> |
| |
| <tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_top_down_visitor_adapter" id=link8 onMouseOver="ShowTip(event, 'tt1', 'link8')" onMouseOut="HideTip('tt1')">uvm_top_down_visitor_adapter</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>This uvm_top_down_visitor_adapter traverses the STRUCTURE <i>s</i> (and will invoke the visitor) in a hierarchical fashion. </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>uvm_visitor_adapter#(STRUCTURE,VISITOR)</div></div></td></tr> |
| <tr><td><div class=CHCurrent><div class=CHEntry>uvm_top_down_visitor_adapter</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_top_down_visitor_adapter#(</td> </tr><tr><td> </td> <td class=PType nowrap>type </td> |
| <td class=PParameter nowrap>STRUCTURE</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>uvm_component,</td> |
| </tr><tr><td> </td> <td class=PType nowrap> </td> |
| <td class=PParameter nowrap>VISITOR</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>uvm_visitor#(STRUCTURE)</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>) extends uvm_visitor_adapter#(STRUCTURE,VISITOR)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </td></tr> |
| </table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=12 --> |
| <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_bottom_up_visitor_adapter" href="../../src/base/uvm_traversal.svh">uvm_bottom_up_visitor_adapter</a></h2><div class=CBody><p>This uvm_bottom_up_visitor_adapter traverses the STRUCTURE <i>s</i> (and will invoke the visitor) in a hierarchical fashion. During traversal all children of node <i>s</i> will be visited <i>s</i> will be visited.</p> |
| |
| <!--START_ND_SUMMARY index=12--> |
| <div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=12 --> |
| |
| <tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_bottom_up_visitor_adapter" id=link9 onMouseOver="ShowTip(event, 'tt2', 'link9')" onMouseOut="HideTip('tt2')">uvm_bottom_up_visitor_adapter</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>This uvm_bottom_up_visitor_adapter traverses the STRUCTURE <i>s</i> (and will invoke the visitor) in a hierarchical fashion. </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>uvm_visitor_adapter#(STRUCTURE,VISITOR)</div></div></td></tr> |
| <tr><td><div class=CHCurrent><div class=CHEntry>uvm_bottom_up_visitor_adapter</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_bottom_up_visitor_adapter#(</td> </tr><tr><td> </td> <td class=PType nowrap>type </td> |
| <td class=PParameter nowrap>STRUCTURE</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>uvm_component,</td> |
| </tr><tr><td> </td> <td class=PType nowrap> </td> |
| <td class=PParameter nowrap>VISITOR</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>uvm_visitor#(STRUCTURE)</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>) extends uvm_visitor_adapter#(STRUCTURE,VISITOR)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </td></tr> |
| </table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=13 --> |
| <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_by_level_visitor_adapter" href="../../src/base/uvm_traversal.svh">uvm_by_level_visitor_adapter</a></h2><div class=CBody><p>This uvm_by_level_visitor_adapter traverses the STRUCTURE <i>s</i> (and will invoke the visitor) in a hierarchical fashion. During traversal will visit all direct children of <i>s</i> before all grand-children are visited.</p> |
| |
| <!--START_ND_SUMMARY index=13--> |
| <div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=13 --> |
| |
| <tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_by_level_visitor_adapter" id=link10 onMouseOver="ShowTip(event, 'tt3', 'link10')" onMouseOut="HideTip('tt3')">uvm_by_level_visitor_adapter</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>This uvm_by_level_visitor_adapter traverses the STRUCTURE <i>s</i> (and will invoke the visitor) in a hierarchical fashion. </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>uvm_visitor_adapter#(STRUCTURE,VISITOR)</div></div></td></tr> |
| <tr><td><div class=CHCurrent><div class=CHEntry>uvm_by_level_visitor_adapter</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_by_level_visitor_adapter#(</td> </tr><tr><td> </td> <td class=PType nowrap>type </td> |
| <td class=PParameter nowrap>STRUCTURE</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>uvm_component,</td> |
| </tr><tr><td> </td> <td class=PType nowrap> </td> |
| <td class=PParameter nowrap>VISITOR</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>uvm_visitor#(STRUCTURE)</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>) extends uvm_visitor_adapter#(STRUCTURE,VISITOR)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </td></tr> |
| </table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=14 --> |
| <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_component_proxy" href="../../src/base/uvm_traversal.svh">uvm_component_proxy</a></h2><div class=CBody><p>The class is providing the proxy to extract the direct subcomponents of <i>s</i></p> |
| |
| <!--START_ND_SUMMARY index=14--> |
| <div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=14 --> |
| |
| <tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_component_proxy" id=link11 onMouseOver="ShowTip(event, 'tt4', 'link11')" onMouseOut="HideTip('tt4')">uvm_component_proxy</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>The class is providing the proxy to extract the direct subcomponents of <i>s</i></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>uvm_structure_proxy#(uvm_component)</div></div></td></tr> |
| <tr><td><div class=CHCurrent><div class=CHEntry>uvm_component_proxy</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=2>class uvm_component_proxy extends uvm_structure_proxy#(</td> </tr><tr><td> </td> <td class=PParameter nowrap width=100%>uvm_component</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=2>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </td></tr> |
| </table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=15 --> |
| <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_component_name_check_visitor" href="../../src/base/uvm_traversal.svh">uvm_component_name_check_visitor</a></h2><div class=CBody><p>This specialized visitor analyze the naming of the current component. The established rule set ensures that a component.get_full_name() is parsable, unique, printable to order to avoid any ambiguities when messages are being emitted.</p><p>ruleset a legal name is composed of</p><ul><li>allowed charset “A-z:_0-9[](){}-: “</li><li>whitespace-as-is, no-balancing delimiter semantic, no escape sequences</li><li>path delimiter not allowed anywhere in the name</li></ul><p>the check is coded here as a function to complete it in a single function call otherwise save/restore issues with the used dpi could occur</p> |
| |
| <!--START_ND_SUMMARY index=15--> |
| <div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=15 --> |
| |
| <tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_component_name_check_visitor" id=link12 onMouseOver="ShowTip(event, 'tt5', 'link12')" onMouseOut="HideTip('tt5')">uvm_component_name_check_visitor</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>This specialized visitor analyze the naming of the current component. </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>uvm_visitor#(uvm_component)</div></div></td></tr> |
| <tr><td><div class=CHCurrent><div class=CHEntry>uvm_component_name_check_visitor</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=2>class uvm_component_name_check_visitor extends uvm_visitor#(</td> </tr><tr><td> </td> <td class=PParameter nowrap width=100%>uvm_component</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=2>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| </td></tr> |
| |
| <!-- index=16 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_component_name_check_visitor.Methods" >Methods</a></td><td class=SDescription></td></tr> |
| <!-- index=17 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_component_name_check_visitor.get_name_constraint" id=link13 onMouseOver="ShowTip(event, 'tt8', 'link13')" onMouseOut="HideTip('tt8')">get_name_constraint</a></td><td class=SDescription>This method should return a regex for what is being considered a valid/good component name. </td></tr></table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=16 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_component_name_check_visitor.Methods" href="../../src/base/uvm_traversal.svh">Methods</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=17 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_component_name_check_visitor.get_name_constraint" href="../../src/base/uvm_traversal.svh">get_name_constraint</a></h3> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function string get_name_constraint() |
| </td></tr></table></blockquote><div class=CBody><p>This method should return a regex for what is being considered a valid/good component name. The visitor will check all component names using this regex and report failing names</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_top_down_visitor_adapter#(</td> </tr><tr><td> </td> <td class=PType nowrap>type </td> |
| <td class=PParameter nowrap>STRUCTURE</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>uvm_component,</td> |
| </tr><tr><td> </td> <td class=PType nowrap> </td> |
| <td class=PParameter nowrap>VISITOR</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>uvm_visitor#(STRUCTURE)</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>) extends uvm_visitor_adapter#(STRUCTURE,VISITOR)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| This uvm_top_down_visitor_adapter traverses the STRUCTURE <i>s</i> (and will invoke the visitor) in a hierarchical fashion. </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_bottom_up_visitor_adapter#(</td> </tr><tr><td> </td> <td class=PType nowrap>type </td> |
| <td class=PParameter nowrap>STRUCTURE</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>uvm_component,</td> |
| </tr><tr><td> </td> <td class=PType nowrap> </td> |
| <td class=PParameter nowrap>VISITOR</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>uvm_visitor#(STRUCTURE)</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>) extends uvm_visitor_adapter#(STRUCTURE,VISITOR)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| This uvm_bottom_up_visitor_adapter traverses the STRUCTURE <i>s</i> (and will invoke the visitor) in a hierarchical fashion. </div></div><div class=CToolTip id="tt3"><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_by_level_visitor_adapter#(</td> </tr><tr><td> </td> <td class=PType nowrap>type </td> |
| <td class=PParameter nowrap>STRUCTURE</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>uvm_component,</td> |
| </tr><tr><td> </td> <td class=PType nowrap> </td> |
| <td class=PParameter nowrap>VISITOR</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>uvm_visitor#(STRUCTURE)</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=5>) extends uvm_visitor_adapter#(STRUCTURE,VISITOR)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| This uvm_by_level_visitor_adapter traverses the STRUCTURE <i>s</i> (and will invoke the visitor) in a hierarchical fashion. </div></div><div class=CToolTip id="tt4"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=2>class uvm_component_proxy extends uvm_structure_proxy#(</td> </tr><tr><td> </td> <td class=PParameter nowrap width=100%>uvm_component</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=2>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| The class is providing the proxy to extract the direct subcomponents of <i>s</i></div></div><div class=CToolTip id="tt5"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=2>class uvm_component_name_check_visitor extends uvm_visitor#(</td> </tr><tr><td> </td> <td class=PParameter nowrap width=100%>uvm_component</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=2>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| This specialized visitor analyze the naming of the current component. </div></div><div class=CToolTip id="tt6"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=4>pure virtual function void get_immediate_children(</td> </tr><tr><td> </td> <td class=PTypePrefix nowrap></td> |
| <td class=PType nowrap>STRUCTURE </td> |
| <td class=PParameter nowrap width=100%>s,</td> |
| </tr><tr><td> </td> <td class=PTypePrefix nowrap>ref </td> |
| <td class=PType nowrap>STRUCTURE </td> |
| <td class=PParameter nowrap width=100%>children[$]</td> |
| </tr> |
| <tr> |
| <td class=PAfterParameters colspan=4>)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| This method will be return in <i>children</i> a set of the direct subelements of <i>s</i></div></div><div class=CToolTip id="tt7"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters colspan=5>pure virtual function void accept(</td> </tr><tr><td> </td> <td class=PType nowrap>STRUCTURE </td> |
| <td class=PParameter nowrap>s,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>VISITOR </td> |
| <td class=PParameter nowrap>v,</td> |
| <td class=PDefaultValuePrefix> </td> |
| <td class=PDefaultValue width=100%></td> |
| </tr><tr><td> </td> <td class=PType nowrap>uvm_structure_proxy#(STRUCTURE) </td> |
| <td class=PParameter nowrap>p,</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>invoke_begin_end</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> |
| Calling this function will traverse through <i>s</i> (and every subnode of <i>s</i>). </div></div><div class=CToolTip id="tt8"><div class=CMethod> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function string get_name_constraint() |
| </td></tr></table></blockquote>This method should return a regex for what is being considered a valid/good component name. </div></div><!--END_ND_TOOLTIPS--> |
| |
| <script language=JavaScript><!-- |
| if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html> |