すべてのコンポーネントで同じタイプの配列を使用できるように、パッケージで符号なし配列を宣言しようとしています。最初に最上位のコンポーネントで宣言し、次に work ライブラリとuse
コマンドを使用して各コンポーネントのパッケージを呼び出しました。という警告が表示されます
警告:ProjectMgmt:454 - ルールを使用して検出されたファイルの循環依存関係: define-before-use。
というエラーも表示されます
<test2>
行 27:ライブラリに見つかりません<work>
。ライブラリがコンパイルされていること、ライブラリと use 節が VHDL ファイルに存在することを確認してください。
循環依存関係があるのはなぜですか? パッケージを正しく作成して使用していますか?
最上位コンポーネント
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
package pkg is
type array_unsigned is array (99 downto 0) of UNSIGNED(7 downto 0);
end package;
package body pkg is
end package body;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
library work;
use work.pkg.ALL;
entity test1 is
end test1;
architecture Behavioral of test1 is
signal input : array_unsigned;
begin
sub: entity work.test2(Behavioral)
port map(input=>input);
end Behavioral;
下位コンポーネント
library IEEE;
library work;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
use work.pkg.ALL;
entity test2 is
Port (input : in array_unsigned);
end test2;
architecture Behavioral of test2 is
begin
end Behavioral;