System Verilog学习笔记(十二)——数组(2)

本文介绍了SystemVerilog中的动态数组、队列和关联数组的声明、初始化、操作方法,包括动态数组的尺寸管理、队列的插入和删除、以及关联数组的散列功能。同时涵盖了缩减、定位和排序等实用功能。
摘要由CSDN通过智能技术生成

System Verilog学习笔记(十二)——数组(2)

动态数组

  • 在编译时不会为其定制尺寸,而是在仿真运行时来确定
  • 动态数组一开始为空,需要使用new[ ]来为其分配空间
  • 声明方式
int dyn[],d2[]; //声明了两个动态数组
initial begin
	dyn=new[5];  //包含5个元素
	foreach (dyn[j]) dyn[j]=j;  //初始化元素
	d2=dyn; //拷贝数组
	dyn.delete(); //删除所有元素,原来开辟的空间也清除了
	dyn=new[0]; //清空元素
end
  • .size( )可以返回动态数组的大小
  • .delete( )可以清空动态数组,使其尺寸为0
  • '{ }可以完成初始化

队列

队列结合了数组和链表,可以在队列的任何位置添加或者删除数据成员,可以通过索引来访问队列的任何一个成员。

  • [ $ ]来声明队列,队列的索引值是从0到$
  • 通过insert(pos, val)来在指定位置插入数据成员
  • 通过delete( )来删除所有数据成员,也可以删除某一个成员
  • .push_front ():在队列最前端插入值
  • .push_back():在队列最后端插入值
  • .pop_back():取出队列最后一个值
  • .pop_front():取出队列最前面一个值
  • 队列中不能插入队列

关联数组

  • 关联数组可以用来存放散列的数据成员,散列的索引类型可以为任意类型(整型,字符串或者其他),存储的数据也可以为任何类型
  • .first():得到第一个索引值
  • .next():得到当前索引的下一个索引值

缩减方法

  • 把一个数组缩减成一个值
  • .sum(),它是对数组中所有的元素求和
  • .product( ) 所有元素乘积
  • .and( ) 所有元素与
  • .or( ) 所有元素或
  • .xor( ) 异或

定位方法

  • .unique( ):返回只出现过一次的元素
  • .min( )和.max( ):返回最小和最大值
  • .find…with( ):查找满足条件的数据成员

排序方法

  • .reverse( ):逆序颠倒
  • .sort( ):升序排列
  • .rsort( ):降序排列
  • .shuffle( ):随机打乱
  • 15
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值