blob: bd45f33483b56a3b5587d7a070570c3953f4008b [file] [log] [blame]
<html><head><title>Sequence 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="Sequence_Classes" href="../../src/overviews/sequences.txt">Sequence Classes</a></h1><div class=CBody><p>Sequences encapsulate user-defined procedures that generate multiple <a href="../seq/uvm_sequence_item-svh.html#uvm_sequence_item" class=LClass id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">uvm_sequence_item</a>-based transactions.&nbsp; Such sequences can be reused, extended, randomized, and combined sequentially and hierarchically in interesting ways to produce realistic stimulus to your DUT.</p><p>With <i>uvm_sequence</i> objects, users can encapsulate DUT initializaton code, bus-based stress tests, network protocol stacks-- anything procedural-- then have them all execute in specific or random order to more quickly reach corner cases and coverage goals.</p><p>The UVM sequence item and sequence class hierarchy is shown below.</p><img src="../../images/uvm_ref_sequence.gif" width="520" height="230"><ul><li><a href="../seq/uvm_sequence_item-svh.html#uvm_sequence_item" class=LClass id=link3 onMouseOver="ShowTip(event, 'tt1', 'link3')" onMouseOut="HideTip('tt1')">uvm_sequence_item</a> - The <i>uvm_sequence_item</i> is the base class for user-defined transactions that leverage the stimulus generation and control capabilities of the sequence-sequencer mechanism.</li><li><a href="../seq/uvm_sequence-svh.html#uvm_sequence#(REQ,RSP)" class=LClass id=link4 onMouseOver="ShowTip(event, 'tt2', 'link4')" onMouseOut="HideTip('tt2')">uvm_sequence #(REQ,RSP)</a> - The <i>uvm_sequence</i> extends <i>uvm_sequence_item</i> to add the ability to generate streams of <i>uvm_sequence_items</i>, either directly or by recursively execting other <i>uvm_sequences</i>.</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="#Sequence_Classes" >Sequence Classes</a></td></tr>
<tr class=SMain><td colspan=2 class=SWideDescription>Sequences encapsulate user-defined procedures that generate multiple <a href="../seq/uvm_sequence_item-svh.html#uvm_sequence_item" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">uvm_sequence_item</a>-based transactions. </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_sequence_item extends uvm_transaction
</td></tr></table></blockquote>The base class for user-defined sequence items and also the base class for the uvm_sequence class. </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>virtual class uvm_sequence #(</td> </tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>type&nbsp;</td>
<td class=PParameter nowrap>REQ</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%> uvm_sequence_item,</td>
</tr><tr><td>&nbsp;&nbsp;&nbsp;</td> <td class=PType nowrap>type&nbsp;</td>
<td class=PParameter nowrap>RSP</td>
<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
<td class=PDefaultValue width=100%> REQ</td>
</tr>
<tr>
<td class=PAfterParameters colspan=5>) extends uvm_sequence_base</td></tr>
</table></td></tr>
</table></blockquote>
The uvm_sequence class provides the interfaces necessary in order to create streams of sequence items and/or other sequences.</div></div><!--END_ND_TOOLTIPS-->
<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>