プラットフォーム別のハードウェア コンフィギュレーション - 2022.1 日本語

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語

ガイダンス マクロ で説明するように、SYS_PORT 接続は SYS_PORT_PFM マクロを使用してプラットフォームごとにカスタマイズできます。ただし、新しいプラットフォームを追加する必要があり、そのためにヘッダー ファイルが変更される場合は、make で既存のコンパイル済みプラットフォーム用にハードウェアを再構築する必要がありますが、これは望ましくありません。これを回避するには、プラットフォームごとに個別のコンフィギュレーション ヘッダー ファイルを作成し、-I CFLAG を使用して、そのプラットフォームに適したファイルを含めます。次に例を示します。

ifneq (,$(findstring u50,$(DEVICE)))
  EXTRA_CFLAGS := -I include/u50
else
  EXTRA_CFLAGS := -I include/u200
endif

アクセラレータ ヘッダー ファイルには、共通ファイル (例: config.hpp) が含まれます。このファイルは、次の例に示すように、計算ユニットの数やポート マッピングなど、プラットフォーム固有のコンフィギュレーションを容易にするためにカスタマイズされ、別々のディレクトリで提供されています。

表 1. その他の makefile 変数
ACC クラス仕様には、次が含まれています。 include/u50/config.hpp include/u200/config.hpp
#include "config.hpp"
// Accelerator class
class pipelined_cu : public VPP_ACC<pipelined_cu, NCU>
{ ...
    SYS_PORT(A, PORT_MAP_A);
    SYS_PORT(B, PORT_MAP_B);
    SYS_PORT(E, PORT_MAP_E);
#define NCU 2
// global memory connections to Accelerator ports
#define PORT_MAP_A (HBM[0]:HBM[2])
#define PORT_MAP_B (HBM[0]:HBM[2])
#define PORT_MAP_E (HBM[0]:HBM[2])
#define NCU 3
// global memory connections to Accelerator ports
#define PORT_MAP_A (DDR[0]:DDR[1]:DDR[2])
#define PORT_MAP_B (DDR[0]:DDR[1]:DDR[2])
#define PORT_MAP_E (DDR[0]:DDR[1]:DDR[2])