これらは正しい警告メッセージです。
デザインに循環依存の問題があることを示しています。
循環依存が発生する例を次に説明します。
a.vhd がライブラリ a_lib にコンパイルされているとします。a.vhd には次の use 文が含まれます。
library b_lib;
use b_lib.all;
次に、b.vhd がライブラリ b_lib にコンパイルされます。b.vhd には次の use 文が含まれます。
library a_lib;
use a_lib.all;
これにより、a.vhd と b.vhd が互いに依存した関係になります。これが循環依存です。
このような警告メッセージを回避するには、ライブラリの全体のコンテンツを指定する use 文(use <lib_name>.all) を書き込まないようにしてください。
その代わりに、パッケージ特定の use 文 (use <lib_name><package_name>) を使用してください。また、不要なライブラリの定義も削除してください。
この問題に対応するほかの回避策を次に示します。
1. VHDL エンティティとアーキテクチャを 1 つの VHDL ファイルにまとめます。
2. a) [Hierarchy Update] タブの [Hierarchy] フィールド、[Compile Order] フィールドで、[No Update]、[Manual Compile Order] を選択します。
b) Vivado 合成で出力される [Synth 8-1940] エラー メッセージは、アーキテクチャ ファイルとエンティティ ファイルに対して出力されているので、エンティティ ファイルの前にアーキテクチャ ファイルを移動させます。
c) Vivado 合成を実行します。これで合成が問題なく実行できるはずです。
3. 警告が 1 つしか表示されず、エラー メッセージなしにデザインが終了する場合は、次のステップに移動できるはずです。