AR# 14030

|

7.1i XST - 「ERROR:HDLParsers:3014 - file_name.vhd Line xx. Library unit pkg_name is not available in library lib_name.」 というエラー メッセージが表示される

説明

キーワード : VHDL, synthesis, synthesize, 合成

重要度 : 標準

概要 :
XST で VHDL デザインを合成すると、解析で次のようなエラー メッセージが表示されます。

"ERROR:HDLParsers:3014 - <file>.vhd Line xx. Library unit <my_pkg> is not available in library <my_lib>."

ソリューション

1

VHDL ライブラリにアクセスする場合、次のようにライブラリを宣言してから使用する必要があります。

library <my_lib>;
use <my_lib>.<my_pkg>.all;

use 行のパッケージ名がライブラリ ファイルのパッケージ名と一致しない場合、このエラーが発生します。 パッケージ <my_pkg> が、ライブラリ <my_lib> にコンパイルされたライブラリ ファイル内にあることを確認してください。

2

このエラーは、ライブラリ ファイルが配置されたライブラリが use 行と一致していない場合に発生することがあります。 たとえば、my_lib を user_lib というライブラリにコンパイルし、次のような use 行を記述するとします。

use work.my_lib.all;

このように記述すると、エラーが発生します。 work は有効なライブラリですが、正しくは次のように宣言する必要があります。

use user_lib.my_lib.all;

3

パッケージを下位モジュールで宣言すると、XST で検出されず、上記のエラー メッセージが表示されます。

メモ : この問題は、7.1i ソフトウェアで修正されています。

4

このエラー メッセージは、VHDL モジュール コードの構文エラーが原因で表示されることがあります。 VHDL ソース ファイルで構文エラーを確認してください。

エラーが見つからない場合は、別のライブラリを作成し、すべてのパッケージ ファイルをそこに入れると、上記のようなエラー メッセージは表示されなくなります。 XST では、このライブラリが work ライブラリの前に自動的にコンパイルされ、パッケージ情報が選択されます。

これで、XST によりすべてのファイルが解析できるようになり、問題の本当の原因を見つけることができます。

メモ : この問題は、5.1i ソフトウェアで修正されています。

5

デフォルトの work ライブラリでパッケージを作成およびコンパイルすると、上記のエラーが発生します。 VHDL の仕様では必要ないと書かれていますが、ソース ファイルに work ライブラリ宣言を追加すると、この問題を解決できます。

例 :

library ieee;
library work; -- work ライブラリ宣言を追加
:

6

ユーザー定義のパッケージを使用している場合に、このエラーが発生することがあります。

パッケージ ファイルにファンクションの定義が含まれているが、ファンクションの定義を使用したパッケージ本体が含まれていない場合に、エラー メッセージが表示されます。たとえば、パッケージ本体とファンクションの定義を異なるファイルに記述した場合などにエラーが発生します。

この問題を回避するには、パッケージとパッケージ本体を同じファイルに記述してください。
AR# 14030
日付 03/20/2012
ステータス アーカイブ
種類 一般
People Also Viewed