IC验证_systemverilog
- 1.信号声明
- 2.变量类型
- 3.数据类型
- 4.符号
1.信号声明
语法:
变量类型 信号类型 符号转换 位宽 信号名 深度;
2.变量类型
(1)说明:
systemverilog中的信号类型主要分为线网类型(wire)和变量类型(var);
(2)关键字
wire //线网类型
var //变量类型
(3)特点:
线网类型的信号只能进行连续赋值,变量类型的信号既可以连续赋值又可以在过程块中进行赋值;
(4)使用注意点:
使用时,线网类型的信号要用wire关键字进行修饰,变量类型的信号要用var关键字进行修饰,缺省默认是变量类型;
在systemverilog中,reg类型是变量类型中的一种,所以我们一般直接使用var类型;
在systemverilog中,var类型既可以连续赋值又可以在过程块中赋值,而在verilog中,reg类型只能在过程块中赋值;
(5)例子
结果:
注意:如果w2类型声明是wire logic w2;时,w2就只能用连续赋值;而var类型的信号既可以连续赋值又可以在过程块中赋值;
3.数据类型
(1)说明
systemverilog中数据类型有两种,四值逻辑(0,1,x,z)和二值逻辑(0,1);
(2)关键字
四值逻辑(硬件逻辑)
logic
二值逻辑:
bit //1位宽二值逻辑
byte //8位宽二值逻辑
shortint //16位宽二值逻辑
int //32位宽二值逻辑
longint //64位宽二值逻辑;
(3)使用注意点
缺省默认为四值逻辑;
二值逻辑一般会将前面的变量类型声明缺省;
4.符号
(1)说明
信号可以分为有符号数和无符号数;
(2)分类
无符号数:wire,reg,logic,bit
有符号数:byte,shortint,int,longint,integer
(3)符号转换
可以在无符号信号名前加signed关键字,将信号转换为有符号;
可以在有符号信号名前加unsigned关键字,将信号转换为无符号;
(4)注意点
二值逻辑可以直接赋值给四值逻辑,四值逻辑赋值给二值逻辑存在以下转化:
(5)例子