主要内容GydF4y2Ba

本机浮点的数值注意事项GydF4y2Ba

本机浮点技术可以从浮点设计生成HDL代码。与定点设计相比,浮点设计具有更好的精度、更高的动态范围和更短的开发周期。如果您的设计具有复杂的数学和三角运算,请使用本机浮点技术。GydF4y2Ba

HDL Coder™生成符合IEEE-754浮点运算标准的代码。HDL Coder原生浮点支持:金宝appGydF4y2Ba

  • 四舍五入到最近的四舍五入模式GydF4y2Ba

  • 非规范数GydF4y2Ba

  • 异常,如NaN(非数字)、Inf和零GydF4y2Ba

  • ULP(最后一位的单位)的定制和相对准确性GydF4y2Ba

四舍五入到最近的四舍五入模式GydF4y2Ba

HDL Coder原生浮点使用整数到最接近的四舍五入模式。该模式通过舍入到最近的偶数来解析所有的关系。GydF4y2Ba

这种舍入方法要求尾数的23位之后至少有三个尾随位。MSB称为保护位,中间位称为圆位,LSB称为粘性位。下表显示了HDL编码器根据三个尾随位的不同值执行的舍入操作。GydF4y2BaxGydF4y2Ba表示一个GydF4y2Ba不关心GydF4y2Ba值,可以取0或1。GydF4y2Ba

舍入位GydF4y2Ba 舍入操作GydF4y2Ba
0 xxGydF4y2Ba

未执行任何操作。GydF4y2Ba

One hundred.GydF4y2Ba 领带。如果保护位之前的尾数位为1,则向上取整,否则不执行任何操作。GydF4y2Ba
101GydF4y2Ba 使聚集GydF4y2Ba
11倍GydF4y2Ba 使聚集GydF4y2Ba

Denormal数字GydF4y2Ba

非正数是指指数域等于零和尾数域非零的数。尾数的前导位为零。GydF4y2Ba

vGydF4y2Ba A.GydF4y2Ba LGydF4y2Ba UGydF4y2Ba EGydF4y2Ba =GydF4y2Ba (GydF4y2Ba −GydF4y2Ba 1.GydF4y2Ba )GydF4y2Ba sGydF4y2Ba 我GydF4y2Ba GGydF4y2Ba NGydF4y2Ba *GydF4y2Ba (GydF4y2Ba 0GydF4y2Ba +GydF4y2Ba ΣGydF4y2Ba 23GydF4y2Ba 我GydF4y2Ba =GydF4y2Ba 1.GydF4y2Ba BGydF4y2Ba 23GydF4y2Ba −GydF4y2Ba 我GydF4y2Ba 2.GydF4y2Ba −GydF4y2Ba 我GydF4y2Ba )GydF4y2Ba *GydF4y2Ba 2.GydF4y2Ba −GydF4y2Ba 126GydF4y2Ba

非正规数的大小小于可以在尾数中不带前导零表示的最小浮点数。正常数的存在表明有效数字的丢失,这些数字可能在后续操作中积累,最终导致意外值。GydF4y2Ba

处理正规数的逻辑包括计算前导零的数目,并执行左移操作以获得规范化表示。添加此逻辑会增加目标设备上的区域占用,并可能影响设计的时间。GydF4y2Ba

使用本机浮点支持时,可以指定是否希望HDL编码器在设计中处理非规范金宝app数字。GydF4y2Ba

异常处理GydF4y2Ba

如果执行诸如除零或计算负数对数之类的操作,HDL编码器将检测并报告异常。该表总结了各种异常情况下从浮点数编码到数字值的映射。GydF4y2BaxGydF4y2Ba表示一个GydF4y2Ba不关心GydF4y2Ba值,可以取0或1。GydF4y2Ba

标志GydF4y2Ba 指数GydF4y2Ba 意义GydF4y2Ba 价值GydF4y2Ba 描述GydF4y2Ba
xGydF4y2Ba 0 xffGydF4y2Ba 0 x00000000GydF4y2Ba

vGydF4y2Ba A.GydF4y2Ba LGydF4y2Ba UGydF4y2Ba EGydF4y2Ba =GydF4y2Ba (GydF4y2Ba −GydF4y2Ba 1.GydF4y2Ba )GydF4y2Ba sGydF4y2Ba ∞GydF4y2Ba

无穷GydF4y2Ba
xGydF4y2Ba 0 xffGydF4y2Ba 非零值GydF4y2Ba

值=南GydF4y2Ba

不是一个数字GydF4y2Ba
xGydF4y2Ba 0x00GydF4y2Ba 0 x00000000GydF4y2Ba

值= 0GydF4y2Ba

零GydF4y2Ba
xGydF4y2Ba 0x00GydF4y2Ba 非零值GydF4y2Ba

vGydF4y2Ba A.GydF4y2Ba LGydF4y2Ba UGydF4y2Ba EGydF4y2Ba =GydF4y2Ba (GydF4y2Ba −GydF4y2Ba 1.GydF4y2Ba )GydF4y2Ba sGydF4y2Ba 我GydF4y2Ba GGydF4y2Ba NGydF4y2Ba *GydF4y2Ba (GydF4y2Ba 0GydF4y2Ba +GydF4y2Ba ΣGydF4y2Ba 23GydF4y2Ba 我GydF4y2Ba =GydF4y2Ba 1.GydF4y2Ba BGydF4y2Ba 23GydF4y2Ba −GydF4y2Ba 我GydF4y2Ba 2.GydF4y2Ba −GydF4y2Ba 我GydF4y2Ba )GydF4y2Ba *GydF4y2Ba 2.GydF4y2Ba −GydF4y2Ba 126GydF4y2Ba

非规范GydF4y2Ba
xGydF4y2Ba 0x00 xGydF4y2Ba

vGydF4y2Ba A.GydF4y2Ba LGydF4y2Ba UGydF4y2Ba EGydF4y2Ba =GydF4y2Ba (GydF4y2Ba −GydF4y2Ba 1.GydF4y2Ba )GydF4y2Ba sGydF4y2Ba 我GydF4y2Ba GGydF4y2Ba NGydF4y2Ba *GydF4y2Ba (GydF4y2Ba 1.GydF4y2Ba +GydF4y2Ba ΣGydF4y2Ba 23GydF4y2Ba 我GydF4y2Ba =GydF4y2Ba 1.GydF4y2Ba BGydF4y2Ba 23GydF4y2Ba −GydF4y2Ba 我GydF4y2Ba 2.GydF4y2Ba −GydF4y2Ba 我GydF4y2Ba )GydF4y2Ba *GydF4y2Ba 2.GydF4y2Ba (GydF4y2Ba EGydF4y2Ba −GydF4y2Ba 127GydF4y2Ba )GydF4y2Ba

典型的GydF4y2Ba

相对准确性和ULP注意事项GydF4y2Ba

用有限位数表示无限实数需要近似值。这种近似可能导致浮点计算中的舍入错误。为了测量舍入误差,浮点标准使用相对误差和ULP(最后一位的单位)误差。GydF4y2Ba

ULPGydF4y2Ba

如果指数范围不是上限,则浮点数x的最后一位单位(ULP)是最接近x的两个最接近的跨接浮点数a和b之间的距离。IEEE-754标准要求基本算术运算(如加法、乘法和除法)的结果是正确的四舍五入。正确的四舍五入结果意味着四舍五入结果与精确结果的误差在0.5 ULP以内。GydF4y2Ba

一个ULP为1表示添加一个GydF4y2Ba1.GydF4y2Ba到数字的十进制值。该表显示了pi到九位十进制数字的近似值,以及一位的ULP如何改变近似值。GydF4y2Ba

浮点数GydF4y2Ba 十进制值GydF4y2Ba IEEE-754单一类型的表示法GydF4y2Ba ULPGydF4y2Ba
3.141592741GydF4y2Ba 1078530011GydF4y2Ba 0|10000000|10010010000111111011011GydF4y2Ba 0GydF4y2Ba
3.141592979GydF4y2Ba 1078530012GydF4y2Ba 0|10000000|10010010000111111011100GydF4y2Ba 1.GydF4y2Ba

两个连续表示的浮点数之间的间隔根据大小而变化。GydF4y2Ba

浮点数GydF4y2Ba 十进制值GydF4y2Ba IEEE-754单一类型的表示法GydF4y2Ba ULPGydF4y2Ba
1234567GydF4y2Ba 1234613304GydF4y2Ba 0 | 10010011 | 10010011GydF4y2Ba 0GydF4y2Ba
1234567.125GydF4y2Ba 1234613305GydF4y2Ba 0 | 10010011 | 10010011GydF4y2Ba 1.GydF4y2Ba

相对误差GydF4y2Ba

相对误差度量浮点数与实数近似值之间的差值。相对误差返回从1.0到下一个较大数字的距离。此表显示了数字的实际值如何随相对精度而变化。GydF4y2Ba

浮点数GydF4y2Ba 十进制值GydF4y2Ba IEEE-754单一类型的表示法GydF4y2Ba ULPGydF4y2Ba 相对误差GydF4y2Ba
8388608GydF4y2Ba 1258291200GydF4y2Ba 0|10010110|00000000000000000000000GydF4y2Ba 0GydF4y2Ba 1.GydF4y2Ba
8388607GydF4y2Ba 1258291198GydF4y2Ba 0|10010101|11111111111111111111110GydF4y2Ba 1.GydF4y2Ba 2.3841858 e-07GydF4y2Ba
1.GydF4y2Ba 1065353216GydF4y2Ba 0 | 01111111 | 01111111GydF4y2Ba 0GydF4y2Ba 1.1920929 e-07GydF4y2Ba
2.GydF4y2Ba 1073741824GydF4y2Ba 0 | 10000000 | 10000000GydF4y2Ba 1.GydF4y2Ba 2.3841858 e-07GydF4y2Ba

相对误差的大小取决于浮点数的实际值。GydF4y2Ba

在MATLABGydF4y2Ba®GydF4y2Ba这个GydF4y2Ba每股收益GydF4y2Ba函数测量浮点数的相对精度。有关详细信息,请参阅GydF4y2Ba每股收益GydF4y2Ba.GydF4y2Ba

另见GydF4y2Ba

建模指南GydF4y2Ba

功能GydF4y2Ba

相关实例GydF4y2Ba

更多关于GydF4y2Ba