兰州交通大学毕业设计(论文) 2. 基本加法器 2.1 加法器
数字电子计算机能进行各种信息处理,其中最常用的是各种算数运算。因为算数中的加、减、乘、除四则运算,在数字电路中往往是将其转化为加法运算来实现的,所以加法运算是运算电路的核心。能实现二进制加法运算的逻辑电路称为加法器[2]。
2.1.1 半加器
不考虑低位来的进位,只对两个一位二进制数相加的运算称为半加。实现半加运算的电路叫做半加器(Half Adder),简称HA。两个一位二进制数相加的真值表如表2.1所列,由表2.1可直接写出半加器的输出逻辑函数表达式:
(2.1-1) (2.1-2)
表2.1半加法器真值表
0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 其中,S为X和Y相加的和,C为X和Y相加的进位输出,从公式可以看出半加器实质上也就是逻辑电路中的异或门。图2.1(a)是基于NAND2门设计的半加器,而图2.1(b)是基于NOR的设计。这两个设计电路相比较而言,NAND设计比较合适,因为它避免了串联的PFET链,但这个差别并不是一个主要因素[3]。
图2.1(a)NAND2逻辑 图2.1(b)基于NOR的电路
3
兰州交通大学毕业设计(论文) 2.1.2 全加器
在实际作二进制加法运算时,一般来说两个加数都不会是一位,而是多位的。因而需要考虑从低位而来的进位,相对于半加器而言,这种能对两个1位二进制数进行相加并考虑低位来的进位,即相当于3个1位二进制数的相加,求得和及进位的逻辑电路称为全加器[4],其真值表参见表2.2所列。
表2.2 一位全加器的真值表
0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 说明 0+0+0=00 0+0+1=01 0+1+0=01 0+1+1=10 1+0+0=01 1+0+1=10 1+1+0=10 1+1+1=11 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 其中,为两个一位的加数,为来自低位的进位,为和,为向高位的进位。根据真值表可以得出全加器的逻辑表达式:
(2.1-3) (2.1-4)
(2.1-5)
假设,表示两个加数,表示和,表示来自低位的进位,表示向高位的进位。其逻辑符号如图2.2(a)所示,逻辑电路图如图2.2(b)所示。
图2.2(a)全加器符号及功能表 图2.2(b)全加器逻辑电路
4
兰州交通大学毕业设计(论文) 2.2 串行进位加法器
一般地,将两个n位的字相加产生一个n位的和及一个进位输出位,后者可以作为另一个更高位加法器的进位输入,或者作为一个溢出标志。图2.3为它的一般符号。串行进位加法器实际上是相加三个二进制字。一个n位的串行进位加法器要求n个全加器串联起来,其中进位输出位用来作为下一列的进位输入。图2.4为一个4位字的串行进位加法器的情形。
图2.3 一个N位加法器
串行进位加法器的结构易于连接相邻的电路,正是由于这一特点,使这个设计的速度较慢。因为任何一个全加器只有当它的输入进位有效时其输出才有效,最左边的电路是最后响应的。只有在此时,全加器输出字的结果才有效。对于这种方式,因高位运算必须等到低位进位来到后才能进行。因此,它的延迟非常可观,这对速度要求比较高的器件显然达不到要求。为此,需要对此电路进行改进[5]。
图2.4 4位串行进位加法器
5
兰州交通大学毕业设计(论文) 2.3 进位选择加法器
进位选择加法器又称为CSA加法器,其主要思想即将前一级的进位先假定为或者0,之后分别计算出一个结果,然后再用前一级的进位来选择得到相应的结果,这样后级的计算就不用等候前一级的进位,而是和前级的计算并行进行,之后再做一个选择,从而达到快速运算的目的,当然所付出的代价是它要增加加法器和MUX以及相应的互联线,牺牲一定的面积和功耗。如果速度比起所占面积来更为重要,那么这一设计就十分合适。进位选择加法器也可以采用多层构成,但硬件成本会相应增加。
从另一角度考察进位选择加法器,不难发现其工作原理的根本思路是:对于局部同时计算出不同情况下的结果,然后在更大的局部(以至于全局范围)内利用各方面的信息的相互支配关系,因而可以只需要通过适当的选择就能够迅速得到整个区间在两种不同情况下的计算结果。
这种思想方法在高速算术运算中得到了广泛的应用,如迭代式乘法器和除法器运算中运算结果从有符号数字记数法形式转换成无符号数字记数法的传递中转换算法以及通过选择实现舍入等等。
应当注意的是:在进位选择加法器中,用于选择的信号扇出负载为x-y+l。由于加法器构造过程中,每向后一级,加法器位宽都会拓宽其两个子加法器位宽之和,因而这两个选择信号的扇出负载也会逐级提高,因而各个多路选择器(MUX)的数据选取速度也会逐级降低。
2.4 进位旁路加法器
进位旁路加法器设计加速一个宽位加法器,它使进位绕过整个加法器的一部分进行传播[6]。对4位加法器的情形,这一概念显示在图2.5(a)中。进位输入位表示成,而加法器本身产生一个进位输出位
。进位旁路电路包括两个逻辑门。AND门接受进
图2.5(a)进位旁路逻辑 图2.5(b)一般形式
6
兰州交通大学毕业设计(论文) 位输入位并且将它与这一组的传播信号进行比较,上式中运用了各自的传播信号值。AND门的输出与进行OR操作以产生这一级的输出:
(2.4-1)
如图2.5所示, 表示i至i+3这一组的块传播信号。如果,那么这一组的进位输出由的值来决定。如果当进位输入位时,,那么这一组的进位输入就自动的送入加法器的下一组。“进位旁路”的名字来自如下的事实,即如果条件为真,则进位输入位越过整个块。图2.5(b)为k位一组时的一般情况。
一个进位旁路块的尺寸k会影响这一设计的整体速度。已经证明,使一个n位加法器延时最小的最优旁路的尺寸可以估计为:
(2.4-2) 进位旁路电路还可以嵌套以构成多层次的电路。
2.5 进位保留加法器
进位保留加法器所基于的概念是一个全加器实际上有三个输入而产生两个输出如图2.6所示。虽然我们通常把第三个输入与进位输入联系起来,但它同样也能作为一
图2.6进位保留加法器符号
个“普通”值[7]。我们可用n个单独的加法器来构成一个n位的进位保留加法器, 如图2.7所示。“进位保留”这个名字来自如下事实,即先保留进位输出字而不是立即用它来计算最终的和。
图2.7构成一个n位的进位保留加法器
7