本节主要内容:动态数组,队列,联合数组,数组基本操作,结构体类型,枚举类型

一:动态数组

1:基础

在run-time才知道元素个数,在compile-time不知道

可以在仿真的时候再确定元素个数

2:表示

data_type name_of_dynamic_array[];

name_of_ dynamic_array = new[number of elements];

实例:int dyn[]; dyn = new[5];dyn.delete();

3:可将固定数组赋值给动态数组,要求是元素个数相同

二:队列(先进先出)

1:基础知识

可插入,删除,sort,search,push,pop,add,remove;可将固定数组或者动态数组赋给队列

2:表示

data_type queue_name[$] = {..} //队列赋值时大括号前面不加单引号

实例:int b[$] = {3,4}; //{3,4}

b.insert(1,1);   //{3,1,4} 在第一个元素后面添加1

b.delete(1);  //{3,4} 删除元素1

b.push_front(6) ; //{6,3,4}

j = b.pop.back;  //{6,3}, j = 4

三:联合数组

1:基础知识

充分利用内存里的离散空间,不连续空间;

索引值可以为整型,字符型,一维数组

2:表示

data_type associative_array_name[*/string]

3:示例

在内存中的存储

说明:标准数组存储时,所有的存储器都用到了;联合数组使用内存时,稀疏。

4:操作

遍历(foreach),first,next,prev,delete,exits

四:数组的操作

1:算术运算

sum,product,and,or and xor

例如下面是sum举例:

说明:on.sum返回on的位数,即一位,即值1(5个1相加取一位);将on.sum赋给位宽为8bit的summ,则返回值5。

2:sort,rsort(反过来排序),reverse,shuffle(打乱排序),find_first,find_first_with_index,unique(得到元素不重复的数组)

//find_index with (item > 3); //元素大于3的索引值

3:sum的扩展用法

//d.sum(x) with ((x>7)*x); //9*9+8*8

五:总结

Fixed Arrays: 在compile time时知道size;连续内存存放,支持多维

Dynamic Arrays:run time时得到size;连续内存;

Queues Arrays:FIFO/Stack

Associative Arrays:离散数据内存,索引可以为数字或者字符串;用于hash

六:结构体

将变量放在一起,比如总线协议放在结构体里;默认是unpacked存放

1:示例

使用:Instruction_Word.address = 24'hF00000;

2:packed存放(加入packed关键字)

第一个数据放在内存的左侧。

七:枚举类型

1:表示

enum {red,green.blue} RGB  //red = 0,green = 1,blue = 2

2:枚举值类型

**显式指定枚举值 enum{one = 1, five = 5, ten = 10} state;

**部分显式指定值

3:枚举指定类型

enum bit {false,true} Boolean;

enum logic [1:0] {WAITE,LOAD,READY} state;

enum logic [1:0] {

WAITE=3'b001,

LOAD=3'b010,

READY=3'b100} state;  //error;因为枚举类型是两位,赋值超过两位

emum logic {on = 1'b1,OFF=1'bz} out;

sv队列和动态数组的区别_systemverilog学习(4)动态数组相关推荐

  1. sv队列和动态数组的区别_systemverilog中几种数组类型的基础知识

    在开始今天的内容之前,先来一个小玩具,一条用来删除文件的bat语句.我发现questasim跟vim同时对文本进行修改的时候,同目录下会产生很多很多很多的中间文件,所以很久不用的bat又要搬出来了.语 ...

  2. C语言中指针与数组的区别,C语言 指针与数组的详解及区别

    C语言 指针与数组的详解及对比 通俗理解数组指针和指针数组 数组指针: eg:int( *arr)[10]; 数组指针通俗理解就是这个数组作为指针,指向某一个变量. 指针数组: eg:int*arr[ ...

  3. java动态修改class_Java Agent入门学习之动态修改代码

    前言 最近用了一下午总算把Java agent给跑通了,本篇文章记录一下具体的操作步骤,以免遗忘.下面话不多说,来一起看看详细的介绍: 通过java agent可以动态修改代码(替换.修改类的定义), ...

  4. 面向动态图网络嵌入/表示学习的动态图/网络数据集整理

    Dynamic-graph-dataset Dynamic graph/network dataset for dynamic graph/network embedding/representati ...

  5. 真假美猴王-Numpy数据与Python数组的区别与联系

    https://www.toutiao.com/a6675926132304380430/ Numpy,是python中的一个矩阵计算包,功能类似matlab的矩阵计算.Numpy的诞生弥补了下面提到 ...

  6. python数组和函数的区别_真假美猴王-Numpy数据与Python数组的区别与联系!

    Numpy,是python中的一个矩阵计算包,功能类似matlab的矩阵计算.Numpy的诞生弥补了下面提到的两项的不足,numpy提供了两种基本的对象:ndarray(N-dimensional a ...

  7. python 创建空的numpy数组_真假美猴王-Numpy数据与Python数组的区别与联系

    Numpy,是python中的一个矩阵计算包,功能类似matlab的矩阵计算.Numpy的诞生弥补了下面提到的两项的不足,numpy提供了两种基本的对象:ndarray(N-dimensional a ...

  8. shell脚本中数组的使用_Shell脚本中的数组

    shell脚本中数组的使用 Knowing how to work with arrays in shell scripts will help you work with larger datase ...

  9. sv队列和动态数组的区别_Go 刷 LeetCode 系列:经典(7) 设计双端队列

    设计实现双端队列. 你的实现需要支持以下操作: MyCircularDeque(k):构造函数,双端队列的大小为k.insertFront():将一个元素添加到双端队列头部.如果操作成功返回 true ...

最新文章

  1. 为何需要Android组件化,如何搭建?
  2. 图像边缘检测,检测亦或简化
  3. 关于ESP8266 GPIO中断使用的总结
  4. aac文件损坏修复软件_SysTools Outlook Recovery Tool : 修复损坏的Outlook PST文件的先进的软件...
  5. java 抽象接口类,Java接口(interface)和Java抽象类(abstract class)的区别(详诉版)
  6. 光纤收发器常见故障及解决方法
  7. 冈萨雷斯《数字图像处理》读书笔记(九)——形态学图像处理
  8. 【转】URL和URI的区别
  9. java lucene cms_JEECMSv6标签使用之[@cms_lucene_list]
  10. mysql libs 5.1.73_【MySQL案例】mysql-libs-5.1.73-3.el6
  11. iOS 的TextView的常规用法
  12. Vue 过滤器filters
  13. React context 丢失问题
  14. IE8卸载再回到IE6
  15. bzoj4816[SDOI2017]数字表格
  16. 计算机读不到移动硬盘怎么办,电脑读出来移动硬盘,但是显示不出来怎么办
  17. 【技术分享】Windows10下安装深度学习常用软件教程分享
  18. Linux笔记本电脑大调查:程序员最喜欢的电脑是什么配置?
  19. 35岁的网络工程师入行需要注意什么?
  20. 图片文字识别软件有哪些?这几款软件亲测非常好用

热门文章

  1. 银河足球队 android 8,银河足球队手机版_银河足球队安卓游戏v1.0.1-游迅网
  2. java 安装后找不到文件_(已解决)jdk安装 系统找不到文件C:\ProgramData\Oracle\Java\javapath\java.exe...
  3. 强网杯2021 CipherMan (内存取证分析)
  4. CTF(pwn)-格式化字符串漏洞讲解(一)
  5. Python基础教程:列表字典的键值修改
  6. python的输入和格式输出
  7. Python基础练习题:猜数字小游戏
  8. python反射和高阶内置方法
  9. python flask route中装饰器的使用
  10. python for循环中累加变量是否要清零