HLS 基础 (四 任意精度的数据类型的转换)

变量的定义与初始化

Vivado HLS支持拷贝初始化以及直接初始化;

可使用不同进制的数据进行初始化:

ap_int<6> a_6bit_var_r2("0b101010",2);后面的2表示进制。下同。

image-20220508172416051

尽量每行只定义一个变量。

ap_[u]fixed变量的定义与初始化

ap_[u]fixed<W,I,Q,O>

image-20220508173000546

float类型的定义

image-20220508173152504

Math

Vivado HLS Math library (hls_math.h) 提供了对标准C(math.h)和C++(cmath.h)库的综合支持。

image-20220508173411984

隐式类型转换

隐式类型转换也叫做自动类型转换。

  • Numeric promotion
    • 安全的,小类型向大类型的转换,符号位的扩展,无符号的就是补0扩展;
  • Numeric conversion

image-20220508175832454

大类型向小类型转换时,可能会导致数据的损失。

image-20220508180124548

显式的数据类型转换

image-20220508180440819

二进制运算

操作数与结果的位宽关系:保证大数据不溢出,小数据不损失。

image-20220508180554399

获取类型信息:

需要包含头文件:#include<typeinfo>

image-20220508180753435

summary

image-20220508180901403

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022-2024 lk
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信