AMD ツールボックスの HDL ブロックセットには、加算器、乗算器、レジスタなどのよく使用される DSP 機能ブロックが含まれます。また、FFT、フィルター、メモリなどの複雑な DSP 機能ブロックも含まれます。Model Composer では、デザインが自動的に低級言語表現 (RTL) にコンパイルされ、これをプログラマブル ロジックにインプリメントできます。Versal ハードウェアでは、AI エンジン カーネルと PL カーネルを接続できます。ただし、HDL と AI エンジンとドメインには、少なくとも次の 2 つの面で互換性がありません。
- HDL ドメインはサイクル精度ですが、AI エンジン ドメインはビット精度です。Model Composer HDL デザインは、入力データを受信する準備ができていないか、有効な出力を持たない可能性があり、これらは AXI4-Stream ポートの
tvalid
およびtready
信号を使用してデザインで管理されます。 - HDL ドメインはスカラー入力のみを受信しますが、AI エンジン ブロックは可変サイズ ベクター信号を処理できます。
Vitis Model Composer は、2 つのドメインにまたがるサンプリング時間を適切に管理し、PL (HDL ブロックでモデル化) と AI エンジンの両方でヘテロジニアス システムをシミュレーションするために、AI エンジンから HDL ブロックへの接続、またはその逆の接続をするインターフェイス ブロックを Utilities ライブラリから提供しています。
- AIE to HDL: AXI4-Stream のようなインターフェイスを使用して、AI エンジンを HDL ブロックに接続します。
- HDL to AIE: AXI4-Stream のようなインターフェイスを使用して、HDL ブロックから AI エンジン ブロックに接続します。
これらのブロックは、AMD Toolbox/Utilities/Connectors ライブラリにあります。
上の図に示すように、AIE to HDL および HDL to AIE ブロックには tvalid
と tready
ポートがあります。AI エンジンから HDL ドメインへのゲートウェイは、ベクター入力を受信できますが、スカラー出力を生成します。つまり、Simulink では、HDL ドメインは AI エンジン ドメインとは異なるレートで動作します。たとえば、AI エンジン ドメインがクロックごとに 16 個のサンプルを生成する場合、HDL ドメインはデータを処理するために 16 倍以上の速度で実行する必要があります。HDL ドメインは、サイクル精度のドメインであり、クロックごとに 1 サンプルを消費しない場合があるので、HDL ドメインはさらに高速に動作する必要があります。たとえば、HDL ドメインが 2 クロックごとに 1 つのサンプルを消費する場合 (開始間隔 2)、HDL ドメインは AI エンジン ドメインの 32 倍の速度で動作する必要があります。
次のセクションでは、AIE to HDL および HDL to AIE ブロックのパラメーター設定について説明し、例を示します。