计组3——加/减法器构造

算术单元构造



前言

       通过上一节的内容,我们已经了解了如何“创造”出我们最基本的模块——与、或、非门,并使用这些基本模块构建出了与非门、或非门、异或门等。

       在这一节中我们将构建计算机最主要的功能模块——计算。众所周知,计算机干的工作就是计算功能,所以我们通过计算的原理来来构建算术单元


一、半加器

       加法器的构造解释有很多,大多都是从加法的一个实例来解释。有人会产生困惑,为什么自己手算很流畅的加法竖式,但是在转换成电路设计的时候还是理解不了为什么要这样设计?
       这里我认为是我们的思维还没有从改变过来。在我们学习的开始,我们也是一步一步走过来的,我们需要先算两个数的相加,然后判断是否进位,最后是进位符号是否参与运算。或许是我们经过多年的计算已经把这样的流程自然而然一步到位,但是电路设计还是要一步一步来设计,分而治之。

  1. 加法计算过程:
    0 + 0 -> 0 0
    0 + 1 -> 0 1
    1 + 0 -> 0 1
    1 + 1 -> 1 0

  2. 异或门(XOR)的真值表

XYZ
000
011
101
110
  1. 与门(AND)的真值表
XYZ
000
010
100
111
  1. 观察上面加法计算的计算过程,计算结果分为两列,前面的一列为进位后得到的结果,得到的结果与与门的真值表输出的结果一致。后面一列为两个数相加的结果。相加的结果与异或门真值表输出的结果一致。所以,半加器的构造可以使用一个异或门和与门进行构造。

半加器构造图如下:
在这里插入图片描述

       为了降低电路对我们理解上的困惑,我们会对电路进行封装,然而接口是对应的。如果对电路内部好奇,想知道它的全貌,那就把封装电路替换成真实电路即可。

二、全加器

半加器虽然可以解决两个数的相加,但距离真正的加法计算还有一步的距离。回想十进制的加法,两个整数相加,流程为:

  1. 个位计算:个位 + 个位 = 进位 数值
  2. 十位计算:十位 + 十位 + 个位的进位 = 进位 数值
  3. 百位计算:百位 + 百位 + 十位的进位 = 进位 数值

从上面的加法过程中可以看出,半加器的那一步距离就是进位,在个位的计算当中,可以写成 个位 + 个位 + 进位 0 = 进位 数值 的形式。

从下面的全加器构造图可以看出,A 和 B 使用半加器相加之后会产生一个进位和一个数值,数值和前面的进位继续使用一个半加器相加,也会产生一个进位和最终的结果。两个进位如何取舍呢?

下表是 一个 A + B 产生的进位1 和数值C, 数值C + 进位carry 产生的 进位和数值的过程表。

AB进位1数值Ccarry数值C + carry 的进位2数值C + carry 的数值
0000000
0101001
1001001
1110000
0000101
0101110
1001110
1110101

下表是一个 A + B + carry 的表,其中1 + 1 + 1 产生的进位为1 , 数值为 1。理解起来,进位的1其实就是个位的2,2 + 1 等于3。类比十进制的思想,向高一位的借1当10的思想一样,进位就是以10当1喽。

ABcarry进位3数值
00000
01001
10001
11010
00101
01110
10110
11111

将第一个表的进位1 和 进位 2 提取出来,与 第二个表的进位3 放在一起进行对比。

进位1进位2A + C + carrry的最终进位值 进位3
000
011
101

对比 或门 的真值表

进位1进位2进位3
000
011
101
111

所以全加器对两个半加器产生的 进位 可以使用一个 或门 进行输出。另外不难发现,两个半加器产生的进位1 和 进位 2 不能同时为1。

全加器构造图如下:
在这里插入图片描述
carry 表示进位

8位串行加法器构造图如下:
在这里插入图片描述

4位并联加法器构造图如下:
在这里插入图片描述

二、减法器

       学过计算机组成原理的知道减法可以变相的看成加法的运算。所以在计算减法时我们可以把输入B的原码进行取反,进位变成1,这就是我们的减法器了。使用开始构造的加法器进行改造吧!

8位减法器构造图如下:
在这里插入图片描述
       上面的电路图可以计算A-B,图中计算了1-2这个例子的计算结果,其中结果是补码的形式。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值