HLS コンポーネントが Flow Navigator でアクティブになっていることを確認します。なっていない場合は、Component で選択してアクティブなコンポーネントにします。HLS コンポーネントがアクティブであれば、Flow Navigator から C シミュレーション、C 合成、C/RTL 協調シミュレーション、パッケージ、インプリメンテーションを実行して、HLS コンポーネントをビルドおよび解析できるようになります。Flow Navigator の IMPLEMENTATION の下にある Run を選択します。
HLS コンパイラの高位合成の結果のレポートには、クロック周波数およびリソース使用率 (LUT、DSP、BRAM など) を含む見積もりが含まれます。ツールでは最終的な合成またはインプリメンテーション済みのデザインにどのような最適化または配線遅延があるかを把握できないため、これらの結果はあくまで見積もりでしかありません。RTL デザインの詳細な解析が必要な場合は、Vivado 合成を実行し、生成された RTL デザインを配置配線して、タイミングおよびリソース使用率の結果を確認します。ただし、これらの結果でさえ改善された見積もり値にすぎません。これは、ほかの IP やカーネルを使用した大規模なデザインで使用される IP やカーネルは、別の結果をもたらすからです。
イプリメンテーション パラメーターを設定します。
次に示すように、Config File Editorの Implementation セクションを使用するか、HLS コンフィギュレーション ファイルを直接編集すると、Vivado 合成とインプリメンテーションを実行前に設定できます。
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
- 実行する物理最適化を指定します。
none
、place
、route
、およびall
から選択します。 - vivado.report_level
- 合成およびインプリメンテーション中に生成されるレポート レベルを定義します。レポートには、使用率とタイミング サマリ、タイミング パスの詳細、またはデフォルトであるフェイルファースト レポートを含めることができます。
- vivado.synth_design_args
-
synth_design
コマンドのオプションを指定します。 - vivado.synth_strategy
- Vivado 合成 run に適用するストラテジを指定します。
[Run Implementation]
コンフィギュレーション ファイルで定義されたインプリメンテーション設定を使用すると、Flow Navigator から Run をクリックできます。インプリメンテーション実行の進行状況は、Output ウィンドウで確認できます。次に示すように、実行のトランスクリプトでは、最上位関数名が <component-name>::implementation
となります。
vitis-run --mode hls --impl
コマンドを使用します。インプリメンテーションが完了すると、トランスクリプトの最後に「Implementation finished successfully」というメッセージが表示されるはずです。IMPLEMENTATION ヘディングの下の Reports フォルダーに次のレポートが表示されるようにもなります。
- Summary: 使用したコマンド ラインと結果のタイムスタンプをレポートします。
- RTL Synthesis: リソースの使用率およびタイミングなど、合成の結果をレポートします。
- Place and Route: 詳細は インプリメンテーション レポート を参照してください。