VHDL 找到运算符“+”的“0”定义无法确定“+”的精确重载匹配定义
VHDL found '0' definition of operator "+" cannot determine exact overloaded matching definition for "+"
我遇到的问题是这一行 B1 <= (-c1 * (A3 + A1) + A3 + A2 - A1);
一直显示为错误。我知道这个问题已经存在于 Whosebug 上,但是 none 的解决方案对我有所帮助。我已经从头开始创建了项目,这也无济于事。我不知道下一步该怎么做,我希望有人能在这里帮助我。
提前致谢
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_arith.ALL;
use IEEE.STD_LOGIC_signed.ALL;
use IEEE.STD_LOGIC_unsigned.ALL;
use IEEE.NUMERIC_STD.ALL;
entity ParallelAdaptor is
Port ( A1 : in STD_LOGIC;
A2 : in STD_LOGIC;
A3 : in STD_LOGIC;
c1 : in STD_LOGIC;
B1 : out STD_LOGIC;
B2 : out STD_LOGIC;
B3 : out STD_LOGIC);
end ParallelAdaptor;
architecture Behavioral of ParallelAdaptor is
begin
B1 <= (-c1 * (A3 + A1) + A3 + A2 - A1);
end Behavioral;
我认为 STD_LOGIC 是一个位(我的 vhdl 经验大约是 20 年前),你不能对它进行这些操作。
所以你至少需要一个可以保存结果的输出......
并且输出 B2 和 B3 未使用...
我建议你从这里尝试一些东西https://www.nandland.com/vhdl/tutorials/tutorial-introduction-to-vhdl-for-beginners.html
我遇到的问题是这一行 B1 <= (-c1 * (A3 + A1) + A3 + A2 - A1);
一直显示为错误。我知道这个问题已经存在于 Whosebug 上,但是 none 的解决方案对我有所帮助。我已经从头开始创建了项目,这也无济于事。我不知道下一步该怎么做,我希望有人能在这里帮助我。
提前致谢
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_arith.ALL;
use IEEE.STD_LOGIC_signed.ALL;
use IEEE.STD_LOGIC_unsigned.ALL;
use IEEE.NUMERIC_STD.ALL;
entity ParallelAdaptor is
Port ( A1 : in STD_LOGIC;
A2 : in STD_LOGIC;
A3 : in STD_LOGIC;
c1 : in STD_LOGIC;
B1 : out STD_LOGIC;
B2 : out STD_LOGIC;
B3 : out STD_LOGIC);
end ParallelAdaptor;
architecture Behavioral of ParallelAdaptor is
begin
B1 <= (-c1 * (A3 + A1) + A3 + A2 - A1);
end Behavioral;
我认为 STD_LOGIC 是一个位(我的 vhdl 经验大约是 20 年前),你不能对它进行这些操作。 所以你至少需要一个可以保存结果的输出...... 并且输出 B2 和 B3 未使用...
我建议你从这里尝试一些东西https://www.nandland.com/vhdl/tutorials/tutorial-introduction-to-vhdl-for-beginners.html