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 工具? (您没有向我们展示语法错误的确切措辞)。
我正在尝试制作一个通用的 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 工具? (您没有向我们展示语法错误的确切措辞)。