错误:HDLCompiler:1731-找到运算符“ +”的“ 0”定义,无法确定“ +”的确切重载匹配定义

时间:2019-01-07 09:28:43

标签: vhdl

我的vhdl代码中有错误。我正在使用ISE设计。 我该怎么做才能解决我的问题?

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all;
use ieee.math_real.all;

library std;
use std.standard.all;
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity neuron2 is
    port ( A : in integer :=1;
                B : in integer :=2;

                D : out real);
    constant C : real := 1.25;
    constant E : real := 2.25;
    end neuron2;

architecture Behavioral of neuron2 is

begin

  D <= A+B+C+E;

end Behavioral;

我收到以下错误:

  

错误:HDLCompiler:1731-   “ C:\ Users \ Ida \ Downloads \ Mojo-Base-VHDL \ percobaan2 \ neuron2.vhd”行   51:找到运算符“ +”的“ 0”定义,无法确定确切的定义   “ +”的重载匹配定义ERROR:HDLCompiler:854-   “ C:\ Users \ Ida \ Downloads \ Mojo-Base-VHDL \ percobaan2 \ neuron2.vhd”行   46:由于先前的错误,忽略了该单元。

1 个答案:

答案 0 :(得分:0)

A和B是整数,而C和E是实数。在添加之前,必须将A和B类型转换为实数:

D <= real(A + B) + C + E;

注意:实类型不能综合,因此我认为这是仅仿真代码。