variable-assignment - 如何从 VHDL 中的内部架构写入两个输出端口?

标签 variable-assignment instantiation vhdl

我在尝试将组件连接到 VHDL 父层次结构的两个输出端口时遇到问题。由于物理连接只能通过“端口映射”语句完成,因此无法将本地信号连接到多个输出端口。这是一个例子:

enter image description here

以上电路的描述应该是smth。像这样:

entity HIER is
port (
    IN1 : in bit;
    OUT1, OUT2 : out bit);
end hier;

architecture HIER_IMPL of HIER is 
   component BUF is 
      port (a : in bit; o : out bit);
   end component;
begin
   BUF1 : BUF port map (a => IN1, o => OUT1, o => OUT2);
end HIER_IMPL;

但是,将输出端口“o”双重分配给 OUT1 和 OUT2 将不起作用,因为这在 VHDL 中是被禁止的。

最佳答案

为什么您不能创建内部信号并使用该信号像这样驱动两个输出端口?

entity HIER is
port (
    IN1 : in bit;
    OUT1, OUT2 : out bit);
end hier;

architecture HIER_IMPL of HIER is 
   signal temp : bit;
   component BUF is 
      port (a : in bit; o : out bit);
   end component;
begin
   BUF1 : BUF port map (a => IN1, o => temp);
   OUT1 <= temp;
   OUT2 <= temp;

end HIER_IMPL;

如果这不可能,那这个怎么样?

entity HIER is
port (
    IN1 : in bit;
    OUT1, OUT2 : out bit);
end hier;

architecture HIER_IMPL of HIER is 
   component BUF is 
      port (a : in bit; o : out bit);
   end component;
begin
   BUF1 : BUF port map (a => IN1, o => OUT1);
   BUF2 : BUF port map (a => IN1, o => OUT2);
end HIER_IMPL;

关于variable-assignment - 如何从 VHDL 中的内部架构写入两个输出端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12144019/

相关文章:

php - 这个 'or' 在 PHP 赋值语句的左侧有什么作用?

machine-learning - 在贝叶斯网络中,节点 "instantiated"是什么意思

c++ - 数组赋值不适用于指针语法

data-structures - []map[string]struct 错误的 Golang 赋值

c# - Visual Studio WinForms 设计器不实例化对象

c++ - 废话实例化

vhdl - 如何将一个模块的输出信号连接到另一个模块的输入信号

VHDL n 位桶形移位器

vhdl - 用于发送串行字节的简单 VHDL 测试平台程序?

javascript - 复杂的 Javascript 变量包含其他指定变量的值?