よく使うpragma一覧
ここで、よく使うpragmaをまとめておく。
#pragma HLS |
説明 |
設定対象 |
interface ap_ctrl_none port=return または interface ap_ctrl_hs register port=return |
ap_ctrl_none なし ap_ctrl_hs 開始終了信号あり(デフォルト) (i) ap_start 開始 (o) ap_done 終了 (o) ap_ready 次を開始可 (o) ap_idle アイドル register 出力段にFFを入れる |
トップ階層 の関数 |
interface ap_hs register port=引数名 |
ap_none なし(デフォルト) ap_hs ハンドシェーク信号付き 引数が入力の場合は (i) *_ap_vld 確定(valid) (o) *_ap_ack 受付(acknowledge) 出力の場合は逆方向になる register 出力段にFFを入れる |
引数 |
array_reshape variable=配列名 complete |
各要素を並べた1つのパラレルポートと見なす |
配列 の引数 |
array_partition variable=配列名 complete |
配列を各要素にばらす つまりRAMでなくFFの集まりと見なす |
配列 |
aggregate variable=構造体名 compact=bit |
構造体を1つのパラレルポートと見なす compact=bit 各要素をバイト境界に整列させない (デフォルトでは整列されてしまう) |
構造体 |
unroll |
ループを展開する |
ループ内 に記述 |
pipeline II=数値 style=flp |
その行以降をパイプライン化する II 開始間隔(initiation interval)、通常は1にする style=flp 入力が止まっても出力しきる(関数のみ) |
関数内/ ループ内 に記述 |