--advanced オプション - 2020.2 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2021-03-22
Version
2020.2 Japanese

--advanced.param および --advanced.prop オプションは、v++ コマンドで使用するパラメーターおよびプロパティを指定します。コンパイルまたはリンクを実行する際にこれらのオプションを使用すると、Vitis コア開発キットで生成されるハードウェアおよびハードウェア エミュレーション プロセスを詳細に制御できます。

--advanced.xxx オプションの引数は、<param_name>=<param_value> という形式で指定します。次に例を示します。

v++ --link -–advanced.param compiler.enableXSAIntegrityCheck=true 
-–advanced.prop kernel.foo.kernel_flags="-std=c++0x"
ヒント: Vitis コンパイラのコンフィギュレーション ファイル で説明するように、Vitis コンパイラ オプションを設定ファイルで指定して、その設定ファイルを --config オプションで指定できます。たとえば --platform オプションは、設定ファイルで次の構文を使用して、セクション ヘッドなしで指定できます。
platform=xilinx_u200_xdma_201830_2

--advanced.param

--advanced.param <param_name>=<param_value>

次の表に示すアドバンス パラメーターを指定します。

表 1. param オプション
パラメーター名 有効な値 説明
compiler.acceleratorBinaryContent データ型: 文字列

デフォルト値: <empty>

xclbin に挿入する内容を指定します。有効なオプションは bitstream および dcp です。

適用先

  • v++ --link
  • vpl.imp
  • xclbinutil
compiler.addOutputTypes データ型: 文字列

デフォルト値: <empty>

Vitis コンパイラで生成される追加の出力タイプ。有効な値は、xclbin および hw_export などです。hw_export を使用してダイナミック ハードウェア プラットフォームから固定 XSA を作成すると、エンベデッド ソフトウェア開発フローで使用できます。

適用先

  • v++ --link
  • vpl.impl
  • XSA 生成
compiler.​deadlockDetection データ型: ブール型

デフォルト値: TRUE

ハードウェア エミュレーションの一部として、シミュレーション実行中にカーネル デッドロックの検出をイネーブルにします。アプリケーションがデッドロックされると、コンソールおよびログ ファイルにエラーメッセージが表示されます。
// ERROR!!! DEADLOCK DETECTED at 42979000 ns! SIMULATION WILL BE STOPPED! //

メッセージは、デッドロックが終了されるまで繰り返されます。アプリケーションを手動で終了して、デッドロックを終了してください。

ヒント: シミュレーション中にデッドロックが発生した場合は、Vitis HLS でのカーネルのコンパイル で説明されるように、Vitis HLS でカーネルコードを開いて、デッドロックの検出とデバッグ機能を追加します。

適用先

  • v++ --compile
  • Vitis HLS
  • config_export
compiler.enableIncrHwEmu データ型: ブール型

デフォルト値: FALSE

プラットフォームに少し変更があった場合に、xclbin ハードウェア エミュレーションのインクリメンタル コンパイルをイネーブルにするために使用します。これにより、プラットフォームがアップデートされた場合に、ハードウェア エミュレーションのデバイス バイナリがすばやく再構築できます。

適用先

  • v++ --link
  • vpl.impl
compiler.​errorOnHoldViolation データ型: ブール型

デフォルト値: TRUE

Vivado インプリメンテーションの最後の段階後、タイミング解析チェック中に、必要であればクロック スケーリングを実行します。ホールド違反が検出された場合、デフォルトでは v++ が終了してエラー メッセージが表示されます。xclbin は生成されません。このパラメーターを使用すると、このデフォルト動作を変更できます。

適用先

  • v++ --link
  • vpl.impl
compiler.​fsanitize データ型: 文字列

デフォルト値: <empty>

OpenCL カーネルのデバッグ で説明されているように、OpenCL カーネルの追加のメモリ アクセス チェックをイネーブルにします。有効な値は address、memory などです。

ソフトウェア エミュレーションおよびデバッグに適用されます。

compiler.​interfaceRdBurstLen データ型: Int Range

デフォルト値: 0

カーネル AXI インターフェイスの AXI 読み出しバーストの予測される長さを指定します。compiler.interfaceRdOutstanding オプションと共にハードウェア バッファー サイズを決定するために使用されます。値は 1 ~ 256 です。

適用先

  • v++ --compile
  • Vitis HLS
  • config_interface
compiler.​interfaceWrBurstLen データ型: Int Range

デフォルト値: 0

カーネル AXI インターフェイスの AXI 書き込みバーストに予測される長さを指定します。compiler.interfaceWrOutstanding オプションと共にハードウェア バッファー サイズを決定するために使用されます。値は 1 ~ 256 です。

適用先

  • v++ --compile
  • Vitis HLS
  • config_interface
compiler.​interfaceRdOutstanding データ型: Int Range

デフォルト値: 0

カーネル AXI インターフェイスのバッファーへの読み出し数を指定します。値は 1 ~ 256 です。

適用先

  • v++ --compile
  • Vitis HLS
  • config_interface
compiler.​interfaceWrOutstanding データ型: Int Range

デフォルト値: 0

カーネル AXI インターフェイスのバッファーへの書き込み数を指定します。値は 1 ~ 256 です。

適用先

  • v++ --compile
  • Vitis HLS
  • config_interface
compiler.​maxComputeUnits データ型: Int

デフォルト値: -1

システムで使用可能最大計算ユニット。デフォルトは、60 計算ユニットですが、numComputeUnits プロパティを使用すると、ハードウェア プラットフォーム (.xsa) で指定することもできます。

指定した値でデフォルト値またはハードウェア プラットフォームの設定が上書きされます。デフォルト値 -1 を指定すると、[default] の設定が保持されます。

適用先: v++ --link

compiler.skipTimingCheckAndFrequencyScaling データ型: ブール型

デフォルト値: FALSE

インプリメンテーションの最後の段階 (route_design または配線後の phys_opt_design) 後に実行されるタイミング チェックおよびオプションのクロック周波数スケーリングをスキップします。

適用先

  • v++ --link
  • vpl.impl
​compiler.userPreCreateProjectTcl データ型: 文字列

デフォルト値: <empty>

Vitis ビルド プロセスで Vivado プロジェクトを作成する前に実行する Tcl スクリプトを指定します。

適用先

  • v++ --link
  • vpl.create_project
​compiler.userPreSysLinkOverlayTcl データ型: 文字列

デフォルト値: <empty>

Vitis ビルド プロセスで Vivado IP インテグレーター ブロック デザインを開いた後、コンパイラで生成された dr.bd.tcl スクリプトを実行する前に実行する Tcl スクリプトを指定します。

適用先

  • v++ --link
  • vpl.create_bd
​compiler.userPostSysLinkOverlayTcl データ型: 文字列

デフォルト値: <empty>

コンパイラで生成された dr.bd.tcl スクリプトを実行した後に実行する Tcl スクリプトを指定します。

適用先

  • v++ --link
  • vpl.update_bd
​compiler.userPostDebugProfileOverlayTcl データ型: 文字列

デフォルト値: <empty>

vpl.update_bd 段階で Vivado IP インテグレーター ブロック デザインにデバッグ プロファイルのオーバーレイを挿入した後に実行する Tcl スクリプトを指定します。

適用先

  • v++ --link
  • vpl.updated_bd
compiler.​worstNegativeSlack データ型: 浮動小数点

デフォルト値: 0

タイミング解析チェック中に、デザインで許容されるワースト ネガティブ スラックをナノ秒 (ns) で指定します。ネガティブ スラックが指定の値を超えると、ツールでタイミング結果を達成するためにクロック周波数のスケーリングが試みられることがあります。0 スラックではなく、許容されるネガティブ スラック値を指定します。

適用先

  • v++ --link
  • vpl.impl
compiler.​xclDataflowFifoDepth データ型: Int

デフォルト値: -1

カーネル データフロー領域で使用される FIFO の深さを指定します。

適用先

  • v++ --compile
  • Vitis HLS
  • config_dateflow
hw_emu.​compiledLibs データ型: 文字列

デフォルト値: <empty>

指定したシミュレータに clibs を使用します。

ハードウェア エミュレーションおよびデバッグに適用されます。

hw_emu.​debugMode gdb | wdb

デフォルト値: wdb

v++ コンパイル時間を短縮するためのコンパイル時オプションで、GDB に設定すると Vivado シミュレータ エラボレーションが実行されなくなります。

デフォルト値は WDB で、シミュレーションが波形モードで実行されます。

これオプションは、-g または --debug オプションと共に使用した場合にのみ機能します。

ハードウェア エミュレーションおよびデバッグに適用されます。

hw_emu.​enableProtocolChecker データ型: ブール型

デフォルト値: FALSE

ハードウェア エミュレーション中に軽量 AXI プロトコル チェッカー (lapc) をイネーブルにします。これは、AxI インターフェイスの正確さを確認するために使用します。

ハードウェア エミュレーションおよびデバッグに適用されます。

hw_emu.platformPath データ型: 文字列

デフォルト値: <empty>

カスタム プラットフォーム ディレクトリへのパスを指定します。<platformPath> ディレクトリがプラットフォームの作成で使用されるには、次の要件を満たしている必要があります。
  • ip_repo というディレクトリが含まれている必要があります。
  • scripts というディレクトリが含まれ、scripts ディレクトリには hw_em_util.tcl ファイルが含まれている必要があります。hw_em_util.tcl ファイルでは、次の 2 つのプロシージャが定義されています。
    • hw_em_util::add_base_platform
    • hw_em_util::generate_simulation_scripts_and_compile

ハードウェア エミュレーションおよびデバッグに適用されます。

hw_emu.post_sim_settings データ型: 文字列 ハードウェア エミュレーションを実行する前に Vivado シミュレータを設定する Tcl スクリプトへのパスを指定します。このスクリプトは、ツールのデフォルト コンフィギュレーションの後、シミュレーションを起動する前に実行されます。この Tcl スクリプトを使用すると、特定の設定を上書きしたり、必要に応じてシミュレータをカスタム設定したりできます。

ハードウェア エミュレーションおよびデバッグに適用されます。

hw_emu.​scDebugLevel none | waveform | log | waveform_and_log

デフォルト値: waveform_and_log

Vivado ロジック シミュレータ (xsim) の TLM トランザクション デバッグ レベルを設定します。
  • NONE: TLM デバッグを無効にします
  • log: TLM トランザクション ログをレポート ファイルに出力します。
  • waveform: TLM トランザクション波形ビューをイネーブルにします。
  • waveform_and_log: ログ メッセージと波形ビューの両方をイネーブルにします。

ハードウェア エミュレーションおよびデバッグに適用されます。

hw_emu.simulator XSIM | QUESTA

デフォルト値: XSIM

ハードウェア エミュレーションの実行に指定したシミュレータを使用します。

ハードウェア エミュレーションおよびデバッグに適用されます。

次に例を示します。
--advanced.param compiler.addOutputTypes="hw_export"
ヒント: このオプションは、設定ファイルの [advanced] セクション ヘッドの下で次のフォーマットを使用して指定できます。
[advanced]
param=compiler.addOutputTypes="hw_export"

--advanced.prop

--advanced.prop <arg>

カーネル コンパイルのアドバンス カーネルまたはソリューション プロパティを指定します。<arg> には、次の表にリストされている値のいずれかを指定します。

表 2. prop オプション
プロパティ名 有効な値 説明
kernel.<kernel_name>.​kernel_flags データ型: 文字列

デフォルト値: <empty>

カーネル <kernel_name> に特定のコンパイル フラグを設定します。
solution.​device_repo_path データ型: 文字列

デフォルト値: <empty>

ハードウェア プラットフォームのリポジトリへのパスを指定します。このオプションの代わりに、 --platform オプションで .xpfm プラットフォーム ファイルへの完全パスを指定してください。
solution.​kernel_compiler_margin データ型: 浮動小数点

デフォルト値: カーネル クロック周期の 12.5%。

カーネルのクロック マージン (ns)。この値は、配置配線遅延にマージンを提供するため、合成前にカーネル クロック周期から引かれます。

--advanced.misc

--advanced.misc <arg>

カーネル コンパイルのアドバンス ツール指示子を指定します。