数电中规模加法器.ppt
,4.2单元级组合逻辑电路的介绍、分析与应用,4.2.1加法器,不考虑低位进位,将两个1位二进制数相加的逻辑运算,半加器的真值表,逻辑表达式,逻辑电路图,C=AB,1.半加器(Half Adder),逻辑符号图,下面我们分析一位全加器电路。,全加器进行加数、被加数和低位来的进位信号的相加,2.全加器(Full Adder),分析:(1)由逻辑图逐级写出表达式,化简。,(2)由表达式列出真值表。,(3)分析逻辑功能:输入有奇数个1时,F=1;输入有两个或以上1,CO=1。,0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1,0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1,0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1,0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1,分析:,(3)分析逻辑功能:输入有奇数个1时,F=1;输入有两个或以上1,CO=1。,A、B为加数、被加数Ci为低位向本位的进位位F为本位的和CO是本位向高位的进位位故该电路又称为1位全加器。,1位全加器的逻辑符号,A+B+CICO F,用异或门构成全加器,两个半加器构成一个全加器,用与或非门构成全加器,3、多位加法器 由多个一位全加器可以构成多位加法器。构成的方法有两种:,A、逐位进位加法器(串行进位),B、超前进位加法器,A、逐位进位加法器(串行进位),低位的进位信号送给邻近高位作为输入信号。任一位的加法运算必须在低一位的运算完成之后才能进行。,串行进位加法器运算速度不高。,/结构体描述moduleadd_4(input3:0a,input3:0b,Input ci,output3:0s,outputco);wire3:0c_tmp;assignco=c_tmp3;add_full i0(.a(a0),.b(b0),.ci(ci),.s(s0),.co(c_tmp0);add_fulli1(a1,b1,c_tmp0,s1,c_tmp1);add_fulli2(a2,b2,c_tmp1,s2,c_tmp2);add_fulli3(a3,b3,c_tmp2,s3,c_tmp3);endmodule/add_full.vmodule add_full(inputa,b,ci,output s,co);assigns=abci,co=(aendmodule,/数据流(RTL描述)moduleadd_4(inputwire 3:0a,input wire 3:0b,Input wire ci,output wire 3:0s,output wire co);wire 3:0c;assigns0=a0b0ci,c0=(a0endmodule,/行为描述moduleadd_4(inputwire 3:0a,input wire 3:0b,Input wire ci,output reg 3:0s,output reg co);reg 4:0c;always(*)begin c=1b0,a+1b0,b;s=c3:0;co=c4;endendmodule,综上我们得到全加器的表达式为,B、超前进位加法器,74LS283 逻辑图与 引脚图,超前进位加法器,所有进位都是同时产生的,故电路延时时间与位数多少无关。每一位的进位值只与被加数、加数及最低位进位有关。而被加数、加数及最低位进位在计算开始前就确定了,因此可以同步地计算各位的最终取值,大大缩短计算时间。,超前进位加法器的特点电路复杂,速度很快!在位数较多时其运算速度比行波加法器的要快得多。,4位全加器的逻辑符号为,全加器实现的是二进制数的加法,因此若某一逻辑函数的输出恰巧等于输入代码所表示的数加上另一常数或另一组输入代码时,适合用全加器实现。全加器一般可以构成代码转换电路、加减运算电路等。,该结果与前页讨论的一致。,按照补码运算规则,用加法运算实现减法运算:,x y=x+y补 xn-1 xn-2 x0 yn-1 yn-2 y0=xn-1 xn-2 x0+2n yn-1 yn-2 y0=xn-1 xn-2 x0+yn-1 yn-2 y0+1,综上所述,如果要把一个 n 位加法器用于 n 位减法器的功能,则只需将减数变补,并把进位输入和进位输出分别当作一对低有效的借位输入和借位输出即可。,例1:用4位全加器实现两个4位二进制数之差,解:,A B=A+(B的补码)补码=反码+1,,则电路如图,421 半加器、全加器,5.全加器的应用,例2:用4位全加器实现8421BCD码转换成余3BCD码的码制转换电路。,解:设DCBA为输入8421BCD码,F3F2F1F0为输出余3BCD码,余3BCD码=8421BCD码+0011,,F3F2F1F0=DCBA+0011,则电路如图,421 半加器、全加器,实现余3码到8421BCD码的转换。,设:输入为余3码DCBA,输出为8421码F3F2F1F0,则:F3F2F1F0=DCBA 0011=DCBA+1101电路图为:,设计8421码和余3码的通用转换器。,设:输入为DCBA,输出为F3F2F1F0设置转换开关选择 K则:,例3 用两片74LS283构成一个8位二进制数加法器,在片内是超前进位,而片与片之间是串行进位。,例 4 试用全加器完成二进制的乘法功能。解 以两个二进制数相乘为例。乘法算式如下:,例 5 试用四位全加器构成一位 8421 码的加法电路。解 两个 8421 码相加,其和仍应为8421 码,如不是 8421 码则结果错误。如,产生错误的原因是 8421BCD码为十进制,逢十进一,而四位二进制是逢十六进一,二者进位关系不同,当和数大于 9 时,8421BCD应产生进位,而十六进制还不可能产生进位。为此,应对结果进行修正。当运算结果小于等于 9 时,不需修正或加“0”,但当结果大于 9 时,应修正让其产生一个进位,加0110即可。,故修正电路应含一个判 9 电路,当和数大于 9 时对结果加0110,小于等于 9 时加0000。除了上述大于 9 时的情况外,如相加结果产生了进位位,其结果必定大于 9,所以大于 9 的条件为,大于 9 的化简,一位 8421BCD码加法器电路图,