| <html><head><title>Synchronization 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="Synchronization_Classes" href="../../src/overviews/synchro.txt">Synchronization Classes</a></h1><div class=CBody><img src="../../images/uvm_ref_sync.gif" width="458" height="77"><p>The UVM provides event and barrier synchronization classes for managing concurrent processes.</p><ul><li><a href="../base/uvm_event-svh.html#uvm_event" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">uvm_event</a> - UVM’s event class augments the SystemVerilog event datatype with such services as setting callbacks and data delivery.</li><li><a href="../base/uvm_barrier-svh.html#uvm_barrier" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">uvm_barrier</a> - A barrier is used to prevent a pre-configured number of processes from continuing until all have reached a certain point in simulation.</li><li>uvm_event_pool and uvm_barrier_pool - The event and barrier pool classes are specializations of <a href="../base/uvm_pool-svh.html#uvm_object_string_pool#(T)" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">uvm_object_string_pool #(T)</a> used to store collections of <a href="../base/uvm_event-svh.html#uvm_event" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">uvm_events</a> and <a href="../base/uvm_barrier-svh.html#uvm_barrier" class=LClass id=link5 onMouseOver="ShowTip(event, 'tt2', 'link5')" onMouseOut="HideTip('tt2')">uvm_barriers</a>, respectively, indexed by string name. Each pool class contains a static, “global” pool instance for sharing across all processes.</li><li><a href="../base/uvm_event_callback-svh.html#uvm_event_callback" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt4', 'link6')" onMouseOut="HideTip('tt4')">uvm_event_callback</a> - The event callback is used to create callback objects that may be attached to <a href="../base/uvm_event-svh.html#uvm_event" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt1', 'link7')" onMouseOut="HideTip('tt1')">uvm_event</a>s.</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="#Synchronization_Classes" >Synchronization Classes</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription></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>class uvm_event extends uvm_object |
| </td></tr></table></blockquote>The uvm_event class is a wrapper class around the SystemVerilog event construct. </div></div><div class=CToolTip id="tt2"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class uvm_barrier extends uvm_object |
| </td></tr></table></blockquote>The uvm_barrier class provides a multiprocess synchronization mechanism. </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 nowrap>class uvm_object_string_pool #(</td> <td class=PType nowrap>type </td> |
| <td class=PParameter nowrap>T</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>uvm_object</td> |
| <td class=PAfterParameters nowrap>) extends uvm_pool #(string,T)</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| This provides a specialization of the generic uvm_pool #(KEY,T) class for an associative array of uvm_object-based objects indexed by string. </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_event_callback extends uvm_object |
| </td></tr></table></blockquote>The uvm_event_callback class is an abstract class that is used to create callback objects which may be attached to uvm_events. </div></div><!--END_ND_TOOLTIPS--> |
| |
| <script language=JavaScript><!-- |
| if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html> |