下冰雹 · 2023年04月28日 · 北京市

Systemverilog中array的记录

1. dynamic arrarys

Dynamic arrary是unpacked array,它的size是在run time时是可以改变的。动态数组的大小是通过new或者assignment来获得的。

2. Associative arrarys

动态数组适用于连续且size动态变化的情况。而关联数组(associative arrarys)可以用于需要存储的数据是分散的。

3. Queue

queue是size可变,并且有order的数组。Index=0表示第一个element,index=$表示最后一个element。在定义时,可以选择queue的最大个数。

对Queeu[$+1]进行读写是可以的,也就queue有这个例外,其它arrary的话,如果没有提前搞好size,直接这样会报错的。

queue的内置方法:

size()/insert()/delete()/pop_front()/pop_back()/push_front()/push_back()

4. arrary的查询函数

system functions:$left, $right, $low, $high, $increment, $size, $dimensions, and $unpacked_dimensions

5. arrary操作方法

sv提供了几个内建方法,用于对arrary进行searching、ordering和reduction。

1) array locator methods

用于对unpacked array操作,包含find()/find_index()/find_first()/find_first_index()/find_last()/find_last_index()。这几个方法后面必须带有with (xxx)。Min()/max()/unique()/unique()后面的with关键字可以被省略。

2)arrary ordering methods

用于对unpacked array的reorder操作,有reverse()/sort()/rsort()/shuffle()。

3)array reduction methods

用于对unpacked array的操作,有sum()/product()/and()/or()/xor()。

原文:CSDN
作者: 谷公子

相关文章推荐

更多FPGA干货请关注FPGA的逻辑技术专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
20195
内容数
1307
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息