admin 管理员组

文章数量: 1087858


2024年4月30日发(作者:伦勃朗布光要点)

河北大学 计算机组成原理 实验报告

学院

年级

专业

学号

姓名

实验日期

实验地点

指导老师

实验项目

不恢复余数阵列除法器

成绩

一、 实验目的:

理解除法器的原理。

二、实验原理:

这次实验实现原码不恢复余数法的阵列除法器算法(余数左移除数固定),详细计算过程如下。

例题:X=0.10110,y=0.111,求[x/y]原。则[x]补=0.10110,[y*]补=0.111,[-y*]补=1.001

被除数

00.101 100

步骤说明

减去除数

+ 11.001(减去除数)

11.110 100

11.101 000(左移一位)

0 余数为负,商上0,左移一位,加上[y*]补,

此时count=3

+ 00.111(加上除数)

00.100 000

01.000 000(左移一位)

01 余数为正,商上1,左移一位,减去除数,

此时count=2

+ 11.001(减去除数)

00.001 000

00.010 000(左移一位)

011 余数为正,商上1,左移一位,减去除数,

此时count=1

+ 11.001(减去除数)

11.011 000 0110 余数为负,商上0,此时count=0,停止运

算,发现余数小于0,加上[y*]补恢复

+ 00.111(加上除数)

00.010 000

由于除数被除数都为正,因此最后结果为正,直接在最后的结果加上“+”,商为+0.110,但是由于除数在

计算的过程中被逻辑左移了3次,所以要乘以2^进行恢复,故余数为0.000 010 000。

-5

原码不恢复余数法原理说明:

①符号位单独处理,参加运算的是除数和被除数的绝对值的补码,除数的绝对值用y*表示;

②合法的除法运算中,被除数必须小于除数,因此第一次上商肯定是r

6

=0,否则溢出,停止运算;

③原码恢复余数法来源于手算的竖式除法。若余数为正,表示够减,商上1,左移一位,减去[y*]补,也就是加上[-y*]补;若

余数为负,表示不够减,商上0,恢复余数(加上除数),变成减去除数之前的结果,继续左移一位,加上[-y*]补。

④原码不恢复余数法建立在原码恢复余数法的基础之上,假设当前的余数为R。当余数大于0时,下一步余数是先左移一位

再减去除数,即下一步余数应该为R’=2R-y*;当余数小于0时先恢复余数,然后再左移一位再减去除数,假设当前余数为R,

那么下一步余数应该为R’=2(R+y*)-y*=2R+y*。以上两个式子将恢复余数法的步骤定量化了,也就是说,要么左移一位加上y*,

要么左移一位减去y*,这就是加减交替的含义。

⑤除数和被除数具有3位尾数的合法的除法,需要逻辑移位3次,上商3+1=4次。可以设置一个计数器count来控制循环次

数,达到3次就停止。

⑥若最后一步为负,表示不够减,商上0,需要恢复余数,即加上除数,否则不需要。

接下来介绍原码不恢复余数阵列除法器

①可控加法/减法(CAS)单元

原理是利用一个可控加法/减法 CAS 单元所组成的流水阵

列来实现的它有四个输出端和 四个输入端。当输入线 P=0

时,CAS 作加法运算;当 P=1 时,CAS 作减法运算。逻辑

结构图 如图所示。 不恢复余数阵列除法器的逻辑结构

图 CAS 单元的输入与输出的关系可用如下一组逻辑方程来

表示:

Si=Ai⊕(Bi⊕P)⊕C,Ci+1=(Ai+Ci)· (Bi⊕P)+AiCi

当 P=0 时,就是一个全加器,如下式: Si=Ai⊕Bi⊕Ci ,Ci+1=AiBi+BiCi+AiCi 当 P=1 时,则得求差公式: Si=Ai⊕非Bi

⊕Ci ,Ci+1=AiBi+BiCi+AiCi ,其中 非Bi=Bi⊕1。 在减法情况下,输入 Ci 称为借位输入,而 Ci+1 称为借位输出。

②不恢复余数的除法(加减交替法)

在不恢复余数的除法阵列中,每一行所执行的操作究竟是加法还是减法,取决于前一行输出的符号与被除数的符号是否一致。

当出现不够减时, 部分余数相对于被除数来说要改变符号。这时应该产生一个商位“0”,除数首先沿对角线右移,然后加到

下一行的部分余数上。当部分余数不改变它的符号时,即产生商位“1”,下一行的操作应该是减法。

本实验就采用加减交替的方法设计这个阵列除法器。

被除数为x= X0.x6x5x4x3x2x1(这里需要右移,是双倍长);除数为y=Y0.y3y2y1。其中 X0 和 Y0 是被除数和除数的符号位,在

本次设计中 X0 和 Y0 为零,商的符号位恒为零,商为q4.q3q2q1,余数为0.00r6r5r4r3。字长n+1=4


本文标签: 恢复 除数 被除数 符号 除法