文档目录

B.6. 默认舍入方案和非规格数(Subnormal Number)支持

对于math.h和extendedmath.h头文件中定义的某些浮点运算,您可以通过--daz i++命令选项来控制操作是否支持非规格数(subnormal number)。可以通过将非规格数四舍五入为零来禁用非规格数支持从而节省FPGA面积。

此外,您还可以通过--rounding i++命令选项控制用于单精度和双精度加法器、乘法器和除法器的舍入方案。

对于单精度运算,非规格数支持不适用。

下表显示了单精度和双精度浮点运算符的默认非规格数支持和舍入方案。

表 80.  单精度浮点运算符的默认非规格数支持和舍入方案

关于舍入方案的描述,请参阅Intel HLS Compiler Pro版命令选项中关于--rounding i++命令选项说明。

单精度浮点操作符 默认非规格支持 默认舍入方案
+ N/A IEEE-754 RNE
- N/A IEEE-754 RNE
* N/A IEEE-754 RNE
/ N/A 忠实舍入(Faithful)
表 81.  双精度浮点运算符的默认非规格数支持和舍入方案

关于舍入方案的描述,请参阅Intel HLS Compiler Pro版命令选项中关于--rounding i++命令选项说明。

双精度浮点操作符 默认非规格支持 默认舍入方案
+ On IEEE-754 RNE
- On IEEE-754 RNE
* On IEEE-754 RNE
/ On 忠实舍入(Faithful)
对于如下双精度浮点函数,非规格数支持默认开启:
  • sqrt
  • floor
  • ceil
  • cbrt
  • rsqrt
  • hypot
  • modf
  • exp
  • expm1
  • exp2
  • exp10
  • log
  • log1p
  • log2
  • log10
  • powr
  • pown
  • sin
  • cos
  • tan
  • sinpi
  • cospi
  • tanpi
  • asin
  • acos
  • atan
  • atan2
  • asinpi
  • acospi
  • atanpi
  • sincos
该舍入方案不适用于这些函数。