我在我的程序中面临一个令人困惑的问题。我需要在我的程序中移植映射(调用)一个组件。此外,在组件内部,我需要进行另一个端口映射(调用),这在 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;
调用组件的命令:begin s0: binary_integer_1 port map(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;
例如,如果我想在上层实体内部做一个端口映射。我有一个非法的声明。请为我提供另一种方法。