Vhdl 如何将一个实体的输出与另一个实体的输入连接起来

Vhdl 如何将一个实体的输出与另一个实体的输入连接起来,vhdl,Vhdl,我的vhdl代码如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; ENTITY pc IS PORT( d : IN STD_LOGIC_VECTOR(31 DOWNTO 0); clk : IN STD_LOGIC; -- clock. q : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) -

我的vhdl代码如下:

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;


ENTITY pc IS PORT(
d   : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
clk : IN STD_LOGIC; -- clock.
q   : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) -- output
);
END pc;

ARCHITECTURE description OF pc IS
BEGIN
process(clk)
begin
    if rising_edge(clk) then
            q <= d;
    else
             q <= x"00000000";
    end if;
end process;
END description;


library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity ins_memory is
port( inp1 : in std_logic_vector(31 downto 0);
  oup1 : out std_logic_vector (4 downto 0);
  clk : in std_logic);
end ins_memory;

architecture behv1 of ins_memory is
type ROM_Array is array (0 to 14)
of std_logic_vector(4 downto 0);
constant Content: ROM_Array := (
0 => "00001",
-- Suppose ROM has
1 => "00010",
-- prestored value
2 => "00011",
-- like this table
3 => "00100",
--
4 => "00101",
--
5 => "00110",
--
6 => "00111",
--
7 => "01000",
--
8 => "01001",
--
9 => "01010",
--
10 => "01011",
--
11 => "01100",
--
12 => "01101",
--
13 => "01110",
--
14 => "01111",
--
OTHERS => "11111"
--
);

component pc IS PORT(
d   : IN STD_LOGIC_VECTOR(31 DOWNTO 0) :=x"00000000";
clk : IN STD_LOGIC; -- clock.
q   : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
);
END component;

begin
D1: pc port map(q=> inp1,clk=>clk,d=>open);
process(inp1,clk)
begin
oup1<= Content (conv_integer(inp1));
end process;

end behv1;
ieee库;
使用ieee.std_logic_1164.all;
使用ieee.std_logic_arith.all;
使用ieee.std_logic_unsigned.all;
实体pc是端口(
d:标准逻辑向量(31到0);
时钟:在标准逻辑中;--时钟。
q:OUT标准逻辑向量(31到0)——输出
);
终端pc;
pc的体系结构描述
开始
过程(clk)
开始
如果上升沿(clk),则
q“00010”,
--预存值
2 => "00011",
--喜欢这张桌子吗
3 => "00100",
--
4 => "00101",
--
5 => "00110",
--
6 => "00111",
--
7 => "01000",
--
8 => "01001",
--
9 => "01010",
--
10 => "01011",
--
11 => "01100",
--
12 => "01101",
--
13 => "01110",
--
14 => "01111",
--
其他=>“11111”
--
);
组件pc是端口(
d:在标准逻辑向量中(31到0):=x“00000000”;
时钟:在标准逻辑中;--时钟。
q:输出标准逻辑向量(31到0)
);
端部元件;
开始
D1:pc端口图(q=>inp1,clk=>clk,d=>open);
工艺(inp1、clk)
开始
oup1 inp1,clk=>clk,d=>open);
不允许更新中模式的端口BEHV1:INP1。

请验证端口映射的正确性。

inp1
端口是顶级实体(
内存
)的输入,您正试图将其连接到内部组件(
pc
)的输出。因此,它将从两个方向驱动——从顶层模块的外部驱动,以及由内部组件驱动。这显然是非法的

inp1端口是顶级实体(
内存
)的输入,您试图将其连接到内部组件(
pc
)的输出。因此,它将从两个方向驱动——从顶层模块的外部驱动,以及由内部组件驱动。这显然是非法的

inp1端口是顶级实体(
内存
)的输入,您试图将其连接到内部组件(
pc
)的输出。因此,它将从两个方向驱动——从顶层模块的外部驱动,以及由内部组件驱动。这显然是非法的

inp1端口是顶级实体(
内存
)的输入,您试图将其连接到内部组件(
pc
)的输出。因此,它将从两个方向驱动——从顶层模块的外部驱动,以及由内部组件驱动。这显然是非法的