インテル® HLS コンパイラー: リファレンス・マニュアル

ID 683349
日付 6/23/2017
Public
ドキュメント目次

1.8.1.1. ac_int データ型での重要な使用情報

ac_intデータ型には、 インテル® HLS コンパイラーインストール・パッケージに含まれているac_intドキュメントに記載されている多数の API コールがあります。 AC データ型のより詳しい情報は、 <path to i++ installation>/include/refディレクトリー内のac_datatypes_ref.pdfファイルを参照してください。

ac_intデータ型は整数昇格サポートしています。次の例を考察します。

// For a 14-bit addition, the result should be stored in a 15-bit container
int15 s_adder(int14 a, int14 b) {
    return (a + b);
} 

この場合、加算演算は自動的に 15 ビットの結果を出力します。しかしながら、結果を適切なデータ型に格納するのはユーザーの責任となります。HLSコンパイラーは指定されたコンテナーのサイズに自動的に切り捨てまたは拡張します。

ac_intデータ型は C および Verilog を含め、他の言語とはビットシフトが異なります。デフォルトでは、シフト量が符号付きデータ型の場合、下のコード例にようにac_intは負のシフトを許容します。ハードウェアでは、この負のシフトは左シフトと右シフトの両方の実装をもたらします。

int14 shift_left(int14 a, int14 b) {
    return (a << b);
} 

シフトが常に一方向にあるとわかっている場合、効率的なシフト演算子を実装するには、次のようにシフト量を符号なしのデータ型として宣言します。

int14 efficient_left_only_shift(int14 a, uint14 b) {
    return (a << b);
}

HLSコンパイラー・インストレーション・パッケージはチュートリアル・デザインのいくつかの例が含まれています。推奨される例については、これらのデザインを参照してください。