Intel®高层次综合编译器专业版: 最佳实践指南

ID 683152
日期 6/22/2020
Public

本文档可提供新的版本。客户应 单击此处 前往查看最新版本。

文档目录

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