2015-07-13 132 views
0

我正在嘗試使用包通過頂層實體在不同組件中移動數據塊。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; 

現在有人可以幫助我瞭解如何申報這個「digit:out my_array」在端口映射中。


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

所需的陣列封裝在其他組件進行更新。

謝謝。

回答

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