インプリメンテーションの実行 - 2023.2 日本語

Vitis 高位合成ユーザー ガイド (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 日本語

HLS コンポーネントが Flow Navigator でアクティブになっていることを確認します。なっていない場合は、Component で選択してアクティブなコンポーネントにします。HLS コンポーネントがアクティブであれば、Flow Navigator から C シミュレーション、C 合成、C/RTL 協調シミュレーション、パッケージ、インプリメンテーションを実行して、HLS コンポーネントをビルドおよび解析できるようになります。Flow NavigatorIMPLEMENTATION の下にある Run を選択します。

HLS コンパイラの高位合成の結果のレポートには、クロック周波数およびリソース使用率 (LUT、DSP、BRAM など) を含む見積もりが含まれます。ツールでは最終的な合成またはインプリメンテーション済みのデザインにどのような最適化または配線遅延があるかを把握できないため、これらの結果はあくまで見積もりでしかありません。RTL デザインの詳細な解析が必要な場合は、Vivado 合成を実行し、生成された RTL デザインを配置配線して、タイミングおよびリソース使用率の結果を確認します。ただし、これらの結果でさえ改善された見積もり値にすぎません。これは、ほかの IP やカーネルを使用した大規模なデザインで使用される IP やカーネルは、別の結果をもたらすからです。

イプリメンテーション パラメーターを設定します。

次に示すように、Config File EditorImplementation セクションを使用するか、HLS コンフィギュレーション ファイルを直接編集すると、Vivado 合成とインプリメンテーションを実行前に設定できます。

図 1. HLS コンポーネントのインプリメンテーション設定

Implementation のコンフィギュレーション コマンドには、次が含まれます。

vivado.flow
合成のみ、または合成とインプリメンテーションの両方を実行するように指定します。合成のみの場合、合成とインプリメンテーションの両方を実行するよりも速くなりますが、インプリメンテーションを実行したときほどの詳細は含まれません。デフォルトは syn です。
vivado.rtl
Vivado のアウト オブ コンテキスト フローを実行する際に使用する言語を指定します。デフォルトは verilog です。
vivado.clock
合成またはインプリメンテーションに使用するクロック周期を指定します。指定しない場合は、HLS コンポーネント作成時に指定されたデフォルトのクロックが使用されます。
vivado.impl_strategy
インプリメンテーション run に適用するストラテジを指定します。これはインプリメンテーション実行時にリソースの使用率とタイミング見積もるためにのみ使用され、生成された Vivado IP や Vitis カーネルには影響しません。
vivado.max_timing_paths
タイミング サマリ レポートから抽出するタイミング パスの数を指定します。指定された数のワースト ケース パスが返されます。
vivado.optimization_level
Vivado ツールで実行される最適化を管理する一般的な機能です。設定値が高いほどより多くの最適化が実行され、結果として実行時間が長くなります。
vivado.pblock
配置配線時に使用する Pblock の範囲または値を指定し、デザインに使用できる領域を制限します。
vivado.phys_opt
実行する物理最適化を指定します。noneplaceroute、およびall から選択します。
ヘッダーなしのレポートを生成します。
vivado.report_level
合成およびインプリメンテーション中に生成されるレポート レベルを定義します。レポートには、使用率とタイミング サマリ、タイミング パスの詳細、またはデフォルトであるフェイルファースト レポートを含めることができます。
vivado.synth_design_args
synth_design コマンドのオプションを指定します。
vivado.synth_strategy
Vivado 合成 run に適用するストラテジを指定します。

[Run Implementation]

コンフィギュレーション ファイルで定義されたインプリメンテーション設定を使用すると、Flow Navigator から Run をクリックできます。インプリメンテーション実行の進行状況は、Output ウィンドウで確認できます。次に示すように、実行のトランスクリプトでは、最上位関数名が <component-name>::implementation となります。

図 2. インプリメンテーション実行後の HLS コンポーネント
ヒント: Vitis Unified IDE で実行するインプリメンテーションは、vitis、v++、および vitis-run コマンド で説明するように、vitis-run --mode hls --impl コマンドを使用します。

インプリメンテーションが完了すると、トランスクリプトの最後に「Implementation finished successfully」というメッセージが表示されるはずです。IMPLEMENTATION ヘディングの下の Reports フォルダーに次のレポートが表示されるようにもなります。

  • Summary: 使用したコマンド ラインと結果のタイムスタンプをレポートします。
  • RTL Synthesis: リソースの使用率およびタイミングなど、合成の結果をレポートします。
  • Place and Route: 詳細は インプリメンテーション レポート を参照してください。
ヒント: Flow Navigator から Cancel Run コマンドを使用すると、インプリメンテーション実行をキャンセルできます。