LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
备注:
使用SIGNED和UNSIGNED必须申明USE IEEE.STD_LOGIC_ARITH.ALL,并且SIGNED和UNSIGNED不支持逻辑运算。
SIGNAL din1 :IN STD_LOGIC_VECTOR(1 DOWNTO 0);
SIGNAL din2 :IN STD_LOGIC_VECTOR(1 DOWNTO 0);
SIGNAL dout :OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
...
dout <= din1 + din2; --不合法(不支持算术运算)
dout <= din1 AND din2; --合法(支持逻辑运算)
添加IEEE.STD_LOGIC_ARITH.ALL后
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
...
SIGNAL din1 :IN STD_LOGIC_VECTOR(1 DOWNTO 0);
SIGNAL din2 :IN STD_LOGIC_VECTOR(1 DOWNTO 0);
SIGNAL dout :OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
...
dout <= din1 + din2; --合法(支持算术运算)
dout <= din1 AND din2; --合法(支持逻辑运算)