Quartus IIのVerilogインクルード・ディレクトリの指定方法

FPGA

Verilogはdefineマクロなどを格納した別ファイルをインクルードできます。

`include "vlg_define.v"

module top (
  clk,
  rst_x,
   :
):
:

Quartus IIでこのようなVerilogファイルの論理合成を行う場合、どこかで`includeが参照するディレクトリを指定する必要があります。必要なインクルードファイルが見つからなかった場合、論理合成で次のようなエラーが発生します。

Error (10054): Verilog HDL File I/O error at top.v(1): can't open Verilog Design File "vlg_define.v"

Quartus IIのどこで指定するか

Edit Settingsをダブルクリックすると表示されるSettingsウィンドウのLibrariesカテゴリで設定します。
まず、Quartus IIでEdit Settingsをダブルクリックします。

Quartus IIのEdit Settings

Quartus IIのEdit Settings

SettingsウィンドウのLibrariesカテゴリを選択します。

Librariesカテゴリ

Librariesカテゴリ

Project libraliesのProject libralies name:の右にある「…」の部分をクリックしてインクルードファイルが格納されているディレクトリを指定します。

インクルードディレクトリを指定

インクルードディレクトリを指定

Addボタンを押すと、ディレクトリが追加されます。

libraries:にディレクトリが追加される

libraries:にディレクトリが追加される

インクルードディレクトリが複数の場合、必要なだけこの処理を繰り返します。

複数ディレクトリの指定

複数ディレクトリの指定

設定が終了したら、OKをクリックしてSettingsウィンドウを閉じます。

相対パスで設定する場合

Quartus IIの設定ファイル(.qsf)を直接編集する方法が簡単です。エディタなどで.qsfファイルを開き、SEARCH_PATHという文字列を検索すると、インクルードディレクトリの設定が見つかります。

set_global_assignment -name SEARCH_PATH "c:\\tmp\\usbcdc\\nios2_usbcdc\\opencores\\usb\\rtl\\include"
set_global_assignment -name SEARCH_PATH "c:\\tmp\\usbcdc\\nios2_usbcdc\\opencores\\usb\\usbdevice\\rtl"
set_global_assignment -name SEARCH_PATH "c:\\tmp\\usbcdc\\nios2_usbcdc\\rtl\\core"

この部分をプロジェクトディレクトリ(.qsfが存在するディレクトリ)からの相対パスに書きえます。この例の場合、nios2_usbcdcからの相対パスに書き換えると次のようになります。

set_global_assignment -name SEARCH_PATH "../opencores/usb/rtl/include"
set_global_assignment -name SEARCH_PATH "../opencores/usb/usbdevice/rtl"
set_global_assignment -name SEARCH_PATH "../rtl/core"

unixライクなパスの記述でもQuartus IIは認識するようです。
再度Quarus IIでプロジェクトを開いてLibraiesカテゴリで設定が反映されているか確認します。

相対パス設定の確認

相対パス設定の確認

タイトルとURLをコピーしました