| <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 class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Core_Base_Classes" href="../../ovm_ref/base.txt">Core Base Classes</a></h1><div class=CBody><p>The OVM 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 OVM provides base classes for these, as shown below.</p><img src="nd/Images/ovm_ref_base.gif" width="229" height="126"><ul><li><a href="../files/base/ovm_object-svh.html#ovm_object" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">ovm_object</a> - All components and transactions derive from <i>ovm_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="../files/base/ovm_component-svh.html#ovm_component" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">ovm_component</a> - The <i>ovm_component</i> class is the root base class for all OVM 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>ovm_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>ovm_component</i> also defines configuration, reporting, transaction recording, and factory interfaces.</li><li><a href="../files/base/ovm_transaction-svh.html#ovm_transaction" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">ovm_transaction</a> - The <i>ovm_transaction</i> is the root base class for OVM transactions, which, unlike <i>ovm_components</i>, are transient in nature. It extends <a href="../files/base/ovm_object-svh.html#ovm_object" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">ovm_object</a> to include a timing and recording interface. Simple transactions can derive directly from <i>ovm_transaction</i>, while sequence-enabled transactions derive from <i>ovm_sequence_item</i>.</li><li><a href="../files/base/ovm_root-svh.html#ovm_root" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt4', 'link5')" onMouseOut="HideTip('tt4')">ovm_root</a> - The <i>ovm_root</i> class is special <i>ovm_component</i> that serves as the top-level component for all OVM components, provides phasing control for all OVM components, and other global services.</li></ul></div></div></div> |
| <div class=CToolTip id="tt1"><div class=CClass><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class ovm_object extends ovm_void</td></tr></table></blockquote>The ovm_object class is the base class for all OVM 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 ovm_component extends ovm_report_object</td></tr></table></blockquote>The ovm_component class is the root base class for OVM 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 ovm_transaction extends ovm_object</td></tr></table></blockquote>The ovm_transaction class is the root base class for OVM transactions. </div></div><div class=CToolTip id="tt4"><div class=CClass><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class ovm_root extends ovm_component</td></tr></table></blockquote>The <i>ovm_root</i> class serves as the implicit top-level and phase controller for all OVM components. </div></div><!--END_ND_TOOLTIPS--> |
| <script language=JavaScript><!-- |
| if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html> |