1 / 5
文档名称:

Systemverilog数据类型总结.docx

格式:docx   大小:27KB   页数:5页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Systemverilog数据类型总结.docx

上传人:cby201601 2022/7/1 文件大小:27 KB

下载得到文件列表

Systemverilog数据类型总结.docx

相关文档

文档介绍

文档介绍:System verilog数据类型总结
逻辑数据类型( logic )
可替 reg 和 wire ,但是不能有多个驱动,有多个驱动的信号还是要定义成wire 型
双状态数据类型(只有0/1 两个状态 )
无符号:bit
有符号System verilog数据类型总结
逻辑数据类型( logic )
可替 reg 和 wire ,但是不能有多个驱动,有多个驱动的信号还是要定义成wire 型
双状态数据类型(只有0/1 两个状态 )
无符号:bit
有符号:byte
shortint
int
longint
$sunknown 操作符可检查双状态数据类型位是否出现X、 Z 状态,若出现,返回 1
例 If ($sunknown(iport)==1)
$display( )
定宽数组
) 声明:
在数组声明中允许给出数组宽度
如: int c_style[16] 等同于 int c_style[15:0]//16个整数
多维数组
//8 行 4 列数组
// 设置最后一个元素为 1
int array[8][4];
int array [7:0][3:0] ; array[7][3]=1
从越界地址中读数,SV返回数组元素缺省值
四状态类型,返回X;
双状态类型,返回0 ;
存放:
32 比特字边界存放数组元素
非合并数组声明 : bit[7:0] b_unpack[3]
低位存放数据
5)常量数组
声明:单引号和大括号初始化数组
个元素初始化
为前三个元素赋值
个值全为 1
为没有赋值元素, 指定缺省值 1, a='{3,2,1,1}
例: int a[4] = '{0,1,2,1}; //4 int b[5];
a[0:2] = '{1,2,2};//
b = '{5{1}};//5
a= '{3,2,default:1} //
1 ) 遍历数组---for /foreach
foreach 要指定数组名,且要用方括号中给出索引变量
initial begin
bit[31:0] arc[5],drc[5];
for(int i=0;i<$size(src);i++)
src[i]= i;
foreach (drc[j])
drc[j]=src[j]*2;
end
多维数组遍历foreach 语法用 [ i,j], 如 int mid[2][3]='{'{1,2,3},'{3,4,5}}
foreach(mid[i,j])
2)比较和复制
聚合比较和赋值(适用于整个数组而非单个元素)
比较 只有等于和不等于比较
可使用?:操作符比较
$display ("src[1:4] %s dst[1:4]", src[1:4]==drc[1:4]? "==":"!==");
3)赋值src=drc // drc 所有元素赋值给src
src[3]=4;//第三个元素赋值为 4
4)同时使用数组下标和位下标
如指定第一个数组的第一位和第二位:
bit[31:0] src[5] = '{5{5}};
$display ("src[0],,//'b101
src[0][2:1] );//'b10
5)合并数组
可以看成
需要等待