【发布时间】:2014-02-19 19:01:53
【问题描述】:
我在我的程序中遇到了一个令人困惑的问题。我需要在我的程序中移植映射(调用)一个组件。此外,在组件内部,我需要进行另一个端口映射(调用),这在 VHDL 中是非法的。你有这个问题的替代解决方案。这是我的意思的一个例子。
我在这里开始我的程序:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity binary1 is
port( N: in std_logic;
d: out integer);
end binary1 ;
Architecture Behavior1 of binary1 is
这是一个组件的例子:
component binary_integer_1 is
port ( b1: in std_logic;
int1: out integer);
end component;
调用组件的命令: 开始 s0:binary_integer_1 端口映射(n,d); 结束行为1;
另外,这里是主程序:
library ieee;
use ieee.std_logic_1164.all;
entity binary_integer_1 is
port ( b1: in std_logic;
int1: out integer);
end binary_integer_1;
architecture Behavior4 of binary_integer_1 is
begin
process(b1)
begin
if b1 = '1' then
int1 <= 1;
else
int1 <= 0;
end if;
end process;
end Behavior4;
例如,如果我想在上层实体内部做一个端口映射。我有一个非法的声明。 请为我提供另一种方法。
【问题讨论】:
-
你的例子不清楚,你修剪的太多了。您描述组件实例化的语言是非标准的。更多的代码会有所帮助,任何实际的错误消息也会有所帮助。 “将设计实体连续分解为组件,并将这些组件绑定到可能以类似方式分解的其他设计实体,从而产生代表完整设计的设计实体层次结构。这样的设计实体集合称为设计层次结构。 "在 LRM 中,从你认为它说它是非法的地方往下的下一段(它不是)。
标签: vhdl fpga hdl modelsim intel-fpga