硬件浮点平方根

时间:2014-07-11 23:55:45

标签: math floating-point verilog ieee-754 square-root

浮点平方根的硬件实现如何工作?他们会使用哪种算法,任何人都可以提供verilog / vhdl实现的链接吗?

2 个答案:

答案 0 :(得分:3)

AFAIK,数字递归算法(小资源)或倒数平方根上的牛顿迭代(需要其他算子:加法器,乘法器或FMA)。

关于牛顿迭代,初始近似的选择并不明显。参见Kornerup和Muller的文章Choosing starting values for certain Newton–Raphson iterations

答案 1 :(得分:2)

通过在硬件中实现1 / sqrt(x)的近似值,可以得到最好的收益,可以提供10或12位的精度,就像英特尔处理器那样。然后使用良好的旧牛顿迭代来仅使用加/减/乘法来改进该近似,并将最后的近似值乘以x。

或者,考虑计算x的平方根与x除以x的平方根相同。你可以实现一个非常类似于除法的东西,每次都给出一点精度,除了你在每次迭代中除以变化的数字。