目录

一、不恢复余数法(Non-Restoring Division Algorithm)

二、不恢复余数法流程图以及例子


上期我们介绍了二进制除法器中的恢复余数法,本期介绍不恢复余数法。

一、不恢复余数法(Non-Restoring Division Algorithm)

不恢复余数法商数的选择使用{-1,1}代替{0,1}。虽然相比于不恢复余数法算法复杂一些,但是硬件实现上更有优势,每产生一个商的比特位只需要一次加或减操作,并且在减法操作后不需要进行余数恢复,使得执行的速度更快。

不恢复余数法其算法如下,参考wiki:

【HDL系列】除法器(2)——不恢复余数法

其中,

N为被除数,

D为除数。

R为余数,

Q为商。

商比特位-1一般存储映射为0,由于余数R的范围为:-D <= R < D。比如5/3=?的R和Q的结果:

5 = 2*3-1,Q=2,R=-1

5 = 1*3+2,Q=1,R=2

所以需要通过以下算式校准,将余数R转换为正数:

【HDL系列】除法器(2)——不恢复余数法

二、不恢复余数法流程图以及例子

不恢复余数法的流程图如下,以下用A替代为中间寄存器,初始化为被除数N:

【HDL系列】除法器(2)——不恢复余数法

不恢复余数法流程图

 

使用不恢复余数法求被除数N=10,除数D=3的商Q和余数R?

10的二进制为1010

3的二进制为0011

-3的二进制为1101

初始化如下:

n  = 4

D  = 000110000

-D = 111010000(忽略低4位)

A  = 000001010(预留一位进位)

R  = 0000

Q  = 0000

【HDL系列】除法器(2)——不恢复余数法

谢谢您的阅读!

原创不易,如果对您有帮助,记得点赞关注哦。欢迎批评指正,谢谢鼓励!

一起“纸上谈芯”,共同学习:

【HDL系列】除法器(2)——不恢复余数法

相关文章:

  • 2021-09-02
  • 2021-08-03
  • 2021-04-25
  • 2021-05-17
  • 2021-12-06
  • 2021-12-29
  • 2021-11-29
  • 2022-12-23
猜你喜欢
  • 2021-11-01
  • 2021-10-01
  • 2021-10-19
  • 2021-04-03
  • 2021-06-14
  • 2022-01-04
  • 2021-11-03
相关资源
相似解决方案