如何在vhdl中使用三输入逻辑门?

如何在vhdl中使用三输入逻辑门?,vhdl,Vhdl,我正在学习vhdl,并且正在尝试使用3输入与非门。我的密码是: G => (A nand B nand C) after 3 ns; 但这并没有编译。哦,我想我可能知道 G <= (A nand B nand C); G我不是VHDL方面的专家,但我认为您有几个错误-可能是: G <= not (A and B and C) after 3 ns; G该行的“3ns后”部分是什么?请容忍我,我已经好几年没有这样做了。另外,您是否有任何相关的错误消息?@Akron:3ns后

我正在学习vhdl,并且正在尝试使用3输入与非门。我的密码是:

G => (A nand B nand C) after 3 ns;
但这并没有编译。

哦,我想我可能知道

G <= (A nand B nand C);

G我不是VHDL方面的专家,但我认为您有几个错误-可能是:

G <= not (A and B and C) after 3 ns;

G该行的“3ns后”部分是什么?请容忍我,我已经好几年没有这样做了。另外,您是否有任何相关的错误消息?@Akron:3ns后的
仅用于模拟。它可以让模拟器正确地模拟真实硬件的门延迟。你可以在合成时把它留在代码中,但是合成器会忽略它。为了科学起见,你应该试着运行(A和B和C),看看它是否给出与否相同的结果(A和B和C)。我认为他们是一样的,但肯定知道这一点会很有趣。保罗是对的:nand不通勤。在VHDL中写入
a和b和c是非法的。是的,这就是问题所在。我只是有点误导,因为任务只允许使用与非门和非门。谢谢你的帮助。你不能这样上下班。你可以添加括号,例如,
g没有括号,它不会仍然像你说的那样使用你添加的括号吗?我现在没有办法尝试,但是@Philippe在对我的回答的评论中确认这是非法的哦,这很有趣。很高兴知道。Nand不会转换:
('0'Nand'0')和'1'='0'
但是
'0'Nand('0'Nand'1')='1'
这就是为什么VHDL不允许
a和b Nand c