加法器------半加法器,全加法器,超前进位加法器

一、加法器是什么

举个例子,要表示一个 8 位数的整数,简单地用 8 个 bit,也就是 8 个电路开关。那 2 个 8 位整数的加法,就是 2 排 8 个开关。加法得到的结果也是一个 8 位的整数,所以又需要 1 排 8 位的开关,要想实现加法,我们就要看一下,通过什么样的门电路,能够连接起加数和被加数,得到最后期望的和。

加法器------半加法器,全加法器,超前进位加法器_第1张图片
加法器其实就是想用一个办法把这三排开关给连起来

二、半加法器

先看半加法器怎么组成的,构成的基础就是几个门电路组合起来的,就像堆积木,我们今天包含十亿级别晶体管的现代CPU,都是由这样的一个一个的门电路组合而成的。半加器也不例外,半加器可以解决个位的加法问题,通过一个异或门计算出个位,通过一个与门计算出是否进位,我们就通过电路算出了一个一位数的加法。于是,我们把两个门电路打包,给它取一个名字,就叫作半加器!
具体的电路如图:
加法器------半加法器,全加法器,超前进位加法器_第2张图片
co是进位,s是加数和被加数的和!

三、全加器

半加器可以解决个位的加法问题,但是如果放到二位上来说,就不够用了,那么全加器就是用来解决的这个问题的,2个全加器加上一个或门构成了一个全加器,
第一个半加器,我们用和个位的加法一样的方式,得到是否进位 X 和对应的二个数加和后的结果 Y,这样两个输出。然后,我们把这个加和后的结果 Y,和个位数相加后输出的进位信息 U,再连接到一个半加器上,就会再拿到一个是否进位的信号 V 和对应的加和后的结果 W。如下图所示:
加法器------半加法器,全加法器,超前进位加法器_第3张图片

比如我们要计算8位二进制,就需要8个加法器,把这8个全加器串联起来就好了,下面的S7,S6,S0就是开篇最下面的8个开关的值
注意:对于全加器,在个位,我们只需要用一个半加器,或者让全加器的进位输入始终是 0。因为个位没有来自更右侧的进位。而最左侧的一位输出的进位信号,表示的并不是再进一位,而是表示我们的加法是否溢出了
加法器------半加法器,全加法器,超前进位加法器_第4张图片

四、超前进位加法器

由于全加器是串联起来的,进位传递的时候会有很大延迟,就造成了时间的浪费,超前进位加法器就是用电路的复杂程度来换时间的。
下面先看一下图,应该会一目了然
加法器------半加法器,全加法器,超前进位加法器_第5张图片
我们应该多关注进位传播和进位产生,主要与我们输入的数据有关,下面来看一下进位传播项pi和进位产生项gi:
加法器------半加法器,全加法器,超前进位加法器_第6张图片
加法器------半加法器,全加法器,超前进位加法器_第7张图片
把c1、c2、 c3代入c4,化简一下,因此,超前进位加法器就是可以直接建立输入ao、 a1、a2、a3、bo、 b1、 b2.、b3、 co到输出S3, c4的关系,不需等待中间变量c1、c2、 c3的运算,因而速度更快,但同时电路会更复杂。(用电路复杂度换时间)

你可能感兴趣的:(计算机组成原理,其他)