Systemverilog中array的记录

news/2024/5/19 18:14:16 标签: Systemverilog, array, queue, associative, dynamic

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()。


http://www.niftyadmin.cn/n/209504.html

相关文章

【数据库运维】环境准备,mysql日志管理

目录 数据库环境准备(所有机器,以node1为例) 一,下载glibc版本的Mysql 二,新建用户以安全方式运行进程 三,安装并初始化mysql 四,修改mysql提供主配置文件 五&…

GitHub使用教程

0 简介 GitHub 是基于 Git 的一个代码托管网站。开发者可以将代码在 GitHub 上开源,可以浏览其它项目的代码,fork 到自己名下做修改,clone 回本地(没有访问权限的 private repo 除外)使用,也可以发起 pull …

python实战应用讲解-【numpy专题篇】numpy常见函数使用示例(十五)(附python示例代码)

目录 Python Numpy MaskedArray.masked_inside()函数 Python Numpy MaskedArray.masked_invalid()函数 Python Numpy np.chebfromroots()方法 Python Numpy np.chebgrid2d()方法 Python Numpy np.chebgrid3d()方法 Python Numpy np.chebroots()方法 Python Numpy np.che…

gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql

文章目录敏捷持续集成是什么?linux安装jdk和maven安装jdk安装mavenlinux安装nexus3.xnexus私服的使用编译安装mysql可能遇到的问题使用cmake时报错敏捷持续集成是什么? 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作&#x…

Vue+springboot+java学生成绩动态追踪系统课程资源课件下载设计与实现

随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,学生成绩动态追踪系统设计与实现当然也不能排除在外,从科目信息、学生成绩的统计和分析,在过程中会产生…

java 面试消息题1-13

1. Redis 线程模型, 及为什么redis 这么快? 1.Redis虽然是一条一条处理命令的(单线程),但是redis把每一条命令分成了很多个小命令,对这些小命令是多线程执行的。 2. IO 多路复用 - 可以用别人用过的IO。 …

终于搞懂了Java中基本数据类型和引用数据类型的区别啦!

🏠个人主页:shark-Gao 🧑个人简介:大家好,我是shark-Gao,一个想要与大家共同进步的男人😉😉 🎉目前状况:23届毕业生,目前在某公司实习&#x1f…

【LinuxC Sqlite数据库小项目】基于Sqlite的打卡系统------适合初学者练手的小项目

最近小哥老是想浪,不想好好学习,这不行啊,得想点办法,多少做点努力,于是就自己给自己写了个打卡程序; 该程序基于Sqlite数据库,实现一个简单的打卡功能,该函数具有自动初始化的功能…