set_directive_aggregate - 2023.2 日本語

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

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

説明

構造体のデータ フィールドをワード幅の広い 1 つのスカラーに集めます。構造体内で宣言されている配列に対しては、Vitis HLS で set_directive_array_reshape と同様の処理が実行され、完全に分割されて幅の広いスカラーに再形成され、構造体のほかの要素とまとめられます。
ヒント: 構造体の配列は、要素がまとめられた配列として再構成されます。

新しく作成された幅の広いワードのビット アライメントは、構造体の要素の宣言順から自動推論されます。最初の要素がワードの最下位部に配置され、すべてのフィールドがマップされていきます。

注記: AGGREGATE 最適化は、構造体をパックしないので、その他の構造体を含む構造体には使用できません。

構文

set_directive_aggregate [OPTIONS] <location> <variable>
  • <location>: パックする変数を含む場所を function[/label] の形式で指定します。
  • <variable>: パックする構造体変数を指定します。

オプション

-compact [bit | byte | none | auto]
集約された構造体のアライメントを指定します。アライメントは、ビット レベル (パック済み)、バイト レベル (パディング済み)、なし、またはツールで自動的に決定 (デフォルト動作) のいずれかで実行できます。

func 関数内の 3 つの 8 ビット フィールド (typedef struct {unsigned char R, G, B;} ピクセル) を含む構造体ポインター AB を、新しい 24 ビット ポインターに集約し、データをビット レベルでアライメントします。

set_directive_aggregate func AB -compact bit