本文已参与「新人创作礼」活动,一起开启掘金创作之路!
关于动态数组:
Ø 动态数组的容量大小是在程序运行的过程中根据需要指定的;
Ø 动态数组的创建是通过new[]实现的,不是new();
Ø new[]中指定的数字为该动态数组中元素个数;
Ø 对于动态数组开辟空间除了使用new[]方式之外,还可以间接的通过复制其他已经初始化的数组实现;
Ø 可以通过new[]方式开辟新空间的同时复制原数组(另一个被复制数组)中的内容;
- 只要基本数据类型相同,定宽数组和动态数组之间就可以相互赋值。
- 压缩数组到非压缩数组,以及非压缩到压缩数组之间的复制需要转换才能实现。
这其实是一个压缩数组,要注意加深对压缩数组的理解。
- 在类外部只能访问public的类成员。
- 2态数据类型不初始化,则默认是0;4态数据类型不初始化,则默认是x。
- == 不对x,z进行判断,当出现x,z的时候,结果为x。所以,c=x;
- === 可以对x,z进行判断,只有各个比特位上的数都对应,结果才为1. 但是0和x不对应,所以 d=0
-
二值变量缺省值为0。 整数赋值: 1.直接赋值,符号加一串数字位,按有符号处理。 \
-
基常数赋值,
's为有符号,或者有-也是有符号,其余无符号。 c = -3'b001,因为c是二态无符号数,这里c被赋值了负数,所以应该以补码形式表现即111,然后3bit赋值给4bit,扩展位为符号位。因此为1111。 -
下列关于System Verilog中任务(task)和函数(function)的说法错误的是:
A. task中参数的缺省类型是 logic
B. task中参数的缺省方向是 input
C. function 必须有返回值
D. task即使包含多行语句也可以不使用begin...end
- task即使包含多行语句也可以不使用begin...end
- 在System Verilog中,可以将函数声明为void类型,不产生返回值。
- 对于systemverilog,下面对于静态数组描述不正确的是:
A.包含两种,压缩和非压缩
B. [5:0]bit[3]中,压缩的维数是6
C. bit\byte\reg等数据类型可以定义为压缩数组
本题答案是C,byte ,shortint, int, longint,integer不能是压缩数组的类型(具有预定义宽度的整数类型不能声明成压缩数组)。
压缩数组元素只能是位形式的数据类型:包括logic, bit, reg,其它压缩数组,压缩结构体及压缩联合体
这里要注意foreach的用法:foreach(md[i,j])
- 对于systemverilog的字符串 ,描述不正确的是
A. 字符串文本为一个具有宽度为 8 的整数倍的压缩数组
B. 当字符串类型被赋值到一个大小不同、 整型压缩数组变量的时候, 它或者被截短到变量的大小或者在左侧填补 0
C. 如果在字符串声明中没有指定初始值, 会被初始化成空字符串
D. “str1” <="str2" 逻辑判断成立,返回
这题的答案是B,
在Verilog 中, 字符串文本为一个具有宽度为8的整数倍的压缩数组。在 SV 中, 字符串文本的表现行为与 Verilog相同,但SV支持额外的字符串类型,注意两者是不一样的。字符串类型不能送给到整型压缩数组变量
这个知识点就单纯记忆一下就行,不一定能用到,会做题就行