| <html><head><title>Core Base 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="Core_Base_Classes" href="../../src/overviews/base.txt">Core Base Classes</a></h1><div class=CBody><p>The UVM library defines a set of base classes and utilities that facilitate the design of modular, scalable, reusable verification environments.</p><p>The basic building blocks for all environments are components and the transactions they use to communicate. The UVM provides base classes for these, as shown below.</p><img src="../../images/uvm_ref_base.gif" width="229" height="161"><ul><li><a href="../base/uvm_object-svh.html#uvm_object" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">uvm_object</a> - All components and transactions derive from <i>uvm_object</i>, which defines an interface of core class-based operations: create, copy, compare, print, sprint, record, etc. It also defines interfaces for instance identification (name, type name, unique id, etc.) and random seeding.</li><li><a href="../base/uvm_component-svh.html#uvm_component" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">uvm_component</a> - The <i>uvm_component</i> class is the root base class for all UVM components. Components are quasi-static objects that exist throughout simulation. This allows them to establish structural hierarchy much like <i>modules</i> and <i>program blocks</i>. Every component is uniquely addressable via a hierarchical path name, e.g. “env1.pci1.master3.driver”. The <i>uvm_component</i> also defines a phased test flow that components follow during the course of simulation. Each phase-- <i>build</i>, <i>connect</i>, <i>run</i>, etc.-- is defined by a callback that is executed in precise order. Finally, the <i>uvm_component</i> also defines configuration, reporting, transaction recording, and factory interfaces.</li><li><a href="../base/uvm_transaction-svh.html#uvm_transaction" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">uvm_transaction</a> - The <i>uvm_transaction</i> is the root base class for UVM transactions, which, unlike <i>uvm_components</i>, are transient in nature. It extends <a href="../base/uvm_object-svh.html#uvm_object" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">uvm_object</a> to include a timing and recording interface. Simple transactions can derive directly from <i>uvm_transaction</i>, while sequence-enabled transactions derive from <i>uvm_sequence_item</i>.</li><li><a href="../base/uvm_root-svh.html#uvm_root" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt4', 'link5')" onMouseOut="HideTip('tt4')">uvm_root</a> - The <i>uvm_root</i> class is special <i>uvm_component</i> that serves as the top-level component for all UVM components, provides phasing control for all UVM components, and other global services.</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="#Core_Base_Classes" >Core Base Classes</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>The UVM library defines a set of base classes and utilities that facilitate the design of modular, scalable, reusable verification environments.</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_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="tt3"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class uvm_transaction extends uvm_object |
| </td></tr></table></blockquote>The uvm_transaction class is the root base class for UVM transactions. </div></div><div class=CToolTip id="tt4"><div class=CClass>The <i>uvm_root</i> class serves as the implicit top-level and phase controller for all UVM components. </div></div><!--END_ND_TOOLTIPS--> |
| |
| <script language=JavaScript><!-- |
| if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html> |