【发布时间】:2020-12-14 00:02:37
【问题描述】:
我的问题是这条线B1 <= (-c1 * (A3 + A1) + A3 + A2 - A1); 一直显示为错误。我知道这个问题在 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;
【问题讨论】:
-
符号运算符和用于加法、减法和乘法的算术运算符在 VHDL 中都有常规的数学含义(IEEE Std 1076-2008 9.2.5 加法运算符,9.2.6 符号运算符,9.2.7 乘法运算符)。数学处理数字(算术值)。逻辑运算符处理二进制值,即布尔代数的域。很明显,use 子句中的数学包都没有为 std_logic 提供重载。如果不提供输入和预期输出,您将不清楚您的意图。这是布尔代数还是数学数字?
标签: vhdl