ライブラリ検索順を設定する Verilog の `uselib
指示子がサポートされています。
`uselib の構文
<uselib compiler directive> ::= `uselib [<Verilog-XL uselib directives>|<lib
directive>]
<Verilog-XL uselib directives> :== dir = <library_directory> | file = <library_file>
| libext = <file_extension>
<lib directive>::= <library reference> {<library reference>}
<library reference> ::= lib = <logical library name>
`uselib lib 指示子
`uselib lib
指示子は、Verilog-XL の `uselib
指示子とは一緒に使用できません。たとえば、次のコードは無効です。
`uselib dir=./ file=f.v lib=newlib
1 つの `uselib
指示子で複数のライブラリを指定できます。
ライブラリを指定した順が検索順になります。次に例を示します。
`uselib lib=mylib lib=yourlib
この場合、インスタンシエートされたモジュールの検索がまず mylib
で実行され、次に yourlib
で実行されます。
`uselib dir
、`uselib
file
、`uselib libext
などの指示子と同様、解析の 1 つのセッションでは `uselib
lib
指示子が HDL ファイルすべてに適用されます。別の `uselib
指示子があるまでは、HDL ソースの `uselib
(Verilog XL `uselib
を含む) 指示子が使用されます。引数なしで `uselib
を使用すると、現在アクティブな `uselib
<lib|file|dir|libext>
が無効になります。
Verific の Verilog エラボレーション アルゴリズムでのインスタンシエート済みモジュールまたは UDP の解決には、次のモジュール検索メカニズムが使用されます。
- まず、現在アクティブな
`uselib lib
の論理ライブラリの順序リストでインスタンシエート済みモジュールが検索されます。 - 見つからない場合は、
xelab
コマンドで検索ライブラリとして指定されているライブラリの順序リストでインスタンシエート済みモジュールが検索されます。 - 見つからない場合は、親モジュールのライブラリでインスタンシエート済みモジュールが検索されます。たとえば、
work
ライブラリのモジュール A にmylib
ライブラリのモジュール B がインスタンシエートされ、モジュール B にモジュール C がインスタンシエートされている場合、/mylib ライブラリ (C の親モジュールである B のライブラリ) でモジュール C が検索されます。 - 見つからない場合は、次のいずれかの
work
ライブラリでインスタンシエートされたモジュールを検索します。- HDL ソースがコンパイルされるライブラリ
-
work
ライブラリとして明示的に設定されるライブラリ -
work
という名前のデフォルトの作業ライブラリ
`uselib の例
adder_lib 論理ライブラリにコンパイルされる half_adder.v ファイル | work 論理ライブラリにコンパイルされる full_adder.v ファイル |
---|---|
|
|