--clock
オプションは、AI エンジン、HLS カーネルのコンパイル時およびデザインのリンク時にクロック周波数を割り当てるために使用します。--part
および --platform
の両オプションでサポートされます。オプションを指定しない場合、次の表に示すように、Vitis で選択した各モードに応じたデフォルト クロックが割り当てられます。
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 つの方法があります。
-
--clock.freqhz
または--freqhz
: このオプションは、指定されたクロック周波数をプラットフォームからカーネルに接続するために使用されます。プラットフォームに指定した周波数のクロックが 1 つ以上あれば、そのうちの 1 つが選択されます。プラットフォームに指定された周波数がない場合、プラットフォームの基準クロックを使用して指定された周波数が生成されます。 -
--clock.id
: このオプションは、指定されたクロック周波数をカーネルに接続するために使用することもできますが、クロックはクロック ソースとみなされます。このオプションは、カーネルまたは複数のカーネルを同じクロック ソースに接続するために使用できます。詳細は、次の例を参照してください。
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 の指定したクロック ピンに適用することもできます。
次に例を示します。
v++ --link --clock.tolerance 0.10:vadd_1,vadd_3
[clock]
セクション ヘッドの下で次のフォーマットを使用して指定できます。[clock]
tolerance=0.10:vadd_1,vadd_3