HLS中使用浮点数
学习目标:
- 使用浮点数
- 换用自己的库进行高级综合
HLS中的浮点数
stratus HLS提供内置的浮点数,可以实现常规的加减乘操作,类型为:
cynw_cm_float<e,f,accurcy,rounding mode,NaN handle>
该类型共有5个模板参数,分别如下所示:
- e:指数位宽,为浮点数的指数位数
- f:尾数位宽,为浮点数的尾数位数
- accuracy:精确度,这一参数可以设置是否需要实现完整的IEEE标准浮点数。若需要实现则可以提高计算精度,若不实现则可以缩小面积提升性能。
- rounding mode:取整模式,推测为浮点数尾数处理中如何取整,具有多种模式
- NaN handle:用于选择如何处理NaN
对于指数位宽和尾数位宽,为每一个浮点数都具有的参数,不用过多解释;对于精确度,具有多种选项,每种选项具有不同的精度-代价折中,如下表所示:
标号 | 说明 |
---|---|
CYNW_REDUCED_ACCURACY | 默认情况,使用低精度低代价实现方法 |
CYNW_BEST_ACCURACY | 使用IEEE标准的浮点数 |