クロック周波数の管理 - 2022.1 日本語

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語

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

プラットフォームのデフォルト周波数とは異なる周波数を使用してカーネルをインプリメントするには、--clock オプション で説明するように、固定クロックを使用するプラットフォームに プラットフォーム クロックの識別 を使用します。デバイス バイナリ (.xclbin) を生成する際には、異なるクロック周波数を使用して複数のカーネルをプラットフォームに接続できます。各カーネル、またはカーネル固有のインスタンス (CU) は、指定されたクロック周波数または複数のクロックに接続でき、異なるカーネルが異なるクロック周波数を使用できます。

ヒント: Vitis コンパイラの一般オプション で説明するように、スケーラブル クロックを使用したプラットフォームの場合、v++ --kernel_frequency オプションを使用して、プラットフォーム上の 1 つまたは両方のクロックにクロック周波数を指定します。

このため、カーネルのクロック周波数を管理するプロセスは次のようになります。

  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 クロックを許容範囲内でスケーリングできない場合、警告メッセージが表示され、カーネルがデフォルトのクロックに接続されます。