![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| SystemVerilog中的动态数组 | |||||
作者:FPGA技术… 文章来源:FPGA技术网 点击数: 更新时间:2008-1-1 ![]() |
|||||
|
在SystemVerilog中,根据数组声明的方式不同,数组可以分为两大类:压缩数组和非压缩数组。如果数组的上下边界在变量类型和变量名之间声明,那么这样的数组被称为压缩数组;如果数组的边界在变量名之后声明,那么这样的数组被称为非压缩数组。当然一个数组既可以具有压缩的部分也可以具有非压缩的部分。这几种数组类型的简单示例如下: 在上面的例子中,无论是声明压缩数组还是非压缩数组,也不管它们的维数如何,它们都具有一个共同点:它们都是静态声明的。一旦以这种方式声明了数组,分析这些声明的EDA工具将会为这些数组静态地分配内存,并且此后我们没有办法对其进行改变。因此,一旦声明了这样的数组,我们也就没有办法改变数组的尺寸。
动态数组的声明语法如下: 注意:空的方括号[]指示该数组是一个动态数组。下面是几个动态数组声明的例子: 在这个例子中,有几个方面需要注意:
处理动态数组
new[]操作符用来产生或修改一个动态数组的深度。考虑下面的例子: 在上面的例子中,在声明了int_array数组之后并没有为其分配内存空间,因此这个时候使用数组元素是非法的。元素内存的分配是使用new操作符实现的。此后,使用数组索引为0到24的元素是合法的。 在上面例子中的最后一行,new[50]为int_array2产生了50个数组元素。接下来(int_array)将int_array的元素拷贝到int_array2的前25个位置,int_array2中余下的25个位置会保留为空。 size()方法 如果此时动态数组还没有产生,那么size()方法返回0。 正象我们希望的那样,一个删除后的动态数组的尺寸为0。 上面的例子在ModelSim SE 6.1a下的运行结果如下: |
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| systemverilog学习的一个好网… SystemVerilog语言简介(一) SystemVerilog语言简介(二) SystemVerilog语言简介(三) SystemVerilog语言简介(四) |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|