Math 硬件浮点平方根

Math 硬件浮点平方根,math,floating-point,verilog,ieee-754,square-root,Math,Floating Point,Verilog,Ieee 754,Square Root,浮点平方根的硬件实现是如何工作的?他们会使用哪种算法?有人能提供到verilog/vhdl实现的链接吗?通过在硬件中实现1/sqrt(x)的近似值,可以像英特尔处理器那样提供10或12位精度,从而获得最佳性价比。然后,使用好的老牛顿迭代,仅使用加法/减法/乘法来改进近似值,并将最后一个近似值乘以x 另一方面,考虑x的平方根与x除以x的平方根相同。您可以实现非常类似于除法的东西,每次都提供一点精度,除了在每次迭代中被更改的除数 通过在硬件中实现1/sqrt(x)的近似值,可以像英特尔处理器那样提供

浮点平方根的硬件实现是如何工作的?他们会使用哪种算法?有人能提供到verilog/vhdl实现的链接吗?

通过在硬件中实现1/sqrt(x)的近似值,可以像英特尔处理器那样提供10或12位精度,从而获得最佳性价比。然后,使用好的老牛顿迭代,仅使用加法/减法/乘法来改进近似值,并将最后一个近似值乘以x


另一方面,考虑x的平方根与x除以x的平方根相同。您可以实现非常类似于除法的东西,每次都提供一点精度,除了在每次迭代中被更改的除数

通过在硬件中实现1/sqrt(x)的近似值,可以像英特尔处理器那样提供10或12位精度,从而获得最佳性价比。然后,使用好的老牛顿迭代,仅使用加法/减法/乘法来改进近似值,并将最后一个近似值乘以x


另一方面,考虑x的平方根与x除以x的平方根相同。您可以实现非常类似于除法的东西,每次都提供一点精度,除了在每次迭代中被更改的除数

AFAIK,数字递归算法(很少的资源)或牛顿对平方根倒数的迭代(需要其他运算符:加法器、乘法器或FMA)


关于牛顿迭代,初始近似值的选择并不明显。参见Kornerup和Muller的文章。

AFAIK,数字递归算法(很少资源)或牛顿对平方根倒数的迭代(需要其他运算符:加法器、乘法器或FMA)


关于牛顿迭代,初始近似值的选择并不明显。请参阅Kornerup和Muller的文章。

是否查找整数平方根?你可以通过移位得到一个偶数指数,然后将该指数除以2来使用它。你找过整数平方根吗?你可以通过移动得到一个偶数的指数,然后将这个指数除以二。