補足−固定小数点型テンプレートの使い方

[] [] []


VitisHLSの固定小数点型テンプレートは、付属のヘッダファイルap_int.h (ap_fixed.hap_int.hと同じ)を読み込むだけで通常のg++で使える。

ap_int<int W>       符号付き整数型

ap_uint<int W>     符号なし整数型

ap_fixed<int W,int I>  符号付き固定小数点型

ap_ufixed<int W,int I> 符号なし固定小数点型

 W: 全体のビット幅(max 1024)

 I: 整数部のビット幅

・代入時の量子化モードはデフォルトで切り捨て

・ビットの選択 a[5]

・ビット範囲の選択 a.range(7,4) または a(7,4)

・連接(Verilog{a,b}に相当) (a,b)

int型への変換 a.to_int()

double型への変換 a.to_double()

・左シフト時の注意 (systemc.hと異なる)

 シフト結果はシフト前と同じビット幅しか保持されないので、キャストしてからシフトする必要がある。

 例) ap_int<8> a8, ap_int<4> a4=0xfのとき

  a8 = a4 << 2;             // 00001100 = 1111 << 2

  a8 = (ap_int<8>) a4 << 2;  // 00111100 = 00001111 << 2


[] [] []