UC Berkeley hardfloat的浮点除法/平方根算法是什么?

时间:2019-07-14 09:54:51

标签: floating-point division riscv chisel

最近,我一直在研究berkeley-hardfloat(https://github.com/ucb-bar/berkeley-hardfloat/blob/master/src/main/scala/DivSqrtRecF64_mulAddZ31.scala)的代码。我已经绘制了DivSqrtRecF64ToRaw_mulAddZ31的时序图,但是我无法理解它的算法,尤其是用乘法和加法代替除法的原理(第439-711行)。谁可以向我详细解释?

1 个答案:

答案 0 :(得分:0)

查看同级文件DivSqrtRecFN_small.scala,它包含正在发生的事情的公式,并且看来两者的方法是相同的。

对于高速除法或平方根的另一种方法,您可以搜索例如Goldschmidt除法-它是在AMD x86 CPU中实现的。