一、储备知识:
(1)半加器
不考虑低位进位,完成两个一位二进制数相加,可以得到一个和值S和一个向上的进位C,这种逻辑电路称为半加器(Half-Adder),也称为摸2加或按位加
(2)全加器
考虑低位进位的一位二进制求和电路称为全加器,Ci为低位向本位的进位,Ci+1是本位向高位的进位
半加器和全加器只能进行一位二进制数的加法运算,但它们可以作为构成实用加法器的基本原件。
对于实际的多位数据相加,如果只用一个加法器就需要一位一位地串行送入全加器,分时进行运算
(3)行波进行加法器
用多个全加器同时对多位数据进行相加的并行加法器可以提高速度。
运算时,低位相加产生的进位可以连接到高位加法器,这样进位逐级向高位串行传递,这称为行波进位加法器。
这种串行进位的并行加法器虽然简单,但进位信号会产生较大时延。
改进的方案可以增加电路将所有进位都直接从最低进位生成,这称为先行进位加法器
例子:下列给出了一个基本的二进制(行波进位)加法器电路
该电路通过最低进位实现方式控制。当输入0是,该电路实现N位加法;当输入1时,数据B实现求反加1进行相加,实际上实现了减法
最高位向上的进位可以作为无符号整数的超出范围(进位)标志,最高位和此次高位的进位进行异或指示有符号的超出范围(溢出)
(4)真值表:反映输入与输出之间的关系
A | B | A*B | A+B | 非A | A异或B |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 1 | 0 | 0 |
任何一种逻辑表达式都可写成这三种基本运算的逻辑组合
例如,异或(XOR)运算的逻辑表达式为:
异或运算也称为不等价运算
二、一位加法器(全加器)
- 两个加数为A和B,低位进位为Cin,和为F,向高位的进位为Count
- 化简后,逻辑表达式如下
三、n位加法器可用n个全加器实现
例:n=4,A=1001,B=1100
则:F=0101,Count=1
总结:加法由逻辑部件实现,而其他所有算术运算部件都基于加法器和逻辑运算实现,因此,所有算术运算是基于0和1以及逻辑运算实现的