📄 00874.html
字号:
<div class="Element207">
对固定尺寸的非压缩数组赋值要求源数组和目的数组都具有相同非压缩维数,并且每一维的长度都必须相同。赋值通过将源数组的每一个元素赋值给目的数组的对应元素来实现,它要求源数组与目的数组具有兼容的类型。兼容类型是指在赋值操作上能够兼容的类型。在尺寸不等的固定尺寸非压缩数组间赋值会导致类型检查错误。 </div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00531.html" target="topic">4.8 将数组作为自变量</a> </div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
数组可以作为自变量传递给任务或函数。数组自变量通过值进行传递的规则与数组赋值的规则相同(参见<a href="00005.html" target="topic">10.4节</a>)。当数组自变量通过值传递的时候,一个数组的拷贝被传递给调用任务或函数。这条规则适用于所有的数组类型:固定尺寸数组、动态数组、或联合数组。<br><br>注意:未定义尺寸的维数只能出现在动态数组中,或者出现在导入DPI函数的形式变量中。如果一个形式变量的一维是未定义尺寸的,那么真实变量中对应维数具有任意尺寸也是可以接受的。<br><br>例如: </div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00532.html" target="topic">4.9 联合数组</a> </div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
对于处理成员数目会动态改变的连续变量集合而言,动态数组非常有用。然而,当集合的尺寸是未知的或者数据空间紧缺的时候,联合数组则是更好的选择。联合数组在使用之前不会分配任何存储空间,并且索引表达式不再被限制成integral表达式,而是可以具有任何数据类型。<br><br>联合数组实现了一个所声明类型的元素的查找表。用作索引的数据类型作为查找表的查找键值,并强制了一种顺序。<br><br>联合数组的声明语法如下: </div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00496.html" target="topic">4.10 联合数组方法</a> </div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
除了索引操作符之外,SystemVerilog提供了几个内建方法来允许用户分析和处理联合数组,同时提供了对联合数组的索引或键值的迭代处理。 </div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00504.html" target="topic">4.11 联合数组赋值</a> </div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
联合数组只能被赋值为另外一个具有兼容类型并且具有相同索引类型的联合数组。其它的数组类型不能赋值给一个联合数组,而联合数组也不能赋值给其它类型的数组,无论是固定尺寸数组还是动态动态数组。<br><br>将联合数组赋值给另外一个联合数组会先将目的数组中所有现存条目清除,然后再将源数组中的每一个条目拷贝到目的数组。 </div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00505.html" target="topic">4.12 联合数组自变量</a> </div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
作为自变量的联合数组只能传递给具有兼容类型并具有相同索引类型的联合数组。其它类型的数组,无论是固定尺寸数组还是动态数组,都不能传递给使用联合数组作为自变量的子程序。同样,联合数组也不能传递给使用其它类型的数组作为自变量的子程序。<br><br>通过值传递一个联合数组会产生联合数组的本地拷贝。 </div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00506.html" target="topic">4.13 联合数组文本</a> </div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
联合数组文本值使用<span style="color: #800080">{<i></span>index<span style="color: #800080"></i>:<i></span>value<span style="color: #800080"></i>}</span>这样的语法并带有可选的缺省索引。与所有其它数组一样,联合数组可以一次只写一个条目,或者使用数组文本替代整个数组内容。 </div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00507.html" target="topic">4.14 队列</a> </div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
队列是一个相同元素的可变尺寸的有序集合。队列能够以常量时间访问它的所有元素,也能够以常量时间在队列的尾部和头部插入和删除元素。队列中的每一个元素都通过一个序号来标识,这个序号代表了元素在队列内的位置,<span style="color: #FF0000">0</span>代表第一个元素,<span style="color: #FF0000">$</span>代表最后一个元素。队列类似于一个一维的非压缩数组,它可以自动地增长和缩减。因此,与数组一样,队列可以使用索引、串联、分片、相等操作符进行处理。<br><br>队列使用与非压缩数组相同的语法声明,但可以使用<span style="color: #FF0000">$</span>作为数组尺寸。队列的尺寸可以通过指定可选的右边界(最后一个索引)进行限制。 </div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00517.html" target="topic">4.15 数组处理方法</a> </div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
SystemVerilog提供了几个内建的方法来方便数组的搜索、排序和缩减。<br><br>调用这些数组方法的基本语法如下: </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="00900.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="我要啦免费统计" 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 + -