第2章运算方法和运算器74181

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.逻辑非运算

逻辑非也称求反。对某数进行逻辑非运算,就是 按位求反,常用变量上方加一横来表示。 设一个数x表示成:x= x0x1x2 …xn 对x求逻辑非,则有:
ˉ x=z= z0z1z2 …zn zi= ˉ xi (i=0,1,2,…n)
2.5.1 逻辑运算(续2)
例21:
x1=01001011,x2=11110000
根据上面所列的函数关系,化简Xi的逻辑表达式得: Xi=S2S3+S2S3(Ai+Bi)+S2S3(Ai+Bi)+S2S3Ai
=S2S3+S2Ai+S2Bi+S3Ai+S3Bi+S2S3Ai
=S2S3+S2Ai+S2Bi+S3Bi +Ai(S3 +S2) =S2S3+S2Ai+S2Bi+S3Bi +AiS3 +AiS2 =S2S3+Ai+S2Bi+S3Bi +AiS3 =S2S3+S2Ai+ Ai Ai +Ai (Bi +Bi)+S2Bi+S3Bi +AiS3 + Bi Bi =S2(S3 +Ai+Bi)+Ai (S3 +Ai+Bi)+Bi (S3 +Ai+Bi) = (S3 +Ai+Bi) ( S2 +Ai+Bi) =S3AiBi+S2AiBi
3.逻辑乘运算


对两数进行逻辑乘,就是按位求它们的“与”,所 以逻辑乘又称“逻辑与”,常用记号“∧”或“· ” 来表示。 设有两数x和y,它们表示为 x= x0x1x2 …xn
若 则
y= y0y1y2 …yn x∧y=z=z0z1z2 …zn zi= xi∧yi (i=0,1,2,…,n)
2.5.1 逻辑运算(续6)
ˉ1,x ˉ2 求x
解: ˉ x1 =10110100 ˉ x2 =00001111
2.5.1 逻辑运算(续4)
例22:x=10100001,y=10011011, 求x∨y。 解: 10100001x
即 10011011y 10111011z x∨y = 10111011 ∨
2.5.1 逻辑运算(续5)
Cn+i+1=XiYi+YiCn+i+Cn+iXi
图2.10 ALU的逻辑结构原理框图
2.5.2 多功能算术/逻辑运算单元(ALU)续2
上式中进位下标用n+i代替原来全加 器中的i,i代表集成在一片电路上的ALU的 二进制位数。对于4位一片的ALU,i= 0,1,2,3。 n代表若干片ALU组成更大字长的运算 器时每片电路的最低位计数,例如当4片组 成16位字长的运算器时,n=0,4,8,12。
进一步化简可得: S S Y
0 1
i
Xi= AiBi+S2A 0 S30 A iB i i Yi= +S0Bi+ Si1B Bii 0 Ai1 A
=S3AiBi+S2AiBi +Ai+S0Bi+S1Bi =Ai+S0Bi+S1Bi =Yi
S 2 S3 0 0 0 1
Xi 1
Ai + B i
0 A B +S AiA BB 1S B 0 +S B Ai= +YBi i · Xi Yi1 =S A + 3 i i 2 i i i 0 i 1 i i
2.5.1 逻辑运算



计算机中除了进行加、减、乘、除等基本 算术运算外,还可对两个或一个逻辑数进 行逻辑运算。 所谓逻辑数是指不带符号的二进制数。利 用逻辑运算可以进行两个数的比较,或者 从某个数中选取某几位等操作。 计算机中的逻辑运算,主要是指逻辑非、 逻辑加、逻辑乘、逻辑异四种基本运算。
2.5.1 逻辑运算(续1)
2.逻辑表达式
控制参数S0 ,S1 ,S2 ,S3 分别控制输入Ai和Bi,产生Y和X 的函数。其中Yi是受S0 ,S1控制的Ai和Bi的组合函数,而Xi是受 S2 ,S3控制的Ai和Bi组合函数,其函数关系如表2.4所示。 表2.4 与控制参数和输入量的关系
S0 S1 0 0 1 1 0 1 0 1
Yi Ai Ai B i Ai B i 0
S 2 S3 0 0 1 1 0 1 0 1
Xi 1 Ai + B i Ai +Hale Waihona Puke BaiduB i Ai
根据上面所列的函数关系,即可列出Xi和Yi的逻辑表达式:
Xi=S2S3+S2S3(Ai+Bi)+S2S3(Ai+Bi)+S2S3Ai
Yi=S0S1Ai+S0S1AiBi+S0S1AiBi 根据上面所列的函数关系,化简Yi的逻辑表达式得: Yi=S0S1Ai+S0S1AiBi+S0S1AiBi =Ai(S0S1+S0S1Bi+S0S1Bi) =Ai(S0S1(Bi+Bi)+S0S1Bi+S0S1Bi) =Ai(S0Bi+S1Bi) =Ai +(S0+Bi )(S1+Bi) =Ai +(S0S1+S0Bi +S1Bi) =Ai+S0Bi+S1Bi
注意: 表2.5中算术运算操作是用补码表示法来表示
的。其中“加”是指算术加,运算时要考虑进位,而
符号“+”是指“逻辑加”。其次,减法是用补码方 法 进行的,其中数的反码是内部产生的,而结果输出 “A减B减1”,因此做减法时需在最末位产生一个强
迫进位(加1),以便产生“A减B”的结果。
另外,“A=B”输出端可指示两个数相等,因此 它与其他ALU的“A=B”输出端按“与”逻辑连接 后,
则:Cn+4=G+PCn
设: G=Y3+Y2X3+Y1X2X3+Y0X1X2X3 P=X0X1X2X3
则:Cn+4=G+PCn G称为进位发生输出,P称为进位传送输出。在电路中多 加这两个进位输出的目的,是为了便于实现多片(组) ALU之间的先行进位,为此还需一个配合电路,称之为先 行进位发生器(CLA) 。
定点运算器的组成
4位之间采用先行进位公式,根据式(2.36),每一
位的进位公式可递推如下: 第0位向第1位的进位公式为:
Cn +1 =Y0 +X0 Cn 其中Cn是向第0位(末位)的进位。
第1位向第2位的进位公式为:
Cn + + X1 C Y1 + Y0 X1 +X X X1Cn+Y X X X 设: = Y Y Y 2=Y1G n+ 1= 3+ 2X3+ 1 02X 3 0 1 2 3
第2位向第3位的进位公式为: P=X0X1X2X3
Cn +3 =Y2 + X2 Cn +2 =Y2 +Y 1 X1 +Y0 X1 X2 +X 0 X1 X2 Cn
第3位的进位输出(即整个4位运算进位输出)公式为: C n + 4 = Y 3 + X 3 C n + 3 = Y 3 + Y 2 X 3 + Y 1 X 2 X 3 + Y 0 X 1 X 2 X 3 + X 0 X 1X 2 X 3 C n
2.5.2多功能算术/逻辑运算单元(ALU)续14
Cn +x=G0 +P0 Cn Cn +y=G1 +P1 Cn +x=G1 +G0 P1 +P0 P1 Cn
Cn +z=G2 +P2 Cn + y=G2 +G1 P2 +G0 P1 P2 +P0 P1 P2 C n
Cn+4是本片(组)的最后进位输出。逻辑表达式表明,
这是一个先行进位逻辑。换句话说,第0位的进位输入
Cn可以直接传送到最高位上去,因而可以实现高速运算。
定点运算器的组成
P G+Cn G=G+P Cn=Cn+4 =Cn+4 X= CM )C =M Cn +1 X X X P M+ (YY X + X0 X= CnX )M(Y = C 0 1X 2X 3 M (Y X0Y + Y X + XM X0+ Cn+ ) 1+ 0 1 1 2 n
y= y0y1y2 …yn 若x和y的逻辑异为z: x⊕y=z=z0z1z2 …zn 则 zi= xi⊕yi (i=0,1,2,…,n)
2.5.1 逻辑运算(续8)
例23:x=10101011,y=11001100, 求x⊕y。 解: 10101011x
即 ⊕ 11001100y 01100111z x⊕y = 01100111
例23:x=10111001,y=11110011, 求x∧y。 解: 10111001x
∧ 即 11110011y 10110001z x∧y = 10110001
2.5.1 逻辑运算(续7)
4.逻辑异运算
对两数进行异就是按位求它们的模2和,所以逻辑异 又称“按位加”,常用记号“⊕”表示。 设有两数x和y: x= x0x1x2 …xn
i
Y3+Y2X3+Y1X2X3+Y0X1X2X3 =G
2.5.2多功能算术/逻辑运算单元(ALU)续8
3.算术逻辑运算的实现
除了S0-S3四个控制端外,还有一个控制端 M,它使用来控制ALU是进行算术运算还是进行逻 辑运算的。
当M=0时,进行算术操作。M对进位信号没 有任何影响。此时F不仅与本位的被操作数Y和操 作数X有关,而且与本位的进位输出,即C有关。 当M=1时,进行逻辑操作。封锁了各位的进 位输出,即C =0,各位的运算结果F仅与Y和X有关。
2.5.2多功能算术/逻辑运算单元(ALU)续13
4.两级先行进位的ALU 74181ALU设置了P和G两个本组先行进位输出 端。如果将四片74181的P,G输出端送入到74182 先行进位部件(CLA),又可实现第二级的先行进 位,即组与组之间的先行进位。 假设4片(组)74181的先行进位输出依次 为P0,G0,G1,P1,P2,G2,P3,G3, 74182CLA所提供的 进位逻辑关系如下:
将Xi 和Yi代入前面的进位表达式,可简化为: Cn+i+1=Yi+Xi Cn+ i
1 1
0
1 1
Ai
定点运算器的组成
综上所述,ALU的某一位逻辑表达式如下: Xi=S3AiBi+S2AiBi Yi=Ai+S0Bi+S1Bi Fi=Xi⊕Yi⊕Cn+i Cn+i+1=Yi+Xi Cn+ i
(2.36)
图2.11(b)示出了工作于负逻辑和正逻辑 操作数方式的74181ALU方框图。显然,这个器
件执行的正逻辑输入/输出方式的一组算术运
算和逻辑操作与负逻辑输入/输出方式的一组
算术运算和逻辑操作是等效的。
表2.5列出了74181ALU的运算功能表,它有两种工
作方式。对正逻辑操作数来说,算术运算称高电平操
2.5.1 逻辑运算(续9)
事实上,逻辑加还可以通过逻辑乘和逻辑 非来实现:
zi=xi∨yi =xi∧yi
同样,逻辑乘也可以用逻辑加和逻辑非来 实现 :
zi=xi∧yi =xi∨yi
2.5.2 多功能算术/逻辑运算单元(ALU)


由一位全加器(FA)构成的行波进位加法器, 它可以实现补码数的加法运算和减法运算。 这种加法/减法器存在两个问题:
作,逻辑运算称正逻辑操作(即高电平为“1”,低电平 为
“0”)。对于负逻辑操作数来说,正好相反。由于S0- S3
有16种状态组合,因此对正逻辑输入与输出而言,有16 种算术运算功能和16种逻辑运算功能。同样,对于负 逻辑输入与输出而言,也有16种算术运算功能和16种
逻辑运算功能。
表2.5 74181ALU算术/逻辑运算功能表
一是由于串行进位,它的运算时间很长。假如加 法器由 二是就行波进位加法器本身来说,它只能完成 n位全加器构成,每一位的进位延迟时间为 加法和减法两种操作而不能完成逻辑操作。本 20ns ,那么最坏情况下,进位信号从最低位传递 节我们介绍的多功能算术/逻辑运算单元 (ALU) 到最高位而最后输出稳定,至少需要 n*20ns ,这 不仅具有多种算术运算和逻辑运算的功能,而 在高速计算中显然是不利的。 且具有先行进位逻辑,从而能实现高速运算。
2.5.2 多功能算术/逻辑运算单元(ALU)续1)
1.基本思想
一位全加器(FA)的逻辑表达式为: Fi=Ai⊕Bi⊕Ci
Ci+1=AiBi+BiCi+CiAi
将Ai和Bi先组合成由控制参数 S0,S1,S2,S3控制的组合函数Xi和Yi,然后 再将Xi,Yi和下一位进位数通过全加器进行 全加。这样,不同的控制参数可以得到不同 的组合函数,因而能够实现多种算术运算和 逻辑运算。因此,一位算术/逻辑运算单元 的逻辑表达式为: Fi=Xi⊕Yi⊕Cn+i
2 1 2 0 1 2 0 1 2 n n +3
图2.11(a)示出了用负逻辑表示的4位
算术/逻辑运算单元(ALU)的逻辑电路图 (CAI演示),它是根据上面的原始推导公 式用TTL电路实现的。 X =S Y A= BA ++ SA S B +S B
i 3 ii i i 2 0 i ii 1
这个器件的商业标号为74181ALU。
相关文档
最新文档