【Systemverilog】什么是数据类型(2)
1.2 定宽数组
1.2.1 数组的声明与初始化方法
1. 一维数组的声明
int instance_a[7:0] ; //二值逻辑类型,8个整数[0]、[1]......[7]
logic instance_b[3:0] ; //四值逻辑类型,4个整数[0]、[1]、[2]
【思考】若SV返回值为缺省值,logic与int返回值各是多少?wire类型若没有驱动,返回值又是什么?
2.多维数组的声明 (2种)
logic array1[4][8]; //紧凑声明
logic array2[3:0][7:0]; //完整声明
3.常量数组
int exam_1[3] = '{0,1,2} ; //注意声明与初始化方式
int exam_2[8] = '{0,2,default} ; //default默认值为1
int exam_3[4] = '{1,3{2}} ; //1,2,2,2
1.2.2 数组的基本操作
1. for操作
在C语言中,我们已经接触过for语句了。其基本格式为:for(变量定义与初始化;条件限制语句;变量操作(自增/自减))
for (int j=0 ; j<5; j++)
2. foreach遍历操作(重要)
foreach ( tt[i,j] ) //默认i,j已经定义,直接使用即可
$display ("tt[%0d][%0d] = %0d",i , j ,tt[i,j]);
3. 复制与比较
initial begin
int [7:0] array1[4] = '{0,1,2,3} ;
array2[4] = '{4,5,6,7} ;
//数组复制
array2 = array1 ; //将array1的值赋值给array2
//数组比较
$display(" array1 %s array2 ", (array1 == array2)? "==": "!=") ;
今天的定宽数组介绍到这里啦,欢迎您的批评指正!下次我们将介绍动态数组的有关内容。