--clock オプション - 2023.2 日本語

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語
重要: --clock --freqhz クロック周波数の管理

--clock オプションは、AI エンジン、HLS カーネルのコンパイル時およびデザインのリンク時にクロック周波数を割り当てるために使用します。--part および --platform の両オプションでサポートされます。オプションを指定しない場合、次の表に示すように、Vitis で選択した各モードに応じたデフォルト クロックが割り当てられます。

表 1. 割り当てられるデフォルト クロック
V++ -c --mode aie -c --mode hls -c -k -l
--part AIE PLL 周波数の ¼ デフォルト HLS (100 MHz) N/A Versal デバイスの 300 MHz
--platform デフォルト プラットフォームのクロック周波数 デフォルト プラットフォームのクロック周波数 デフォルト プラットフォームのクロック周波数 デフォルト プラットフォームのクロック周波数

v++ -c モードおよび v++ -l によって異なるクロック指示子があります。--freqhz は、2023.2 で導入された新しいクロック指示子で、すべての v++ -cモードと v++ -l で使用でき、1 つのクロック指示子をすべての異なるモードで使用できるようにします。古い指示子もまだサポートされています。

--clock オプションを使ってカーネルを指定された周波数に接続するには、次の 2 つの方法があります。

  1. --clock.freqhz または --freqhz: このオプションは、指定されたクロック周波数をプラットフォームからカーネルに接続するために使用されます。プラットフォームに指定した周波数のクロックが 1 つ以上あれば、そのうちの 1 つが選択されます。プラットフォームに指定された周波数がない場合、プラットフォームの基準クロックを使用して指定された周波数が生成されます。
  2. --clock.id: このオプションは、指定されたクロック周波数をカーネルに接続するために使用することもできますが、クロックはクロック ソースとみなされます。このオプションは、カーネルまたは複数のカーネルを同じクロック ソースに接続するために使用できます。詳細は、次の例を参照してください。
注記: ターゲット プラットフォームで使用可能なクロック ID は、platforminfo ユーティリティを使用すると確認できます (platforminfo ユーティリティ を参照)。

xilinx_vck190_base_bdc_202320_1.xpfm プラットフォームで使用可能な固定クロックを決定する方法は、次のとおりです。

Plaftorminfo ../ xilinx_vck190_base_bdc_202320_1.xpfm

レポートの「Clock Information」を参照してください。

=================
Clock Information
=================
Default Clock Index: 2
Clock Index: 0
Frequency: 104.166666
Clock Index: 1
Frequency: 156.250000
Clock Index: 2
Frequency: 312.500000
Clock Index: 3
Frequency: 78.125000
Clock Index: 4
Frequency: 208.333333
Clock Index: 5
Frequency: 416.666666
Clock Index: 6
Frequency: 625.000000

カーネル X を 312.5 MHz に、カーネル Y を 625.00 MHz に接続する場合に、両方の周波数がプラットフォームで生成されるとします。コンパイルとリンクの段階で、--freqhz オプションを使用して、特定のクロックをカーネル X と Y に割り当てることをお勧めします。

コンパイル モード (v++ -c --mode aie または v++ -c --mode hls) では、--clock または --freqhz オプションを CLI で次のように使用できます。

v++ -c --mode hls --platform <xx.xpfm> --freqhz=312500000 --config ./X.cfg

v++ -c --mode hls --platform <xx.xpfm> --freqhz=625000000 --config ./Y.cfg

コンフィギュレーション ファイルでは、次のように指定します。

X.cfg ファイル:

[clock]
freqhz=312500000 

Y.cfg ファイル:

[clock]
freqhz=625000000

リンク モード (v++ -l) では、構文は <cu>.<clk_pin_name> となります。

CLI では、このコマンドは次のように使用します。

v++ -l -t hw --platform ./<.xpfm> ./libadf.a ./Y.xo --freqhz=312500000:X.clk --freqhz=625000000:Y.clk -s --config ./system.cfg -o fixed.xsa
注記: 重要な部分は、--freqhz=312500000:X.clk --freqhz=625000000:Y.clk です。

コンフィギュレーション ファイルでは、次のように指定できます。

[clock]
freqhz=312500000: X.clk
freqhz=625000000 : Y.clk

この場合、clk はカーネルのピン名前です。

注記: clock 指示子は CLI でもコンフィギュレーション ファイルでも使用できます。

--clock.tolerance

--clock.tolerance <arg>

クロック耐性を値、またはデフォルトのクロック周波数のパーセントで指定します。--clock.freqhz を指定する際に、値またはパーセントのいずれかで耐性を指定することもできます。この場合、その耐性を反映するためにタイミング制約もアップデートされます。<arg>: <tolerance>:<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]] のように指定します。

<tolerance>
  • clock.freqhz ± 指定した耐性値の整数、または 10 進数値で指定したクロック周波数のパーセントで指定できます。
  • <cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]]: 定義したクロック耐性を特定の CU に適用します。オプションで、CU の指定したクロック ピンに適用することもできます。
<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]]
定義したクロック耐性を特定の CU に適用します。オプションで、CU の指定したクロック ピンに適用することもできます。
重要: このオプションを指定しない場合、デフォルトのクロック耐性は指定した周波数の 5% です。

次に例を示します。

v++ --link --clock.tolerance 0.10:vadd_1,vadd_3 
ヒント: このオプションは、コンフィギュレーション ファイルの [clock] セクション ヘッドの下で次のフォーマットを使用して指定できます。
[clock]
tolerance=0.10:vadd_1,vadd_3