仅对英特尔可见 — GUID: vgd1508958103509
Ixiasoft
8.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); }