HLS Directive エディターの Destination セクションでは、次のデスティネーション設定のいずれかを選択できます。
- Source File
- Vitis Unified IDE は、指示子をプラグマとして C ソース ファイルに直接挿入します。
- Config File
- IDE は、この指示子を HLS コンフィギュレーション ファイルに挿入します。
次の表に、これら 2 つの方法の利点と欠点を示します。
指示子の形式 | 利点 | 欠点 |
---|---|---|
HLS コンフィギュレーション ファイル |
ソース コードは変更されないまま、デザインはコンフィギュレーション ファイルのエントリから確認できます。デザインでさまざまな指示子を試す場合に最適です。 |
C ソース ファイルをサードパーティに送付またはアーカイブする場合は、directives.tcl ファイルも含める必要があります。 結果を再作成するには |
ソース コード プラグマ |
最適化指示子は C ソース コードに埋め込まれます。 C ソース ファイルをサードパーティに C IP として送付する場合に最適です。同じ結果を再作成するのにほかのファイルは必要ありません。 TRIPCOUNT および INTERFACE などの変更されるる可能性が低い指示子に便利な方法です。 |
最適化指示子がコードに埋め込まれていると、そのソース コードを参照する HLS コンポーネントすべてに自動的に適用されます。 |
ヒント: 指示子を使用すると、さまざまなデザインの可能性を開発できますが、最終的な指示子が完成したら、HLS プラグマに変換することをお勧めします。これにより、最適化プラグマはデザインのソース コードの一部として持ち運べるようになります。
プラグマ属性の値を指定する際、リテラル値 (1、55、3.14 など) を使用するか、#define を使用してマクロを渡すことができます。次の例では、プラグマをリテラル値で指定しています。
#pragma HLS ARRAY_PARTITION variable=k_matrix_val type=cyclic factor=5
次の例では、定義されているマクロを使用しています。
#define E 5
#pragma HLS ARRAY_PARTITION variable=k_matrix_val type=cyclic factor=E