--clock
オプションは、プラットフォーム クロックの識別 で説明されるように、fixed ステータスのクロックを持つプラットフォーム シェルでのみサポートされます。fixed ステータスのクロックのない古いプラットフォーム シェルでは、カーネルはプラットフォームのデフォルトの動作周波数で動作します。一般的に、エンベデッド プロセッサ プラットフォームおよび新しいデータセンター アクセラレータ カードでは、デバイス バイナリで複数のカーネルを異なるクロック周波数のプラットフォームに接続できます。各カーネル、またはカーネル固有のインスタンスは、指定されたクロック周波数または複数のクロックに接続でき、異なるカーネルがプラットフォームで生成された異なるクロック周波数を使用できます。
コンパイル プロセス (v++
-c
) では、
--hls.clock
コマンドを使用してカーネル周波数を指定できます。これで、指定した周波数をターゲットにしたカーネルをコンパイルでき、Vitis HLS ツールを使用して指定された周波数でカーネル ロジックの検証できるようになります。ただし、これはコンパイル用のインプリメンテーション ターゲットにすぎませんが、最適化とフィードバックができます。
リンク処理中に、カーネルがプラットフォームに接続されてデバイス バイナリをビルドする場合、v++
コマンドの --clock オプション を使用してカーネルのクロック周波数を指定できます。このため、クロック周波数を管理するプロセスは次のようになります。
-
Vitis コンパイラを使用して指定した周波数で HLS コードをコンパイルします。
v++ -c -k <krnl_name> --hls.clock freqHz:<krnl_name>
ヒント:freqHz
には周波数を Hz で指定します (例: 250 MHz の場合は250000000Hz
)。 - リンク中に、カーネル内の各クロック信号のクロック周波数またはクロック ID を次のコマンドで指定します。
v++ -l ... --clock.freqHz <freqHz>:kernelName.clk_name
--clock
オプションは、プラットフォーム シェルからクロック ID を使用するか、カーネル クロックの周波数を指定すると指定できます。クロック ID を指定する場合、カーネル周波数はプラットフォーム上のそのクロックの周波数で定義されます。カーネル周波数を指定すると、プラットフォームは使用可能な fixed
プラットフォーム クロックの 1 つをスケーリングして、指定された周波数を作成しようとします。場合によっては、クロック周波数はある程度の近似でしか達成できないことがあります。この場合、--clock.tolerance
または --clock.default_tolerance
を指定して、許容範囲を示すことができます。使用可能な fixed クロックを許容範囲内でスケーリングできない場合、警告メッセージが表示され、カーネルがデフォルトのクロックに接続されます。