直观理解SRT除法

恢复余数除法:商选择{1,0},每次迭代需要试减。

不恢复余数除法:商选择{1,-1},每次迭代直接比较余数是否大于0,最后需要商转译。

基2SRT除法:商选择{1,0,-1},通过使余数一直保持在特定区间,使商为0快速计算,如下图所示。

高基SRT除法:如基2SRT,商选择{2,1,0,-1,-2},实现更复杂但是能实现高基除法,一次计算2位商,极大加快计算速度

image-oatf.png

一些废话

写得最痛苦一个模块,资料全是数学公式。好不容易写出来后,发现初始化位移会影响结果,但是对初始化的讨论又很少。最终代码完完全全的屎山,完全诠释程序能跑就不要动...

下面是预处理的代码,简单把除数,被除数前面的0去除,前后的x'b0完全是一个个测出来的😄

image-lelo.png

参考

直观理解SRT除法,从不恢复余数除法开始! - 知乎 (zhihu.com)

硬件除法专题-SRT除法 - devindd - 博客园 (cnblogs.com)