VHDL Quartus 不识别“+”和“-”

VHDL Quartus Does Not Recognize "+" and "-"

所以我尝试编写一个程序,根据一个简单的条件执行加法或减法,但我的 VHDL 编译器一直告诉我它无法识别“+”和“-”的含义。 我也不确定我正在使用的库。

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.NUMERIC_STD.ALL;

ENTITY ADDSUBS IS
PORT( CNTRL: in std_logic;
      NUM1, NUM2: in std_logic_vector(7 downto 0);
      SUM: out std_logic_vector(8 downto 0));
END ADDSUBS;

ARCHITECTURE A4 OF ADDSUBS IS
BEGIN
SUM <= ('0' & NUM1) + ('0' & NUM2) WHEN (CNTRL='0') ELSE
       ('0' & NUM1) - ('0' & NUM2) WHEN (CNTRL='1');
END;

您还没有包含任何可以用 std_logic_vectors 进行算术运算的包。 ('0' & NUM1) 仍然是 std_logic_vector,您需要将其转换为 unsigned/signed:

unsigned('0' & NUM1)