インテル® HLS コンパイラー: リファレンス・マニュアル

ID 683349
日付 6/23/2017
Public
ドキュメント目次

1.1. HLSコンパイラー・コマンドオプション

HLSコンパイラーは、一般的な関数を実行するための呼び出しやファイル・リンキング、またはコンパイルのカスタマイズが可能なコマンドオプションを含んでいます。
表 1.  一般的なコマンドオプションこれらのi++コマンドオプションは、一般的なコンパイラー関数を実行します。
コマンドオプション 説明
--debug-log コンパイラーに診断情報を含めたログファイルを生成するように指示します。

デフォルトでは、debug.logファイルは現在の作業ディレクトリー内のa.prjサブディレクトリーにあります。-o <result>コマンドオプションも含める場合は、debug.logファイルは <result>.prjサブディレクトリーに格納されます。

-hまたは --help コンパイラーにすべてのコマンドオプションと画面上のそれらの説明を表示するように指示します。

コマンド : i++ -hまたは i++ --help

-o <result> コンパイラーに <result> 実行可能ファイルと <result>.prjディレクトリーの中に出力を配置するように指示します。

コンパイラーはデフォルトで Linux 用にa.outファイルを出力し、Windows 用にa.exeファイルを出力します。-o <result> コマンドオプションは、コンパイラー出力の名前を指定できます。

コマンド例 : i++ -o hlsoutput multiplier.c

このコマンド例を呼び出すと、現在の作業ディレクトリー内に Linux 用のhlsoutput実行可能ファイルと Windows 用のhlsoutput.exeを作成します。

-v コンパイルの進行状況を記述するメッセージの表示をコンパイラーに指する Verbose モードです。

コマンド例は、 i++ -v hls/multiplier/multiplier.cで、multiplier.cは入力ファイルを示します。

--version コンパイラーに画面上にバージョン情報を表示するように指示します。

コマンド : i++ --version

表 2.  コンパイルをカスタマイズするコマンドオプションこれらのi++コマンドオプションは、ソースファイルからオブジェクト・ファイルへの翻訳に影響するコンパイラー関数を実行します。
オプション 説明
-c コンパイラーに現在の作業ディレクトリーにオブジェクト・ファイル (.o) を前処理、解析、および生成するように指示します。

コマンド例 : i++ -c multiplier.c

このコマンド例を呼び出すと、multiplier.oファイルを作成します。

--component <components> コンパイラーが RTL に合成する関数名のコンマ区切り値リストを指定できます。

コマンド例 : i++ --component <components> <input_files>

-D <macro> [= <val> ] コンパイラーにマクロ定義 (<macro>) とその値 (<val>) を渡すことができます。

<val> で値を指定しない場合、デフォルト値は 1 になります。

-I <dir> ディレクトリー (<dir>) をインクルード・パス・リストの最後に追加します。
-march= [X86-64 | "<FPGA_family>" | "<FPGA_part_number>" コンポーネントを指定されたアーキテクチャーまたは FPGA ファミリーにコンパイルするように、コンパイラーに指示します。
-marchコンパイラー・オプションは次のいずれかの値を取ります。
X86-64
コンパイラーにエミュレーター・フローでのコードをコンパイルするように指示します。
"<FPGA_family>"
コンパイラーにターゲット FPGA デバイスファミリーのコードをコンパイルするように指示します。
<FPGA_family> 値は次のデバイスファミリーのいずれかになります。
  • Arria V
  • Arria 10
  • Cyclone V
  • MAX 10
  • Stratix V
  • Stratix 10
"<FPGA_part_number>"
コンパイラーにターゲットデバイスのコードをコンパイルするように指示します。コンパイラーはここで指定する FPGA パーツナンバーから FPGA デバイスファミリーを決定します。

コマンド例 : i++ -march=x86-64 multiplier.c

このコマンド例を呼び出すと、現在の作業ディレクトリーにa.outファイルを作成します。

コンパイルが失敗した場合は、プロジェクト・ディレクトリー ( a.prjなど ) にあるdebug.logファイルで詳細を参照してください。

--promote-integers コンパイラーに g++ 整数昇格を模倣するための追加の FPGA リソースを使用するように指示します。

--promote-integersコマンドオプションについては <path to i++ installation>/examples/tutorials/best_practices/integer_promotionデザイン例を参照にしてください。

コンパイルに g++ 整数昇格ルールを適用すると、大量のエリア・オーバーヘッドを引き起こします。インテルは、プロダクション・コンパイルでの整数昇格を推奨していません。プロダクション・コンパイルでは、未定義の算術オーバーフロー動作に依存しなくてもいいように、コンポーネント内のデータ型のサイズを適切にします。

--quartus-compile Quartus® Primeソフトウェアを使用して HDL ファイルをコンパイルします。

コマンド例 : i++ --quartus-compile <input_files>

出力ファイルは、 <result>.prj/quartusディレクトリー内のコンパイルした Quartus® Primeプロジェクトと <result>.prj/reportsディレクトリー内のレポートです。このコンパイルは、コンポーネントを FPGA アーキテクチャーにコンパイルする際に作成されるすべてのファイルも生成します。

--simulator <name>

--simulator none

検証の実行に使用しているシミュレーターを指定します。
重要: --simulator <name> コマンドオプションは-march=" <FPGA_family_or_part_number> " コマンドオプションと併せてのみ動作します。
デフォルトでは、i++コマンドに-march=" <FPGA_family_or_part_number> " を含める際、--simulator <name> は自動的に--simulator modelsimに設定されるため、--simulator <name> オプションを指定する必要はありません。

--simulator noneオプションは、検証フローをスキップし、対応するテストベンチを生成せずにコンポーネントの RTL を生成するように、HLSコンパイラーに指示します。このオプションは、生成された HLD レポート (report.html) でコンポーネント・デザインを反復する必要がある場合に使用します。

コマンド例 : i++ -march="<FPGA_family_or_part_number>" --simulator none multiplier.c

表 3.  ファイルリンキングをカスタマイズするコマンドオプションこれらのHLSコマンドオプションは、バイナリー または RTL コンポーネントへのオブジェクト・ファイルの翻訳に影響するコンパイラーの動作を指定します。
オプション 説明
-clock <clock_spec> 指定されたクロック周波数または期間で RTL を最適化します。
--fpc 可能な場合、中間丸めと変換を削除します。
--fp-relaxed 算術演算の順序を緩和します。
-ghdl フルデバッグの可視化を有効にし、検証実行可能の実行時にすべての信号をログ付けします。実行可能が実行された後、シミュレーターは波形をa.prj/verification/vsim.wlfファイルにログ付けします。
-L <dir> ディレクトリー (<dir>) をライブラリー・ファイルの検索パスの最後に追加します。
-l <library> オブジェクト・ファイルがバイナリーにリンクする際に、ライブラリー・ファイル名を指定します。