如何在vhdl中添加实数

时间:2014-04-08 12:13:02

标签: vhdl

我正在尝试添加

time_count_real <= time_count_real + 0.000_000_02 ;

但我遇到了这个错误

cannot synthesize non-constant real objects or values

那我怎样才能添加实数?

1 个答案:

答案 0 :(得分:1)

对于合成,您需要以二进制格式表示实数(定点或浮点,具体取决于您想要的范围)。 VHDL-2008 provides a few packages具有转换功能,可以让您更轻松。例如,如果您使用浮点数:

use ieee.float_pkg.all;

...

signal float_real  : real;
signal float_bin32 : float32;
signal float_slv   : std_logic_vector(31 downto 0);
signal float_sum   : float32;

...

float_bin32 <= to_float(float_real);

float_sum <= float_bin32 + 0.002;

float_slv <= to_slv(float_sum);

请注意,最后一个语句不会转换该值;它只是将float32类型转换为std_logic_vector的示例。