计算机组成原理--除法电路的工作

  在上一篇博文(除法电路)中,介绍了 “八位数除以四位数” 的电路。
  这个除法电路所使用的算法,是无符号数的除法运算,可见除法运算的方法

  小学学过的除法,是:用被除数减去除数,得到余数之后,在右边落下一位被除数,再把除数右移一位,再次相减。。。
  这种方法也可等效为:用被除数减去除数,得到余数之后,左移一位,接续上下一位的被除数,与除数对齐,再次相减。。。
  这两种除法
的方法步骤可见下图

  小学的除法,大家都会,就不解释了。
  等效的除法,每一步,在图中都有说明。

  因为,要求出四位的商,就必须做:四次减法运算和四次左移一位的操作。 每次相减之后,都要根据借位的值,确定商的值。 当借位为 0,表示够减,商当然应该上 1。 而当不够减时,借位为 1,商就应该是 0。 值得注意的是:借位为 1 时,下一步就不要理会余数了,而是直接将被除数左移一位。(可见上图中的步骤 ③ 。)

  为了实现上述的除法运算步骤,做而论道设计了一个除法电路如下所示。

  初始化时,由左下角的拨动开关输入被除数 A、除数 B。
  再将左上角的
拨动开关(SW1)拨到 “初始化” 位置、然后按一下 “时钟” 按键,被除数和除数,就送到了减法电路的输入端。
  减法电路立即就算出了差值:F1~F0 = 0011 0110、借位:C7 = 0。
  此时,电路的状态,就如上图所示。 
  在图中,以红点表示高电平、蓝点表示低电平。 可以看到,此时的运算结果(0、0011 0110),和第一幅竖式图中第①步的借位差值完全相同。

  如果继续计算,就必须把拨动开关(SW1)拨到 “做除法” 位置,在 U1U2 的引脚 1 输入低电平,即可令余数 F7~F0 通过 “二选一” 电路送到移位电路的并行置数端。

  当把 SW1 拨到 “做除法” 后,再按一下 “时钟” 按键,会发生什么呢?
  此时的借位 C7 = 0,通过反相器则为 1。这个 1,就使移位电路处于 “并行置数” 状态。 在此时按一下 “时钟” 键,产生一个 CLK 脉冲,就会把 0011 0110 置入到移位电路中。 同时,该时钟脉冲(CLK),也会把反相器输出的 1 (也就是本位的商),存入到 D 触发器,再送入 “右串入” 端,以备左移一位时使用。 
  刚才的 CLK 脉冲把余数置入到移位电路后,也就和除数做了减法。余数减除数,当然是不够减,借位就变为 1,经过反相即为 0。这个 0,就使移位电路处于 “左移一位” 状态。 在此时再按一下 “时钟” 键,就会把 0011 0110 左移一位,并且把 “右串入” 端的 1 (即本位的商) 移入到移位电路中。 此次的移位结果就是:0110 1101。 
  至此,就完成了第一步 “相减、移位” 的操作。
  此时的电路状态,可见下图。 仔细观察图中(红白圈内)的红蓝点,可见,与第一幅图中第②步的数据,是完全相同的。

  此时的借位,也是为 0 的,所以,本电路应该做的工作,就与上一步完全相同。 那么,你就再按两次 “时钟” 键吧,一次是并行置数、一次是左移一位。 两次按键之后,电路的状态,就如下图所示。

  此时的借位是 C7 = 1,代表不够减! 那么,余数是多少,就不用看了,也不用考虑什么恢复余数。 因为此时,不需要置数,只需将被除数(0011 1011)左移一位,并且商上 0 即可。
  此时的借位,经过反相为 0,正好就令移位电路进行移位的控制信号。 你仅需按一次 “时钟” 键,就可以完成移位和上商的操作。
  当你按过一次 “时钟” 键后,电路的状态,就如下图所示。

  仔细观察图中的红蓝点,可见,与第一幅图中第④步的数据,是完全相同的。

  此时,还需要上最后一位的商。 因为此时的借位是 0,就需要按两次 “时钟” 键,一次是令其置数、一次是移位上商。 那就按两次吧。 按完之后,电路状态就如下图所示。

  此时,八位数除以四位数的除法运算,就做完了。
  由图中的(红白圈中的)红蓝点可知,商数是:1101、余数是:0100。
  这个运算结果,与竖式图中的最后结果,是完全相同的。 这说明,本电路所做的计算,是完全正确的。
  这个运算结果,当然也可用导线引出来,连接到 LED 显示器,或做其它用途。 那些事,就与除法运算无关了,不予赘述。

  对电子线路感兴趣的网友,可以使用 PROTEUS 软件,按图索骥,绘制这个电路图,用不同的数据进行实验,即可验证本电路的正确性。

--本文完--

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值