发现VHDL';0';“运营商”的定义+&引用;无法确定“的确切重载匹配定义”+&引用;

发现VHDL';0';“运营商”的定义+&引用;无法确定“的确切重载匹配定义”+&引用;,vhdl,Vhdl,我有一个问题,这一行B1我认为STD_逻辑是一个位(我的vhdl经验大约20年前),你不能在它上面做这种操作。 所以你至少需要一个能保存结果的输出。。。 输出B2和B3未使用 我建议您从这里尝试一下加法、减法和乘法的符号运算符和算术运算符在VHDL中都具有传统的数学意义(IEEE Std 1076-2008 9.2.5加法运算符、9.2.6符号运算符、9.2.7乘法运算符)。数学处理数字(算术值)。逻辑运算符处理布尔代数中的二进制值。很明显,使用中的数学包子句都没有为std_逻辑提供重载。如果不

我有一个问题,这一行
B1我认为STD_逻辑是一个位(我的vhdl经验大约20年前),你不能在它上面做这种操作。
所以你至少需要一个能保存结果的输出。。。
输出B2和B3未使用


我建议您从这里尝试一下

加法、减法和乘法的符号运算符和算术运算符在VHDL中都具有传统的数学意义(IEEE Std 1076-2008 9.2.5加法运算符、9.2.6符号运算符、9.2.7乘法运算符)。数学处理数字(算术值)。逻辑运算符处理布尔代数中的二进制值。很明显,使用中的数学包子句都没有为std_逻辑提供重载。如果不提供输入和预期输出,就不清楚您打算做什么。这是布尔代数还是数学数?这个答案并没有澄清这个问题。依靠问题的外部链接,作者可以发现不清楚问题的答案,这并不能启发将来使用Stackoverflow作为搜索资源的读者。
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;