アクセラレータ カードのクロックの処理方法は、複数のプラットフォーム クロックとクロック周波数をサポートするように進化しています。クロック処理方法の向上は、追加のカーネル周波数を駆動するのに利用可能な fixed ステータスのプラットフォーム クロックに依存します。ターゲット プラットフォーム シェルに fixed クロックがあるかどうかを確認するには、
platforminfo -v
コマンドを使用します。たとえば、次のコマンドは、U200 プラットフォームの新しいシェルに関連する詳細情報を返します。platforminfo -v -p xilinx_u200_gen3x16_xdma_1_202110_1 -o pfmClocks.txt
出力ファイルでレポートされる情報には、次のクロック詳細が含まれます。
=================
Clock Information
=================
...
...
Clock Index: 2
Frequency: 50.000000
Name: ii_level0_wire_ulp_m_aclk_ctrl_00
Pretty Name: PL 2
Inst Ref: ii_level0_wire
Comp Ref: ii_level0_wire
Period: 20.000000
Normalized Period: .020000
Status: fixed
...
上記の例では、Clock Index: 2 が fixed
ステータスのクロックであることがわかります。このプラットフォーム シェルはここには示されていませんが、実際にはリンクされたカーネルで複数のクロック周波数を駆動するために使用可能な 3 つの fixed ステータスのクロックが提供されます。前述の説明のように、--clock.xxx
オプションを使用すると、カーネル クロックを駆動できます。
ただし、
xilinx_u200_xdma_201830_2
などの古いプラットフォーム シェルでは、リンクされたカーネルでクロック周波数を駆動する fixed プラットフォーム クロックはありません。これは、次のコマンドでレポートされるクロック情報を確認すると決定できます。
platforminfo -v -p xilinx_u200_xdma_201830_2 -o pfmClocks.txt
レガシ プラットフォームでは、fixed ステータスのクロックがない場合、v++ --kernel frequency
オプションを使用してクロック周波数を指定できます (Vitis コンパイラの一般オプション を参照)。