【问题标题】:Why shouldn't I be using 'inout' rather than 'in' or 'out'? [duplicate]为什么我不应该使用“inout”而不是“in”或“out”? [复制]
【发布时间】:2020-12-08 17:14:20
【问题描述】:

我对 VHDL 和硬件编程比较陌生,我对端口映射和信号有疑问。

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

对不起,如果这是一个愚蠢的问题或以前有人问过。

谢谢!

【问题讨论】:

标签: vhdl fpga vivado


【解决方案1】:

这是特定于 VHDL 的。当您使用模式定义端口时,您将赋予该端口某些架构属性。数据从模式为 IN 的端口流入实体。对于模式为 OUT 的端口,数据仅流出实体。因此,您无法读取实体内部的 OUT 端口。假设你有一个 foo: out std_logic;你不能写出 fi

我并不是要制作 foo: inout std_logic;但这可能是这样做的一个理由。 inout 允许分配和读取。

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

【讨论】:

  • 仅供参考:VHDL 2008 允许读取输出端口
  • -2008 中的模式输出端口与模式缓冲区的行为相匹配,可用于依赖于标准早期版本的实现。
猜你喜欢
  • 2012-10-08
  • 2015-08-13
  • 2021-09-13
  • 1970-01-01
  • 2011-06-19
  • 1970-01-01
  • 2016-05-23
  • 2010-09-26
  • 2012-09-18
相关资源
最近更新 更多