AIE to HDL ブロックの設定 - 2021.2 日本語

Vitis Model Composer ユーザー ガイド (UG1483)

Document ID
UG1483
Release Date
2021-10-22
Version
2021.2 日本語

手順 1: HDL デザインの開始間隔 (II) の判断

AIE to HDL ブロックの [Output Sample Time] を設定するには、HDL サブシステムの開始間隔 (II) を知る必要があります。先ほど述べたように、HDL ドメインのシミュレーションはサイクル精度です。HDL デザインが、毎サイクル新しいデータを受信できないことがあります (HDL デザインが新しいサンプルを受信できない場合、HDL デザインからの tready 信号は 0 に設定される)。たとえば、HDL デザインが 10 サイクルごとに新しいサンプルを受信する場合、デザインの II は 10 となります。

手順 2: AIE to HDL ブロックの [Output Data Type] パラメーターの設定

Output Data Type パラメーターに設定可能な値は 32、64、および 128 ビット幅です。これは、AI エンジン アレイと PL の間で許容されるデータ ビット幅です。これよりも多くの制約があります。たとえば、入力信号のデータ型が int64 の場合、出力データのデータ型は int64 のみが可能です。入力のデータ型が int16(c) の場合、出力のデータ型は uint32 である必要があります。AIE Signal Spec ブロックを使用して PLIO 幅を指定する場合 (AI エンジン アレイと PL の間のスループットを最適化するため)、[Output Data Type] は指定された PLIO 幅と同じビット数にする必要があります。AIE Signal Spec ブロックがない場合は、生成されるコードの PLIO 幅は、AI エンジン サブシステムから送信される信号のビット幅または 32 ビットの大きい方の値になります。図 3 を参照してください。

図 1. AIE to HDL

AIE to HDL ブロックでサポートされる出力のデータ型と対応する入力のデータ型のリストを取得するには、AIE to HDL ブロックを参照してください。

次に例を示します。

ブロックへの入力のデータ型 PLIO 出力のデータ型
int16 64 ビット uint64
int16(c) 設定なし uint32
int32 128 ビット ufix128
int8 設定なし uint32

手順 3: AIE to HDL ブロックの [Output Sample Time] パラメーターの設定

Output Sample Time(入力サンプル周期)/(入力サイズ)/ii に設定します。

この式の理由を理解するには、ii が 1 (tready は常に 1 に設定) であるとします。AIE to HDL ブロックへの入力が可変サイズ信号で、周期が入力周期だとすると (サンプル期間は Simulink で [Timing Legend] を開いて確認可能)、入力周期の間に入力サイズのサンプルをブロックに供給するということです。ブロックの内部バッファーがオーバーフローしないようにするには、AIE to HDL ブロックからの出力レートを入力と同じにする必要があります。入力レートは (入力サイズ)/(入力周期) で、出力レートは 1/(出力サンプル時間) です。ii が 1 より大きい場合、出力レートは 1/(出力サンプル時間)/ii に下がります。

手順 4: システム クロックの設定

System Generator ブロックの [Clocking] タブを開きます。[FPGA clock period][Simulink system period] の 2 つのパラメーターがあります。これらの 2 つの値は、Simulink シミュレーションの時間と実際のハードウェア インプリメンテーションの時間のスケーリング係数を定義します。[Simulink system period] を手順 3 で求めた時間に設定します。ここでは、HDL デザインはシングル レート デザインであると想定しています。これらのパラメーターの詳細は、System Generator を参照してください。

図 2. System Generator のクロック設定

次に、AIE Kernel と AIE to HDL ブロックの接続例を示します。出力のデータ型ビットは、PLIO のサイズと同じである必要があります。PLIO ブロックがない場合、PLIO 幅は大きい方の信号ビット幅または 32 ビットに設定されます。PLIO ブロックを使用する場合は、スループットを向上するため PLIO を 32 ビットより大きい幅に設定できます。

図 3. AIE Kernel/AIE to HDL ブロック