8 位加法器减法器给出语法错误

8 bit adder subtractor gives a syntax error

我正在尝试制作一个通用的 8 位加法器减法器,我写了所有代码位,它在第 "big_mode <= (others => mode);" 行给我一个语法错误。有帮助吗?

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
ENTITY AdderSubtractor IS
GENERIC(n: NATURAL :=8);
    PORT ( Number1 : IN  STD_LOGIC_VECTOR (n-1 DOWNTO 0);
Number2 : IN  STD_LOGIC_VECTOR (n-1 DOWNTO 0);
Mode : IN STD_LOGIC;
Sum : OUT STD_LOGIC_VECTOR (n-1 DOWNTO 0);
Carry : OUT  STD_LOGIC);
END AdderSubtractor;
 ARCHITECTURE Behavioral OF AdderSubtractor IS
SIGNAL Tmp: STD_LOGIC_VECTOR (n DOWNTO 0);
SIGNAL big_mode: STD_LOGIC_VECTOR (n DOWNTO 0);
BEGIN
zeros<=(others=>'0');
big_mode <= (others => mode);  
tmp<=('0' & Number1 + (('0' & Number2) xor big_mode)+mode);
Sum <= Tmp(n-1 DOWNTO 0);
Carry <= Tmp(n);
END Behavioral;

zeros 未在您的示例代码中声明。在您声称有语法错误的那一行之前(显然没有)。

注释掉

-- zeros<=(others=>'0');

你的代码分析。

您可能可以评论:

-- use ieee.std_logic_arith.all; 

您没有使用它的任何声明(到目前为止)。

您也可以使用包 numeric_std_unsigned 而不是 Synopsys 包。

您使用的是什么 VHDL 工具? (您没有向我们展示语法错误的确切措辞)。