【问题标题】:VHDL - How to Define Port Map of a component with a package in its entity?VHDL - 如何定义组件的端口映射及其实体中的包?
【发布时间】:2015-07-13 20:41:37
【问题描述】:

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

我已经定义了一个包含数组的包

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, ????);

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

谢谢。

【问题讨论】:

    标签: vhdl


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 2016-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多