图3-1 除法器div4的内部逻辑结构框图
(2)其电路图如图3-2所示
图3-2 除法器div4的电路图
(2)32位除法器Div32设计
(1)首先,先连接一个一次32div32的除法器,即已知当前的余数和当前的商,推算出下一位的余数和下一位的商。将该子电路命名为32div_1
32div_1子电路的设计思路如下:
1. 32div_1有d、cur_quot、cur_rem三个输入端,有next_quot,next_rem两个输出端。
2. 将当前余数左移一位,余数的最低为补商的最高位
3. 商左移一位,最低位补0还是1根据以下步骤判断:将移位后的余数与除数d比较,d>rem时,商的最低位应该补0;否则,商的最低位应该补1。将商输出,即为next_quot。
4. d>rem时,余数仍为移位后的余数;否则,余数rem = rem-d。将rem输出,即为next_rem。
将该操作重复32次,即将32个已经封装好的32div_1相连,则产生的即为32div32除法器。
(2)其电路图分别如下所示: 图3-3为32div_1的除法器的内部图:
图3-3 32div_1除法器的内部原理图
图3-4为32div32的除法器图:
图3-4 32div32除法器内部原理图
6、实验结果记录
根据实验方案设计要求,对于相应的乘法器和除法器,在给定的输入条件下,填写表2-1。
表2-1 无符号数的乘法器实验结果记录表
电路 输入1(16进制) 输入2(16进制) n2=0E n2=0E n=0n=0019ABEF1 A0504EF1 d=0d=0d=0d=09 0 00004EF1 019ABEF1 输出(16进制) quot=0F quot=0E quot=0534 quot=063 rem=07 rem=0E rem=0 fd rem=017877be Div4 Div4 Div32 Div32
图3-5
图3-6
图3-7
图3-8
7、实验中遇到的问题及解决方法
(1)故障1
问题描述:在设计4位除法器时比较器出现了问题,当被除数位1110,除数为1100时出现了错误的输出。后来发现原来是因为比较器的数据类型是关于2的补码,在一些情况下会输出错误的结果。
问题分析:比较器的数据类型是关于2的补码,所以在比较的时候不会按照无符号数来进行比较。
解决方法:将比较器的数字类型改为无符号数。
(2)故障2
问题描述:在设计32位除法器时电路显示出现明显振荡,所以会输出错误的结果。
问题分析:由于32位除法器电路不稳定所以会引起振荡。 解决方法:在电路的输入和输出处添加一个探测器。
相关推荐: