我在尝试将组件连接到 VHDL 父层次结构的两个输出端口时遇到问题。由于物理连接只能通过“端口映射”语句完成,因此无法将本地信号连接到多个输出端口。这是一个例子:
以上电路的描述应该是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/