所以我试图制作一个程序,在一个简单的条件下执行加法或减法,但我的 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('0' & NUM1)
关于VHDL Quartus 无法识别 "+"和 "-",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53836185/