我想使用uniform()生成一个随机数。最大值必须等于N位整数的最大值。
所以我需要生成n个'1'的二进制数的值
谢谢
答案 0 :(得分:1)
制服为您提供了0.0到1.0之间的实数。您需要对其进行缩放以适合所需的值范围,并可以选择将其转换为std_logic_vector。
例如,对于N位目标值:
uniform(seed1, seed2, rand);
rand_int := integer(floor(rand*2.0**N));
sig <= std_logic_vector(to_unsigned(rand_int,N));