フロアプランを開始する前に、Versal デバイスで主要なリソースが使用可能であることを確認します。これらのリソースには、AI エンジン アレイ インターフェイス (またはシム タイル)、ブロック RAM、UltraRAM、DSP、NoC、および DDRMC が含まれます。
次の図に、XCVC1902 を Vivado IDE の Device ウィンドウで主要なリソースをハイライトして示します。この図には、ブロック RAM、UltraRAM などのファブリック メモリ リソースがデバイス内でどのように分配されているかも示します。より良いシステム パフォーマンスを達成するには、ロジックの入力/出力ストリームの接続に基づいてフロアプランを作成することが重要です。次に、ロジックの入力/出力ストリームの例を示します。
- AI エンジン-PL-NoC-DDRMC
- AI エンジン-PL
- PS-NoC-DDRMC
次の図に、AI エンジン と PL のフロアプラン例を示します。このデザインには AI エンジン-PL データフローがあり、PL で UltraRAM リソースは使用されません。AI エンジン アレイ インターフェイスに通信するデータフローの一部としてブロック RAM リソースのみが使用されている場合は、PL がデバイスの UltraRAM 列がない部分にマップされている領域に AI エンジン ストリームをフロアプランできます。
次の図に、NoC を介して DDRMC に読み出し/書き込みを実行する AI エンジン の GMIO を使用するデザインを示します。AI エンジンに GMIO をサポートする列があります。この図は、16 個の GMIO 対応列を含む XCVC1902 を Device ウィンドウで表示したものです。GMIO 対応列にアクセスする際は、次の点を考慮します。
- 適切な QoS 要件を指定し、NoC コンパイラでパスに最大帯域幅が割り当てられるようにします。
- QoS 設定に基づいて、aiecompiler で GMIO 列が選択されるようにし、NoC コンパイラで適切な DDRMC の場所が選択されるようにします。
- 必要に応じて、GMIO を垂直 NoC (VNoC) の上の適切な列に制約し、DDRMC を VNoC の下に制約して、NoC を介するレイテンシを最小限にします。
次に、AI エンジンおよび PL カーネルを含むデザインのフロアプラン例を示します。
-
AI エンジン アレイ インターフェイス Pblock (JSON ファイル)
DDRMC の幅を決定し、aiecompiler に渡す <constraints>.json ファイルを作成します。
- Pblock (XDC ファイル)
VNoC のサイズを決定し、標準 Vivado Vivado Design Suite XDC ベースの Pblock を使用します。詳細は、 『Vivado Design Suite: プロパティ リファレンス ガイド』 (UG912) および 『UltraFast 設計手法ガイド ( FPGA および SoC 用)』 (UG949) を参照してください。
次に、Pblock が指定された <constraints>.json の例の抜粋を示します。このファイルは、AI エンジン コンパイラの実行時に --constraints
オプションを使用して指定します。
{
"GlobalContraints":{
"areaGroup":{
"name": "unique_area_group_name",
"exclude": true/false
"nodeGroup": ["rx.*"],
"tileGroup": ["(col,row):(col,row)"],
"shimGroup": ["col: col:]
}
}
この例について説明します。
- nodeGroup
- Pblock に指定するすべてのカーネルと PLIO をリストします。
rx*
は、名前がrx
で開始するすべてのインスタンスを示します。 - tileGroup
- カーネルを配置する AI エンジン アレイの Pblock 範囲を示します。
- shimGroup
- AI エンジン アレイ インターフェイスのアレイ インターフェイス インスタンス (PLIO など) を配置する Pblock 範囲を示します。
また、次の点にも注意してください。
-
AI エンジンから PL へのデータフローがある場合、DSP、ブロック RAM、および UltraRAM 列を確認し、AI エンジン チャネルを使用すると、リソースを最大限に活用できます。
たとえば、DSP が不要な PL モジュールでは、DSP 列の近くにある AI エンジン チャネルは必要ありません。
- デバイス全体にパイプライン段がどのように分配されているかに基づいて、マクロにパイプライン段を挿入します。
たとえば、データは AI エンジン-PL チャネルを介してメモリに格納されます。これは標準的な要件ですが、AI エンジン-PL チャネルと並んだメモリは十分にありません。
- ロジックの入力ストリームおよび出力ストリームの接続に基づいて、フロアプランを作成します。
たとえば、出力ストリーム用には PL-NoC-DDR にフロアプランし、入力ストリーム用には DDR-NoC-PL-AI エンジンにフロアプランします。