【问题标题】:How to add real numbers in vhdl如何在 vhdl 中添加实数
【发布时间】: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


    【解决方案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 的示例。

    【讨论】:

    • 注意VHDL包也可以通过VHDL-93工具合成
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 2016-04-26
    相关资源
    最近更新 更多