クロック周波数の管理 - 2021.2 Japanese

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

Document ID
UG1393
Release Date
2022-03-29
Version
2021.2 Japanese
重要: ここで説明する --clock オプションは、プラットフォーム クロックの識別 で説明されるように、fixed ステータスのクロックを持つプラットフォーム シェルでのみサポートされます。fixed ステータスのクロックのない古いプラットフォーム シェルでは、カーネルはプラットフォームのデフォルトの動作周波数で動作します。

一般的に、エンベデッド プロセッサ プラットフォームおよび新しいデータセンター アクセラレータ カードでは、デバイス バイナリで複数のカーネルを異なるクロック周波数のプラットフォームに接続できます。各カーネル、またはカーネル固有のインスタンスは、指定されたクロック周波数または複数のクロックに接続でき、異なるカーネルがプラットフォームで生成された異なるクロック周波数を使用できます。

コンパイル プロセス (v++ -c) では、 --hls.clock コマンドを使用してカーネル周波数を指定できます。これで、指定した周波数をターゲットにしたカーネルをコンパイルでき、Vitis HLS ツールを使用して指定された周波数でカーネル ロジックの検証できるようになります。ただし、これはコンパイル用のインプリメンテーション ターゲットにすぎませんが、最適化とフィードバックができます。

リンク処理中に、カーネルがプラットフォームに接続されてデバイス バイナリをビルドする場合、v++ コマンドの --clock オプション を使用してカーネルのクロック周波数を指定できます。このため、クロック周波数を管理するプロセスは次のようになります。

  1. Vitis コンパイラを使用して指定した周波数で HLS コードをコンパイルします。
    v++ -c -k <krnl_name> --hls.clock freqHz:<krnl_name>
    ヒント: freqHz には周波数を Hz で指定します (例: 250 MHz の場合は 250000000Hz)。
  2. リンク中に、カーネル内の各クロック信号のクロック周波数またはクロック ID を次のコマンドで指定します。
    v++ -l ... --clock.freqHz <freqHz>:kernelName.clk_name

--clock オプションは、プラットフォーム シェルからクロック ID を使用するか、カーネル クロックの周波数を指定すると指定できます。クロック ID を指定する場合、カーネル周波数はプラットフォーム上のそのクロックの周波数で定義されます。カーネル周波数を指定すると、プラットフォームは使用可能な fixed プラットフォーム クロックの 1 つをスケーリングして、指定された周波数を作成しようとします。場合によっては、クロック周波数はある程度の近似でしか達成できないことがあります。この場合、--clock.tolerance または --clock.default_tolerance を指定して、許容範囲を示すことができます。使用可能な fixed クロックを許容範囲内でスケーリングできない場合、警告メッセージが表示され、カーネルがデフォルトのクロックに接続されます。