【发布时间】:2016-06-16 18:51:47
【问题描述】:
我正在尝试做这个添加
time_count_real <= time_count_real + 0.000_000_02 ;
但我遇到了这个错误
cannot synthesize non-constant real objects or values
那么我怎样才能添加实数呢?
【问题讨论】:
标签: vhdl
我正在尝试做这个添加
time_count_real <= time_count_real + 0.000_000_02 ;
但我遇到了这个错误
cannot synthesize non-constant real objects or values
那么我怎样才能添加实数呢?
【问题讨论】:
标签: vhdl
对于综合,您需要以二进制格式(定点或浮点,取决于您想要的范围)表示实数。 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 的示例。
【讨论】: