VHDL - 如何在其实体中定义包含组件的组件的端口映射?

时间:2015-07-13 12:30:15

标签: vhdl

我正在尝试使用包来通过顶级实体转移不同组件中的数据块。

我已将数组包定义为

library IEEE;
use IEEE.STD_LOGIC_1164.all;

package my_array_pkg is
 type my_array is array ( 0 to 9) of std_logic_vector(3 downto 0);
end my_array_pkg;

然后在顶级实体中我将我的组件声明为

COMPONENT Array_Count is
Port ( C_1Hz    : in std_logic;
        reset : in std_logic;
        digit  : out my_array
        );
end COMPONENT;

现在有人可以帮我解释如何宣布这个"数字:out my_array"在端口地图中。

C2 : Array_Count
    PORT MAP ( CLK1HZ, RESET, ????);

需要在其他组件中更新数组包。

感谢。

1 个答案:

答案 0 :(得分:1)

你需要"使用"实体声明前的包裹:

use work.my_array_pkg.all;

library my_library; 
use my_library.my_array_pkg.all;

使包装内容可见。

然后,您需要在实例化组件之前声明该类型的信号,例如:

signal my_digit : my_array;

现在将端口连接到该信号

C2 : Array_Count
    PORT MAP ( 
        C_1Hz => CLK1HZ, 
        reset => RESET, 
        digit => my_digit);