案例一。通过使用 $urandomrange。
案例二.不应该使用 $randomrange
注意:取范围等于数组大小或大于数组大小。并且所有元素都有唯一的值
使用 $Urandom_range 的代码 不使用 $urandom_range 的代码
使用$random_range,不断生成该范围内的随机数,直到得到一个未使用过的随机数 // 或浏览示例
module top;
int array[10], list[$];
initial begin
foreach(array[i]) begin
while( (array[i] = $urandom_range(200,100) ) inside {list})
;
list.push_back(array[i]);
end
$display("%p", array);
end
endmodule
仅当范围大于或等于数组元素数时才有效。随着数组大小的增加,效率也非常低。
这里使用 randomize 也是一样的
module top;
int array[10], list[$];
initial begin
randomize(array) with {foreach(array[i]) array[i] inside {[100:200]};
unique{array};
};
$display("%p", array);
end
endmodule