在VHDL中,如何获得n个数字为1的二进制数字?

时间:2019-09-19 18:57:53

标签: vhdl

我想使用uniform()生成一个随机数。最大值必须等于N位整数的最大值。

所以我需要生成n个'1'的二进制数的值

谢谢

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));