在约束随机标量 的同时,我们还可以对随机化的数组进行约束
class dyn_size;
rand logic [31:0] d[]; //随机化d[]数组;
constraint d_size (d.size() inside {[1:10]};) //调用d.size对数组长度范围进行约束
endclass
动态数组分别可以对其长度和内容做随机化处理。此外,还可以通过在约束中结合数组的其它方法sum(), product(), and(), or()和xor()。
class good_sum5;
rand uint len[];
constraint c_len{
foreach (len[i]) len[i] inside {[1:255]};
len.sum() < 1024;
len.size() inside {[1:8]};
}
endclass
本题目中,要求随机出来的数组 元素满足(1)个数在1-8 之间;每个数组的数值大小在1-255之间;每个数组的求和要小于1024。
class UniqueSlow;
rand bit