0

我正在用 VHDL 编写一个基本组合电路,它有一个带有两个输入 a 和 b 的与门。这个“t”的输出与否定的输入“c”进行或运算。然后这个输出“s”与“a”进行与非,得到最终输出“d”。

这是代码。

library ieee;
use ieee.std_logic_1164.all;
entity logicgate is
port(a,b,c: in std_logic;
d: out std_logic);
end logicgate;

architecture arch_logicgate of logicgate is
begin
signal s: std_logic;
signal t: std_logic;
t<= a and b;
s<= (not c) or t;
d<= a nand s;
end arch_logicgate;

成绩单:

-- 编译逻辑门的架构arch_logicgate
# ** 错误:C:/Modeltech_pe_edu_10.1d/examples/logicgate.vhdl(12): near "signal": 语法错误
# ** 错误:C:/Modeltech_pe_edu_10.1d/examples/logicgate.vhdl(14): (vcom-1136) 未知标识符“s”。
#
# ** 错误:C:/Modeltech_pe_edu_10.1d/examples/logicgate.vhdl(14):类型错误将中缀表达式“nand”解析为类型 ieee.std_logic_1164.STD_LOGIC。
# ** 错误:C:/Modeltech_pe_edu_10.1d/examples/logicgate.vhdl(15): VHDL 编译器退出

我知道我错过了基础知识。请帮帮我。

4

1 回答 1

4

第一条错误消息:

** Error: C:/Modeltech_pe_edu_10.1d/examples/logicgate.vhdl(12): near "signal": syntax error

出现是因为执行区域中有声明。

将它们放在声明区域中,之前begin

architecture arch_logicgate of logicgate is
   signal s: std_logic;
begin
   ...
于 2013-02-17T01:16:17.430 回答