Vivado-HLS学习 数据类型转换

分类: Vivado |
1、使用ap_[u]int对变量定义和初始化。尽量在一行初始化一个变量,避免一行初始化多个变量。例如:
ap_int<6> a_6bit_var_r8("0o52", 8);
//变量a_6bit_var_r8值为8进制的0o52,用6bit存储。
2、使用ap_[u]fixed定义和初始化变量。
3、浮点类型变量的定义和初始化。
4、隐式数据类型转换1:Promotion数据类型转换。将小位宽扩展到大位宽,是安全的,不会有精度损失。
ap_uint<8> res;
ap_int<4> v1 = -4;
ap_uint<4> v2 = 4;
res = v1; //由于v1是负数,因此将符号位展宽到8bit
res = v2; //由于v2是正数,因此将高位补0到8bit
5、隐式数据类型转换2:Implicit类型转换。将大的位宽转换到小位宽,可能导致精度损失。
6、显示数据类型转换。
ap_uint<3> i3 = 4; //u表示无符号
ap_uint<4> i4 = 10;
ap_ufixed<6,4> i5 = i4 / i3;
//整型/整型,得到的结果自动取整,将取整后的结果赋值给i5,因此i5=2;
7、数据操作后的位宽确定。
8、可用typeid获取变量的数据类型信息。
9、总结。