| <html><head><title>Policy Classes</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!-- |
| if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script> |
| |
| <!-- Generated by Natural Docs, version Development Release 01-12-2008 (1.35 base) --> |
| <!-- http://www.naturaldocs.org --> |
| |
| <!-- saved from url=(0026)http://www.naturaldocs.org --> |
| |
| |
| |
| |
| |
| |
| |
| |
| <!--TOP - START OF CONTENT--> |
| <div id=Content> |
| |
| |
| <!--CONTENT index=0 --> |
| <div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Policy_Classes" href="../../src/overviews/policies.txt">Policy Classes</a></h1><div class=CBody><p>Each of UVM’s policy classes perform a specific task for <a href="../base/uvm_object-svh.html#uvm_object" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">uvm_object</a>-based objects: printing, comparing, recording, packing, and unpacking. They are implemented separately from <i>uvm_object</i> so that users can plug in different ways to print, compare, etc. without modifying the object class being operated on. The user can simply apply a different printer or compare “policy” to change how an object is printed or compared.</p><p>Each policy class includes several user-configurable parameters that control the operation. Users may also customize operations by deriving new policy subtypes from these base types. For example, the UVM provides four different <i>uvm_printer</i>-based policy classes, each of which print objects in a different format.</p><ul><li><a href="../base/uvm_printer-svh.html#uvm_printer" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt2', 'link3')" onMouseOut="HideTip('tt2')">uvm_printer</a> - performs deep printing of <i>uvm_object</i>-based objects. The UVM provides several subtypes to <i>uvm_printer</i> that print objects in a specific format: <a href="../base/uvm_printer-svh.html#uvm_table_printer" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt3', 'link4')" onMouseOut="HideTip('tt3')">uvm_table_printer</a>, <a href="../base/uvm_printer-svh.html#uvm_tree_printer" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt4', 'link5')" onMouseOut="HideTip('tt4')">uvm_tree_printer</a>, and <a href="../base/uvm_printer-svh.html#uvm_line_printer" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt5', 'link6')" onMouseOut="HideTip('tt5')">uvm_line_printer</a>. Each such printer has many configuration options that goven what and how object members are printed.</li><li><a href="../base/uvm_comparer-svh.html#uvm_comparer" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">uvm_comparer</a> - performs deep comparison of <i>uvm_object</i>-based objects. Users may configure what is compared and how miscompares are reported.</li><li><a href="../base/uvm_recorder-svh.html#uvm_recorder" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt7', 'link8')" onMouseOut="HideTip('tt7')">uvm_recorder</a> - performs the task of recording <i>uvm_object</i>-based objects to a transaction data base. The implementation is vendor-specific.</li><li><a href="../base/uvm_packer-svh.html#uvm_packer" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt8', 'link9')" onMouseOut="HideTip('tt8')">uvm_packer</a> - used to pack (serialize) and unpack <i>uvm_object</i>-based properties into bit, byte, or int arrays and back again.</li></ul> |
| |
| <!--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="SMain"><td colspan=2 class=SEntry><a href="#Policy_Classes" >Policy Classes</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>Each of UVM’s policy classes perform a specific task for <a href="../base/uvm_object-svh.html#uvm_object" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">uvm_object</a>-based objects: printing, comparing, recording, packing, and unpacking. </td></tr></table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| </div><!--Content--> |
| |
| |
| |
| <!--START_ND_TOOLTIPS--> |
| <div class=CToolTip id="tt1"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>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="tt2"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_printer |
| </td></tr></table></blockquote>The uvm_printer class provides an interface for printing uvm_objects in various formats. </div></div><div class=CToolTip id="tt3"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_table_printer extends uvm_printer |
| </td></tr></table></blockquote>The table printer prints output in a tabular format.</div></div><div class=CToolTip id="tt4"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_tree_printer extends uvm_printer |
| </td></tr></table></blockquote>By overriding various methods of the uvm_printer super class, the tree printer prints output in a tree format.</div></div><div class=CToolTip id="tt5"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_line_printer extends uvm_tree_printer |
| </td></tr></table></blockquote>The line printer prints output in a line format.</div></div><div class=CToolTip id="tt6"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_comparer |
| </td></tr></table></blockquote>The uvm_comparer class provides a policy object for doing comparisons. </div></div><div class=CToolTip id="tt7"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_recorder extends uvm_object |
| </td></tr></table></blockquote>Abstract class which defines the <i>recorder</i> API.</div></div><div class=CToolTip id="tt8"><div class=CClass>The uvm_packer class provides a policy object for packing and unpacking uvm_objects. </div></div><!--END_ND_TOOLTIPS--> |
| |
| <script language=JavaScript><!-- |
| if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html> |