初始化并遍历多维数组
module data_type();
int arr[3][2]; //int arr[0 : 2][0 : 1]
initial begin
arr = '{'{1, 2}, '{3, 4}, '{5, 6}};
foreach(arr[i,j])
$display("arr[%0d][%0d] = %0d", i, j, arr[i][j]);
$finish;
end
endmodule
数组的索引顺序
module data_type();
bit [3 : 0] [4 : 0] arr [1 : 0][2 : 0];
initial begin
foreach(arr[i, j, k, l])
$display("arr[%0d][%0d][%0d][%0d]", i, j, k, l);
$finish;
end
endmodule
================================ 2022.03.25
队列
module dinamic();
bit [31 : 0] arr [];
int j = 4,
q[$] = {1, 2, 3},
q1[$] = {7, 8};
initial begin
//arr = '{1, 2, 3, 4};
//arr = new[5];
//foreach(arr[i]) arr[i] = i;
//foreach(arr[i]) $display(arr[i]);
q.insert(1, j);
foreach(q[i]) $write("%0d", q[i]);
$display();
q.insert(2, q1);
foreach(q[i]) $write("%0d", q[i]);
$display;
q.push_front(0);
q.push_back(9);
foreach(q[i]) $write("%0d", q[i]);
$display;
q.pop_front();
q.pop_back();
foreach(q[i]) $write("%0d", q[i]);
q.delete();
end
endmodule
insert在前;可以插入队列;front在高位;
关联数组
关联数组只能用foreach,因为是稀疏分布的。
module associative_array();
int switch[string];
initial begin
switch["a"] = 1;
switch["b"] = 2;
foreach(switch[s])
$display("switch[%s] = %0d", s, switch[s]);
end
endmodule
=====================2022.03.26
数组的方法
数组缩减方法
数组定位方法
数组排序方法
module arr_method();
bit arr [10];
int total;
int q[4] = '{1, 1, 2, 3};
int tmin[$];
int tmax[$];
int tuni[$];
int tfind[$];
initial begin
foreach(arr[i]) arr[i] = i;
$display("%0d", arr.sum);
$display("%0d", arr.sum + 32'd0);
total = arr.sum;
$display("%0d", total);
tmin = q.min();
foreach(tmin[i]) $write("%0d", tmin[i]);
$display();
tmax = q.max();
foreach(tmax[i]) $write("%0d", tmax[i]);
$display();
tuni = q.unique();
foreach(tuni[i]) $write("%0d", tuni[i]);
$display();
tfind = q.find() with (item > 1);
foreach(tfind[i]) $write("%0d", tfind[i]);
$display();
q.sort();
foreach(q[i]) $write("%0d", q[i]);
$display();
q.rsort();
foreach(q[i]) $write("%0d", q[i]);
$display();
q.reverse();
foreach(q[i]) $write("%0d", q[i]);
$display();
q.shuffle();
foreach(q[i]) $write("%0d", q[i]);
$display();
end
endmodule
数组缩减方法的返回值类型为元素类型;定位方法返回值为队列;数组排序方法改变原数组,shuffle和reverse不能有with,他们是对整个数组进行操作。