SystemVerilog中数组的用法总结
定宽和动态数组初始化时需要加符号';队列不需要。
定宽数组的声明:
int lo_hi[0:15];//16个整数[0]...[15]
int c_style[16];//16个整数[0]...[15]
声明并使用多维数组:
int array2[0:7][0:3];//完整的声明
int array3[8][4];//紧凑的声明
array2[7][3]=1;设置最后一个元素
非合并数组的声明:
bit [7:0] b_unpack[3];//非合并数组
常量数组的初始化:
int ascend[4] = '{0,1,2,3};
int descend[5];
descend = '{4,3,2,1,0};
descend[0:2] = '{5,6,7};
ascend = '{4{8}};
descend = '{9,8,default:1};
在数组中使用for和foreach
intial begin
bit[31:0] src[5], dst[5];
for(int i=0; i<$size(src); i++) begin
src[i] = i;
end
end
//初始化并遍历多维数组
int md[2][3] = '{'{1,2,3}, '{4,5,6}};
initial begin
foreach(md[i,j]) begin
$display("md[%0d][%0d]=%0d",i,j,md[i][j]);
end
end
//数组的复制和比较
initial begin
bit[31:0] src[5] = '{0,1,2,3,4,5},
drs[5] = '{5,4,3,2,1,0};
//数组的比较
if(src==dst)
$display("src==dst");
dst = src; //将src赋值给dst
src[0] = 5;
end
浙公网安备 33010602011771号