適切なスコープへの指示子の適用 - 2023.2 日本語

Vitis 高位合成ユーザー ガイド (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 日本語

Vitis Unified IDE では特定のコード オブジェクトに指示子を適用できますが、指示子はそのオブジェクトを含むスコープに追加されます。たとえば、HLS コンポーネントでは INTERFACE プラグマをインターフェイス オブジェクトに適用できますが、指示子は最上位関数 (スコープ) に適用されます。インターフェイス ポート (オブジェクト) はその指示子内で特定されます。

最適化指示子は、次のオブジェクトおよびスコープに適用できます。

関数
指示子を関数に適用すると、HLS コンパイラでその関数のスコープ内のオブジェクトすべてに指示子が適用されます。プラグマの効果は、関数の次の階層レベルで停止し、サブ関数には適用されません。
ヒント: PIPELINE 指示子などの -recursive オプションを含む指示子は、階層で繰り返し適用できます。
Interfaces
HLS コンパイラで指示子が最上位関数に適用されます。最上位関数がインターフェイスを含むスコープです。
ループ
指示子がループのスコープ内のすべてのオブジェクトに適用されます。

たとえば LOOP_MERGE 指示子をループに適用すると、HLS コンパイラでは指示子がループ内のサブループに適用され、ループ自体には適用されません。指示子が適用されたループは、同じ階層レベルの等価ループとは統合されません。

配列
指示子は配列を含むスコープに適用されます。