因此,我尝试制作一个程序,在一个简单的条件下执行加法或减运算,但是我的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;发布于 2018-12-18 15:37:25
您没有包含任何可以对std_logic_vectors进行算术运算的包。('0‘& NUM1)仍然是一个std_logic_vector,您需要将它转换为一个未签名/签名的:
unsigned('0' & NUM1)https://stackoverflow.com/questions/53836185
复制相似问题