HLS プラグマ
Vivado HLS での最適化
SDAccel™ および SDSoC™ プロジェクトでは、ハードウェア カーネルを OpenCL™、C、または C++ 言語から RTL に合成し、ザイリンクス デバイスのプログラマブル ロジックにインプリメントできるようにする必要があります。Vivado® HLS は、OpenCL、C、および C++ 言語記述から RTL を合成します。
Vivado HLS はユーザーの操作なしで SDAccel または SDSoC 開発環境プロジェクトを処理できるよう設計されていますが、Vivado HLS では、生成される RTL コードのレイテンシの削減、スループット パフォーマンスの向上、エリアおよびデバイス リソース使用率の削減など、デザインを最適化するためのプラグマが提供されています。これらのプラグマは、カーネルのソース コードに直接追加できます。
重要:
SDSoC 環境では HLS プラグマの使用がサポートされますが、関数インターフェイスの引数に適用されるプラグマ (インターフェイス、配列分割、または data_pack プラグマ) はサポートされません。詳細は、『SDSoC 環境プロファイリングおよび最適化ガイド』 (UG1235) の「ハードウェア関数の最適化」を参照してください。
Vivado HLS プラグマには、次の最適化タイプがあります。
| タイプ | 属性 |
|---|---|
| カーネル最適化 | |
| 関数のインライン展開 | |
| インターフェイス合成 | |
| タスク レベルのパイプライン処理 | |
| パイプライン処理 | |
| ループ展開 | |
| ループ最適化 | |
| 配列最適化 | |
| 構造体のパック |