⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00429.html

📁 这是一本关于verilog编程语言的教程,对学习verilog语言有帮助
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<title>30.4.2 VPI collection</title>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
    <meta name="generator" content="Doc-O-Matic" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <link rel="STYLESHEET" href="default.css" type="text/css" />

<script type="text/javascript" src="scripts.js"></script>
</head>
<body class="Element700" onload="onBodyLoadEx('systemverilog31a.html', 'topic', '00429.html');" onmousedown="onBodyMouseDown();">

<!-- Begin Popups -->
<div class="Element801" id="popup00567">
<div class="Element800">
<div class="Element14">
链接</div>
<div class="Element11">
<div class="Element10">
<a href="00427.html" target="topic">30.4 VPI object type additions</a>, <a href="01001.html" target="topic">主题</a></div>
</div>
</div>
</div>

<!-- End Popups -->

<!-- Begin Page Header -->
<div class="Element710" id="areafixed">
<div class="Element92">
<table width="100%" cellspacing="0" cellpadding="0">
<tr><td width="33%">
<div class="Element1">
<a href="#" onmousedown="showPopup(this, 'popup00567');"><img src="seealsolink.png" border="0" alt="" title=""></a> SystemVerilog 3.1a语言参考手册</div>
</td><td width="34%">
<div class="Element2">
</div>
</td><td width="33%">
<div class="Element90">
<a href="00428.html" target="topic"><img src="btn_prev_lightblue.gif" border="0" alt="Previous" title="Previous" onmouseover="switchImage(this, 'btn_prev_lightblue_hover.gif');" onmouseout="switchImage(this, 'btn_prev_lightblue.gif');"></a><a href="00427.html" target="topic"><img src="btn_up_lightblue.gif" border="0" alt="Up" title="Up" onmouseover="switchImage(this, 'btn_up_lightblue_hover.gif');" onmouseout="switchImage(this, 'btn_up_lightblue.gif');"></a><a href="00430.html" target="topic"><img src="btn_next_lightblue.gif" border="0" alt="Next" title="Next" onmouseover="switchImage(this, 'btn_next_lightblue_hover.gif');" onmouseout="switchImage(this, 'btn_next_lightblue.gif');"></a></div>
</td></tr></table><div class="Element5">
30.4.2 VPI collection</div>
</div>
</div>

<!-- End Page Header -->

<!-- Begin Client Area -->
<div class="Element720" id="areascroll">
<div class="Element721">

<!-- Begin Page Content -->
<div class="Element58">
<a name="描述"></a><div class="Element11">
<div class="Element10">
<p class="Element10">
In order to read data efficiently, it can be necessary to specify a group of objects. For example, when traversing data a user might wish to specify a list of objects to be marked as targets of data traversal. To do this grouping requires the notion of a collection. A collection represents a user-defined collection of VPI handles. The collection is an ordered list of VPI handles. The vpiType of a collection handle can be vpiCollection, vpi-ObjCollection, or vpiTrvsCollection:
<ul class="Element630">
<li class="Element600">A collection of type vpiCollection is a general collection of VPI handles of objects of any type.</li>
<li class="Element600">The collection object of type vpiObjCollection represents a collection of VPI traversable objects in the design.</li>
<li class="Element600">A vpiTrvsCollection is a collection of traverse objects of type vpiTrvsObj.</li>
</ul>The usage here in the read API is of either:
<ul class="Element630">
<li class="Element600">Collections of traversable design objects: Used for example in vpi_handle() to create traverse handles for the collection. A collection of traversable design objects is of type vpiObjCollection (the elements can be any object type in the design except traverse objects of type vpiTrvsObj).</li>
<li class="Element600">Collections of data traverse objects: Used for example in vpi_goto() to move the traverse handles of all the objects in the collection (all are of type vpiTrvsObj). A collection of traverse objects is a vpiTrvsCollection.</li>
</ul>The collection contains a set of member VPI objects and can take on an arbitrary size. The collection can be created at any time and existing objects can be added to it. The reader implementation can perform a type check on the items being added to the collection and generate an error if the item added does not belong to the allowed vpiType.&nbsp;</p>
<p class="Element10">
&nbsp;</p>
<p class="Element10">
The purpose of a collection is to group design objects and permit operating on each element with a single operation applied to the whole collection group. vpi_iterate(vpiMember, &lt;collection_handle&gt;) is used to create a member iterator. vpi_scan() can then be used to scan the iterator for the elements of the collection.&nbsp;</p>
<p class="Element10">
&nbsp;</p>
<p class="Element10">
A collection object is created with vpi_create(). The first call provides NULL handles to the collection object and the object to be added. Following calls, which can be performed at any time, provide the collection handle and a handle to the object for addition. The return argument is a handle to the collection object.&nbsp;</p>
<p class="Element10">
&nbsp;</p>
<p class="Element10">
For example: </p><div class="Element170">
<a href="#" onclick="CopyElementToClipboard('code01039');">Copy Code</a></div>
<div class="Element13"><div class="Element12" id="code01039"><pre class="Element12">vpiHandle designCollection;
vpiHandle designObj;
vpiHandle trvsCollection;
vpiHandle trvsObj;
/* Create a collection of design objects */
designCollection = vpi_create(vpiObjCollection, NULL, NULL);
/* Add design object designObj into it */
designCollection = vpi_create(vpiObjCollection, designCollection, designObj);
/* Create a collection of traverse objects*/
trvsCollection = vpi_create(vpiTrvsCollection, NULL, NULL);
/* Add traverse object trvsObj into it */
trvsCollection = vpi_create(vpiTrvsCollection, trvsCollection, trvsObj);</pre></div></div>
<p class="Element10">
Sometimes it is necessary to filter a collection and extract a set of handles which meet, or do not meet, a specific criterion for a given collection. The function vpi_filter() can be used for this purpose in the form of: </p><div class="Element170">
<a href="#" onclick="CopyElementToClipboard('code01040');">Copy Code</a></div>
<div class="Element13"><div class="Element12" id="code01040"><pre class="Element12">vpiHandle colFilterHdl = vpi_filter((vpiHandle) colHdl, (PLI_INT32)
filterType, (PLI_INT32) flag);</pre></div></div>
<p class="Element10">
The first argument of vpi_filter(), colHdl, shall be the collection on which to apply the filter operation. The second argument, filterType can be any vpiType or VPI boolean property. This argument is the criterion used for filtering the collection members. The third argument, flag, is a boolean value. If set to TRUE, vpi_filter() shall return a collection of handles which match the criterion indicated by filterType, if set to FALSE, vpi_filter() shall return a collection of handles which do not match the criterion indicated by filterType. The original collection passed as a first argument remains unchanged.&nbsp;</p>
<p class="Element10">
&nbsp;</p>
<p class="Element10">
A collection object exists from the time it is created until its handle is released. It is the application’s responsibility to keep a handle to the created collection, and to release it when it is no longer needed.</p></div>
</div>
<a name="Group"></a><div class="Element14">
<a onclick="toggleVisibilityStored('Group');" class="a_Element14"><img src="sectionminus.png" border="0" alt="" title="" id="imgGroup">Group</a></div>
<div id="divGroup">
<div class="Element11">
<div class="Element10">
<p class="Element10">
<a href="00427.html" target="topic">30.4 VPI object type additions</a></p></div>
</div>
</div>
<a name="主题"></a><div class="Element14">
<a onclick="toggleVisibilityStored('主题');" class="a_Element14"><img src="sectionminus.png" border="0" alt="" title="" id="img主题">主题</a></div>
<div id="div主题">
<div class="Element11">
<div class="Element10">
<div class="Element212">
<div class="TableDiv">
<table cellspacing="0" class="Table0">
<tr>
<td class="Element200" valign="top" width="50%">
<div class="Element201">
主题&nbsp;</div></td><td class="Element204" valign="top" width="50%">
<div class="Element205">
描述&nbsp;</div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00430.html" target="topic">30.4.2.1 Operations on collections</a>&nbsp;</div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
A traverse collection can be obtained (i.e. created) from a design collection using vpi_handle(). The call would take on the form of: &nbsp;</div></td></tr></table></div></div>
</div>
</div>
</div>
<a name="Links"></a><div class="Element14">
<a onclick="toggleVisibilityStored('链接');" class="a_Element14"><img src="sectionminus.png" border="0" alt="" title="" id="img链接">链接</a></div>
<div id="div链接">
<div class="Element11">
<div class="Element10">
<a href="00427.html" target="topic">30.4 VPI object type additions</a>, <a href="01001.html" target="topic">主题</a></div>
</div>
</div>
</div>
<!-- End Page Content -->

<!-- Begin Page Footer -->
<hr width="98%" align="center" size="1" color="#CCCCCC" />
<table align="center" cellpadding="0" cellspacing="0" border="0">
	<tbody>
		<tr height="10">
			<td></td>
		</tr>
		<tr align="center">
			<td>
<script type="text/javascript"><!--
google_ad_client = "pub-5266859600380184";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_page_url = document.location;
//--></script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
			</td>
		</tr>
		<tr height="15">
			<td></td>
		</tr>
		<tr align="center">
			<td>
				<font size=2>除非特别声明,原文版权归作者所有,如有转摘请注明原作者以及译者(<a href="http://www.fpgatech.net/"  target="_blank">FPGA技术网</a>)信息。<br />
如果您对本主题有何建议或意见,请登陆<a href="http://www.fpgatech.net/forum/forumdisplay.php?fid=18" target="_blank">FPGA开发者家园</a>提交,您的参与是我们前进的动力。</font>
<script language="javascript" type="text/javascript" src="http://js.users.51.la/195685.js"></script>
<noscript><a href="http://www.51.la/?195685" target="_blank"><img alt="&#x6211;&#x8981;&#x5566;&#x514D;&#x8D39;&#x7EDF;&#x8BA1;" src="http://img.users.51.la/195685.asp" style="border:none" /></a></noscript>
			</td>
		</tr>
	</tbody>
</table>

<!-- End Page Footer -->
</div>
</div>

<!-- End Client Area -->
</body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -