SystemVerilog学习之数据类型

1.简述

入职两个月了,都是使用System Verilog做验证。之前直接用Verilog编写testbench,这段时间使用sv后发现,确实很有必要转用sv做验证。

2.正文

1)数据类型

类型 描述 符号
logic 四状态,相当于Verilogreg和wire功能
bit 双状态,自定义位宽 默认无符号
int 双状态,32bit 有符号
byte 双状态,8bit 有符号
shortint 双状态,16bit 有符号
longint 双状态,64bit 有符号
integer 四状态,32bit 有符号
time 四状态,64bit 无符号
real 双状态,64bit 双精度浮点,相当于double
shortreal 双状态,32bit 相当于float

注:

  • 四状态为:0、1、x、z;双状态为:0、1。
  • 在verilog中reg型数据只能在always中赋值,使用assign赋值则要使用wire类型,在sv中logic既可以在always中赋值也可以在assign中使用,但是不能在多处驱动。

2) 定宽数组

int array0[0:15];		//16个整数
int array1[16];			//16个整数
int array2[0:7][0:3];	//二维数组
int array3[8][4];		//二维数组 
array3[5][2]=1;			//数组赋值
bit [7:0] unpack[3];	//非合并数组,分配三个字空间,但只存放低字节
int ascend[4]=`{0,1,2,3};//常量数组前面加 “ ` ”

3)数组的操作

initial begin
	bit [31:0] src[5],dst[5];
	for(int i=0;i<$size(src);i++)
		src[i] = i;
	foreach(dst[j])
		dst[j]=src[j]*2;
end

欢迎关注我的公众号:芯王国,有更多的FPGA&数字IC的技术分享,还可以获取开源FPGA项目!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40377195/article/details/108351043