首页 > 编程知识 正文

数字电路消项法(除法器电路)

时间:2023-05-04 00:20:58 阅读:74759 作者:934

除法运算过程

流程:

被除数和馀数:将馀数和被除数视为一个,共享寄存器,初始值作为被除数

除数:持续向右移动,被认为是从被除数中减去的

商:可视为各位依次生成,不断左移

除法器工作流程

需要注意的是,与手工计算相比,电路实现总是对馀数进行减数,因此如果差值小于0,则执行回滚操作。

怎么退? 实际上,没有实际的回退方法。 因为之前正在执行减法,所以后退只要加上就可以了。

除法器的电路实现

作业步骤:

初始化:在“馀数寄存器”中放置8-bit被除数,在“馀数寄存器”的前4位放置4-bit除数,使4-bit商寄存器归零

执行减法:将馀数-除数、结果放入“馀数寄存器”

检查剩馀寄存器的最高有效位(判断正负)。 如果值小于0,则回滚,商向左移动,新的最右边位设置为0; 如果值大于或等于0,则商向左移动,新的最右边位设置为1。

除数寄存器向右移位1位

检查是否为最后一个倒圆角(本例中为第五个倒圆角) ) )。

32-bit除法器也同样可以得到

除法器的面积优化

对上面的32-bit除法器进行面积分析:

“除数寄存器”实际上只使用了一半

“商寄存器”最初是空的,从左到右依次填满

“剩余寄存器”最初已满,实际有意义的位在每个周期从左向右依次减少

相应地,我们可以得到对上述问题的方案。

“除数寄存器”缩小为32位,无需支持移位

取消“商寄存器”,商从右端向“馀数寄存器”逐一移位

64位Alu缩小到32位

"剩馀寄存器"只有前32位参与加减运算

“剩馀寄存器”需要对应左移和右移

运算结束后,商占“剩馀寄存器”的后32位

其中有两点需要注意:

将优化的除法器向右移动。 优化后的除法器运算步骤首先相减,然后左移。 例如0000,0111/0010。 每次左移、减法时,最后一步得出00110001,在最后一个循环中,减法后左移。 真正的商品是: 0011,所以余数是000001。最终,应该先取后4位的商品,然后把前4位的余数向右移动。

和乘法器一样,馀数寄存器实际上应该是65位,以防止加法器进位丢失。

转自: https://www.cn blogs.com/lfri/p/10047038.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。