Systemverilog语言(4)-------data types(2/2)

1.topic

在这里插入图片描述

2.dynamic array

在这里插入图片描述
在这里插入图片描述
声明动态数组一般用:【】
new 【】:可用于定义数组宽度,;
数据类型和宽度一致的固定数组也可以赋值给动态数组,满足一致条件也可以相互赋值;
在这里插入图片描述
上图:示例
dyn.delete() :删掉原来所有元素;在这里插入图片描述
动态数组有内建函数,delete,size等;

3.queue

在这里插入图片描述
在这里插入图片描述
能排序,查找,插入,删除;
不需要new【】声明操作;
支持入栈,出栈;
数组元素可直接赋给队列;
q.push_front (6):在队头插入6;
j=q.push_back:弹出队尾元素并赋给j;

4. associative array

在这里插入图片描述
定义联合数组: d_t a_n [] 其中,【】中的*可以替换为具体的索引类型。
好处:可以充分利用内存中的离散空间,不使用的部分不占聂村,具体上面示例。
在这里插入图片描述
读一个不存在(如超出范围)的联合数组,四值逻辑显示x,二值逻辑显示0;
first,next,pre,delete,exists功能可以被用;

5.数组的操作

在这里插入图片描述
product :求积;
xor :异或操作
bit只有1位,所以on[i]={0,1,0,1,0,1,0,1,0,1};
(on.sum)为bit类型,故结果为1;
summ为int型,summ = on.sum =5。
在这里插入图片描述
sort :从小到大排序,左边最小
rsort :从大到小排序,左边最大
reverse :矩阵的置换,左右前后调换
find_first_with_index :找到第一个元素的索引号
fine_index with(item>3):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
shuffle :乱序
上图:示例
在这里插入图片描述

5. Structure

在这里插入图片描述
在这里插入图片描述
通过引用操作符**‘.’**即可引用其中的某个信号;
在这里插入图片描述
默认数据是unpacked ,32位的;
packed从定义的第一下往下依次排。
在这里插入图片描述
上图:struct内指定位宽的数据或某个信号的赋值

6.枚举类型

在这里插入图片描述
enum类型数据,默认是int型,如果不初始化,默认按大端模式从0依次加1一直到最大值;
在这里插入图片描述
支持显式赋值,如enum {ONE = 1,FIVE =5 };
如果是混合类型,假设第一个赋值了,但第二个未赋值,则默认在第一个基础上加1赋给2;
上图error是因为有俩值为3。
在这里插入图片描述
默认int型,可人为指定类型,位宽。
在这里插入图片描述
第一个error是因为logic是1位的,C为2无法表示出错。
第二个error是因为xx加1后仍是xx,出现两个xx。

7.操作符

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值