タイミング クロージャのための複数のインプリメンテーション ストラテジの実行 - 2023.2 日本語

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

困難なデザインでは、複数の異なるストラテジを使用して Vivado インプリメンテーションを複数回繰り返すことで、タイミング クロージャを達成できます。このトピックでは、ハードウェア ビルド (-t hw) で複数のインプリメンテーション ストラテジを同時に起動する方法と、問題のなかった実行を見つけて使用し、デバイス バイナリを生成してビルドを完了する方法について説明します。

--vivado オプション で説明されるように、--vivado.impl.strategies コマンドを使用すると、1 つのビルド パスに実行する複数のストラテジを指定できます。コマンド ラインは、次のようになります。

v++ --link -s -g -t hw --platform xilinx_zcu102_base_202010_1 -I . \
--vivado.impl.strategies "Performance_Explore,Area_Explore" -o kernel.xclbin hello.xo

上記の例の場合、Performance_Explore および Area_Explore ストラテジが Vivado ビルド内で同時に実行され、どの結果がベストなのかを確認できます。ALL を指定すると、ツール内で使用可能なすべてのストラテジを実行するようにを指定できます。

重要: すべてのインプリメンテーション ストラテジを実行すると、ホーム ディレクトリ (~/.Xilinx/Vivado/202X.X/strategies) に格納されているユーザー定義のストラテジを含めて、Vivado ツール内で 30 回以上の run が開始されることがあります。これは、リソースを大幅に消費する可能性があるため、推奨されません。回避するには、実行する特定ストラテジを定義し、コマンド キューを使用して、--vivado.impl.jobs または --vivado.impl.lsf コマンドなどの管理された方法でプロセス負荷を分散します。

このオプションは、次の形式のコンフィギュレーション ファイルでも決定できます。

#Vivado Implementation Strategies
[vivado]
impl.strategies=Performance_Explore,Area_Explore

Vitis コンパイラは、最初に完了したタイミングを満たす実行結果を自動的に選択し、そのビルド プロセスを続行して、デバイス バイナリを生成します。ただし、すべての実行が完了するまで待機し、完了した実行からベストの結果を選択してから、ツールに続行するように指示することもできます。これには、次のように --advanced.compiler 指示子を使用する必要があります。

[advanced]
param=compiler.multiStrategiesWaitOnAllRuns=1

compiler.multiStrategiesWaitOnAllRuns=0 はデフォルトの動作を表します。v++ がすべての実行が完了するまで待機し、レポートファイルを取得する場合は、パラメーター値を 1 に変更します。

Vitis アナライザーは、完了までに実行が許可されたすべてのストラテジのインプリメンテーション結果を表示します。これには、インプリメンテーション結果の概要とタイミング サマリ レポートが含まれます。この機能を使用して、さまざまなストラテジと結果を確認できます。

また、すべてのインプリメンテーション ストラテジが完了した後で、その結果を手動で確認することもできます。この後、--to_step を使用して Vivado をインタラクティブに起動する方法 で説明するように、--reuse_impl オプションを使用してインプリメンテーション実行のいずれかの結果を使用します。