Warm tip: This article is reproduced from serverfault.com, please click

vhdl-为什么我不应该使用“输入”而不是“输入”或“输出”?

(vhdl - Why shouldn't I be using 'inout' rather than 'in' or 'out'?)

发布于 2020-12-08 17:14:20

我是VHDL和硬件编程的新手,我对端口映射和信号有疑问。

我想读写当前项目中的一个特定信号,但我的讲师告诉我,我不应该使用“ inout”,但是当我问他为什么不详细说明时。有人可以告诉我为什么我不应该使用它而不是定义“输入”或“输出”信号吗?

很抱歉,如果这是一个愚蠢的问题,或者以前曾有人问过。

谢谢!

Questioner
George
Viewed
11
Rich Maes 2020-12-09 01:58:05

这是特定于VHDL的。当你使用模式定义端口时,你将为该端口提供某些架构属性。数据从端口进入模式为IN的实体。数据仅从实体流出,用于模式为OUT的端口。因此,你无法读取实体内部的OUT端口。假设你有一个foo:out std_logic; 你不能编写一个表示fi <= foo的表达式;编译时这会导致错误。

我没有提出使foo的情况:inout std_logic; 但这也许是一种合理的做法。输入允许进行分配和阅读。

如果我不需要将该端口作为实体上的输入,则可以亲自将其分配为OUT。我本可以使用内部信号进行分配和读取,并从信号驱动输出端口。