次のように、別の「mytypes.vhd」ファイルで型を宣言しようとしています。
library ieee;
use ieee.std_logic_1164.all;
package mytypes is
type my_bus_array_type is array (0 to 3) of std_logic_vector(7 downto 0);
end package mytypes;
次に、エンティティを次のように定義します。
library ieee;
use ieee.std_logic_1164.all;
library work;
use work.mytypes.all;
entity my_entity is
port(
bus_array : in my_bus_array_type;
...
);
end my_entity;
さて、これは機能していません。Altera Qsys ツールを使用してコンポーネントをライブラリに追加しようとすると、次のエラーが発生します。
Error: Verilog HDL or VHDL XML Interface error at my_entity.vhd(41): port "bus_array" has an unsupported type File: /home/project/my_entity.vhd Line: 41
問題は、エンティティ内で standard_logic_vector の配列、つまり多次元配列を定義しようとしていることに注意してください。代わりに std_logic の配列を定義すると、このコードは正しく機能します。