インテル®高位合成 (HLS) コンパイラー プロ・エディション: ベスト・プラクティス・ガイド

ID 683152
日付 12/16/2019
Public
ドキュメント目次

7.2. ac_int データ型使用時の負のビットシフトの回避

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);
}