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

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語
重要: ここで説明する --clock オプションは、エンベデッド プロセッサ プラットフォームおよび固定クロック付きの Alveo™ プラットフォームでサポートされます (クロック周波数の管理 を参照)。

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

--clock.XXX オプションは、リンク時に、v++ コマンド ラインからクロックをカーネルに割り当て、必要なカーネル クロック周波数ソースを見つけるために使用します。クロックを指定するためのさまざまなオプションがあります。オプションの優先順位は、クロック オプションがどれだけ特定的であるかによります。次のオプションは、全体的なものからより特定的なものの順にリストされており、下に行くほど優先順位が高くなります。

  • --clock.XXX オプションなし: プラットフォームのデフォルトのクロックが各計算ユニット (CU) に適用されます。2 つクロックを使用するカーネルの場合、プラットフォームからのクロック ID 0 が ap_clk に割り当てられ、クロック ID 1 が ap_clk_2 に割り当てられます。
  • --clock.defaultId=<id>: すべてのカーネルに特定のクロック ID を定義できます。プラットフォームのデフォルト クロックの割り当てよりも優先されます。
  • --clock.defaultFreqHz=<Hz>: すべてのカーネルに指定したクロック周波数を定義します。ユーザー指定のデフォルト クロック ID およびプラットフォームのデフォルト クロックよりも優先されます。
  • --clock.id=<id>:<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]]: クロック ID を関連する CU のリストに割り当て、オプションで CU のクロック ピンに割り当てます。
  • --clock.freqHz=<Hz>:<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]]: 指定したクロック周波数を関連する CU のリストに割り当て、オプションで CU のクロック ピンに割り当てます。

--clock.defaultFreqHz

--clock.defaultFreqHz <arg>

すべてのカーネルに使用するデフォルト クロック周波数を MHz で指定します。デフォルトのプラットフォーム クロックよりも優先され、クロックに指定した周波数をデフォルトで割り当てます。<arg> には、クロック周波数を MHz 単位で指定します。

次に例を示します。

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

--clock.defaultId

--clock.defaultId <arg>
--clock.defaultId=<id>: すべてのカーネルに指定したクロック ID を定義します。プラットフォームのデフォルト クロックよりも優先されます。<arg> には、ターゲット プラットフォームで定義されているデフォルト クロック ID 以外のクロック ID を指定します。
ヒント: ターゲット プラットフォームで使用可能なクロック ID およびクロック ステータスは、platforminfo -v コマンドで確認できます (platforminfo ユーティリティ を参照)。

次に例を示します。

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

--clock.defaultTolerance

--clock.defaultTolerance <arg>

デフォルトのクロック耐性を値、またはデフォルトのクロック周波数のパーセントで指定します。clock.defaultFreqHz を指定する際に、値またはパーセントのいずれかで耐性を指定することもできます。この場合、その耐性を反映するためにタイミング制約もアップデートされます。

耐性の値 <arg> は、clock.defaultFreqHz ± 整数、またはデフォルトのクロック周波数のパーセント (10 進数値) で指定できます。

重要: このオプションを指定しない場合のデフォルトのクロック耐性は 5% です。

次に例を示します。

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

--clock.freqHz

--clock.freqHz <arg>

クロック周波数を Hz で指定し、関連付けられている計算ユニット (CU) のリストおよびオプションで CU の特定のクロック ピンに割り当てます。<arg><frequency_in_Hz>:<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]] のように指定します。

<frequency_in_Hz>
クロック周波数を MHz で指定します。
<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]]
定義した周波数を特定の CU に適用します。オプションで、CU の指定したクロック ピンに適用することもできます。
次に例を示します。
v++ --link --clock.freqHz 300000000:vadd_1,vadd_3
ヒント: このオプションは、コンフィギュレーション ファイルの [clock] セクション ヘッドの下で次のフォーマットを使用して指定できます。
[clock]
freqHz=300000000:vadd_1,vadd_3

--clock.id

--clock.id <arg>

ターゲット プラットフォームで使用可能なクロック ID を指定し、関連付けられている計算ユニット (CU) のリストおよびオプションで CU の特定のクロック ピンに割り当てます。<arg><reference_ID>:<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]] のように指定します。

<reference_ID>
ターゲット プラットフォームで使用するクロック ID を定義します。
ヒント: ターゲット プラットフォームで使用可能なクロック ID は、platforminfo ユーティリティを使用すると確認できます (platforminfo ユーティリティ を参照)。
<cu_0>[.<clk_pin_0>][,<cu_n>[.<clk_pin_n>]]
定義した周波数を特定の CU に適用します。オプションで、CU の指定したクロック ピンに適用することもできます。

次に例を示します。

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

--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 の指定したクロック ピンに適用することもできます。
重要: このオプションを指定しない場合、デフォルトのクロック耐性は clock.FreqHz の 5% です。

次に例を示します。

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