3.6 数值比较电路
数值比较电路是用来比较两个二进制数的大小或是否相等的电路 。
比较原理
一位比较器
四位比较器比较原理
比较两个二进制数的大小要从最高位开始比较直至最低位 。
如对于 A=A3A2A1A0 和 B=B3B2B1B0,若
A3>B3,以下各位不必比较,就可判断
A>B,反之,若 A3<B3,则 A<B;
若 A3=B3,则比较 A2和 B2的关系,…… 直至最低位,从而可以确定 A和 B的关系;
只有 A和 B各位都相等才能有 A=B。
一位比较器
两个一位二进制数 Ai和 Bi的比较有三种结果:
Ai>Bi,Ai<Bi,Ai=Bi。 其真值表如表 3-19所示 。
表 3-19 一位比较器真值表输 入 输 出
Ai Bi (Ai=Bi) (Ai<Bi) (Ai>Bi)
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
由表可得出一位比较器的三个输出端的逻辑表达式分别为:
iiii BABA )(
iiii BABA )(
iiii BABA )(
(Ai=Bi)
Ai Bi
(Ai<Bi) (Ai>Bi)
图 3-33一位比较器
≥1& &
& &
1 1
iiii BABA )(
iiii BABA )(
iiii BABA )(
一位比较器逻辑图四位比较器
中规模四位数值比较器 CC14585(74LS85)
的逻辑图和逻辑符号如图 3-34所示。
A3A2A1A0和 B3B2B1B0为比较输入;
A>B,A<B,A=B为比较输出;
a>b,a<b,a=b为级联输入。
级联输入是为多片四位二进制数值比较器连接起来,实现更多位数比较而设置的。表 3-20为其真值表。
表 3-20 四位数值比较器真值表
①
②
③
比 较 输 入 级 联 输 入 输 出
A3 B3 A2 B2 A1 B1 A0 B0 (a>b) (a<b) (a=b) (A>B) (A<B) (A=B)
A3>B3
A3<B3
A3=B3
A3=B3
A3=B3
A3=B3
A3=B3
A3=B3
A3=B3
A3=B3
A3=B3
× ×
× ×
A2>B2
A2<B2
A2=B2
A2=B2
A2=B2
A2=B2
A2=B2
A2=B2
A2=B2
× ×
× ×
× ×
× ×
A1>B1
A1<B1
A1=B1
A1=B1
A1=B1
A1=B1
A1=B1
× ×
× ×
× ×
× ×
× ×
× ×
A0>B0
A0<B0
A0=B0
A0=B0
A0=B0
× × ×
× × ×
× × ×
× × ×
× × ×
× × ×
× × ×
× × ×
1 0 0
0 1 0
0 0 1
1 0 0
0 1 0
1 0 0
0 1 0
1 0 0
0 1 0
1 0 0
0 1 0
1 0 0
0 1 0
0 0 1
注:①只要两数最高位不等,就可以判断两数大小。其余各位可以为任意值。
② 若高位相等,则需要比较低位。③ 若 A,B两数各位均相等,输出状态取决于级联输入状态。Ai=Bi
1 ii BA
1?ii BA
Ai>Bi Ai<Bi
1?ii BA
)(
)(
00112233
00112233
112233223333
baBABABABA
BABABABA
BABABABABABABA
)(
)(
00112233
00112233
112233223333
baBABABABA
BABABABA
BABABABABABABA
)()( 00112233 baBABABABBA
四位比较器
(a<b)(a=b) (a>b)
B0A
0B
1A
1B
2A2
B3A
3
(A>B)
(A=B)
(A<B)
(b) 逻辑符号
≥1
A3
B3
≥1A2
B2
≥1A1
B1
≥1
A0
B0
A3⊕ B3
A2⊕ B2
A1⊕ B1
A0⊕ B0
a>b
a<b
a=b
≥1
≥1
A>B
A<B
A=B
(a) 逻辑图 图 3-34四位数值比较器
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
1
1
1
1
1
1
1
1
四位比较器
(a<b)(a=b) (a>b)
B0A
0B
1A
1B
2A2
B3A
3
(A>B)
(A=B)
(A<B)
(b) 逻辑符号
A
3
A
2
A
1
A
0
B
3
B
1
B
2
B
0
1
1
1
1
1
1
1
1
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
≥ 1
≥ 1
≥ 1
≥ 1
≥ 1
≥ 1
A > B
A < B
A = B
a > b
a < b
a = b
A
3
⊙ B
3
A
2
⊙ B
2
A
1
⊙ B
1
A
0
⊙ B
0
图 3-35 四位数值比较器引脚图
CMOS比较器 TTL比较器
1 6 1 5 1 4 1 3 1 2 1 1 1 0 9 1 6 1 5 1 4 1 3 1 2 1 1 1 0 9
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
C C 1 4 5 8 5
C 6 6 3
V
D D
A
3
B
3
A > B A < B B
0
A
0
A
1
B
2
A
2
A = B a < ba > b a = b A
1
V
s s
7 4 8 5
7 4 L S 8 5
V
c c
A
3
B
2
A
2
A
1
B
1
A
0
B
0
B
3
a > ba < b a = b A = BA > B A < B 地四位比较器的外引脚排列图
八位二进制数比较时,若高四位相等,就得看低四位比较结果 。
用两片 74LS85比较八位数时,高四位的输出就是八位数比较结果的输出 。
低四位片输出接到高四位片的级联输入,
从而高四位相等时,高四位的输出取决于级联输入 — 低四位的比较结果 。
四位比较器的级联
A3
A2
A1
A0
B3
B2
B1
B0
A>B
A<B
A=B
a>b a=b a<b
74LS85
(1)
0 1 0
两片 74LS85构成的八位数值比较的逻辑图
A3
A2
A1
A0
B3
B2
B1
B0
A>B
A<B
A=B
a>b a=b a<b
74LS85
(2)
实现逻辑图例 试选用中规模集成电路实现下表所示电路。
A B C D F1 F2 F3
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
0 1 0
0 0 1
0 0 1
0 0 1
0 0 1
0 0 1
0 0 1
解:若把 A,B,C,D看成二进制数时,
ABCD=0110时,F2=1;
ABCD<0110时,F1=1;
ABCD>0110时,F3=1;
上述分析结果是 ABCD与二进制 0110比较得出的 。 1 1 0
因此选用四位二进制数值比较器较为方便。
令 A3A2A1A0=ABCD,
B3B2B1B0=0110,
A<B时为 F,A=B时为 F2,
A>B时为 F3。
逻辑图如图所示。
A3
A2
A1
A0
B3
B2
B1
B0
A>B
A<B
A=B
a>b a<ba=b
74LS85
+5V
F3
F2
F1
A
B
C
D
0
1
1
0
例子的逻辑图
3.6 算数运算电路
⒈ 二进制加法电路
⒉二进制减法电路
⒊算术逻辑单元 (ALU)
⒈ 二进制加法电路
⑴ 半加和全加的概念
⑵半加器( Half Adder)
⑶ 全加器( Full Adder)
⑷加法器
①串行加法器
②并行加法器串行进位并行加法器超前进位并行加法器
⑸ BCD码加法器
⑴ 半加和全加的概念
两个 n位二进制数相加,是从最低有效位开始相加,得到,和数,并传送进位最后得到结果。
最低位只有加数和被加数相加,称为半加;
其余各位是加数、被加数和相邻低位的进位相加称为全加。
⑵ 半加器 ( Half Adder)
半加器:完成只有加数和被加数相加的电路,称为半加器,如最低位的加法。
iiiiiii BABABAS
ii1i BAC
Ai Bi Si Ci+1
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
半加器真值表 Ai
Bi Si
Ci+1
(a)
&
=1
Ci+1
ΣA
i
Bi
Si
(b)
CO
Ci+1
HA
Ai
Bi
Si
(c)
半加器的逻辑符号及真值表
⑶ 全加器( Full Adder)
全加器:能够完成除了加数,被加数相加之外,还要加上相邻低位的进位的电路,称为全加器 。
Ai Bi Ci
0 0
1 0
1 0
0 1
1 0
0 1
0 1
1 1
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Si Ci+1
全加器真值表
iiii CBAS
)( iiiii1i BACBAC
全加器的真值表和加数被加数 低位来的进位向高位的进位
Ai BiCi 0 1
00
01
11
10
Ai BiCi 0 1
00
01
11
10
0
0
0
0
0 0
0
0
1
1
1
1
1
1 1
1
Si Ci+1
iiii CBAS
)( iiiii1i BACBACS
i
Ai
Bi
Ci Ci+1
FA
全加器惯用逻辑符号
SiAi
Bi
Ci Ci+1
Σ
全加器国标逻辑符号
CI CO
全加器的逻辑符号和逻辑图
=1
=1
Ci+1
Si
Ai Bi Ci
全加器逻辑图
≥1
&
&
⑷ 加法器
加法器:实现多位二进制数加法运算的电路。
串行加法器:串行加法器采用串行运算方式,
从二进制数的最低位开始,逐位相加至最高位,最后得出和数。
并行加法器:并行加法器采用并行运算方式,
将各位数同时相加,因而提高了运算速度。
并行加法器
按进位数传递方式可分为串行进位和并行进位两种方式并行加法器。
串行进位并行加法器的全加器的个数等于相加数的位数 。
图 3-38串行进位并行加法器的逻辑图 。
C I
∑
C O
B
3
A
3
C
3
C
4
S
3
C I
∑
C O
B
2
A
2
C
2
C
3
S
2
C I
∑
C O
B
1
A
1
C
1
C
2
S
1
C I
∑
C O
B
0
A
0
C
0
= 0
C
1
S
0
图 3 -3 8 串 行 进 位 并 行 加 法 器串行进位并行加法器
全加器的个数等于加数的位数 。 优点是电路简单,
连接方便;缺点是运算速度不高 。 最高位的运算,
必须等到所有低位运算依次结束,送来进位信号之后才能进行 。
C I
∑
C O
B
3
A
3
C
3
C
4
S
3
C I
∑
C O
B
2
A
2
C
2
C
3
S
2
C I
∑
C O
B
1
A
1
C
1
C
2
S
1
C I
∑
C O
B
0
A
0
C
0
= 0
C
1
S
0
图 3 - 3 8 串 行 进 位 并 行 加 法 器超前进位并行加法器
超前进位并行加法器采用超前进位 ( 并行进位 ) 的方法,能够先判断出各位的进位是 0还是 1,因此四个全加器可同时相加,从而提高了运算速度 。
3-39为四位超前进位加法器 74LS283的逻辑图 。 它由四个全加器和超前进位电路组成 。 每位全加器输出本位和 Si,绝对进位 Gi及产生相对进位用的 Pi,Pi=Ai⊕ Bi。
每位全加器输出本位和 Si
=1
=1
=1
=1
&
&
&
&
&
&
&
&
&
&
&
&
≥ 1
≥ 1
≥ 1
≥ 1
≥ 1
≥ 1
≥ 1
≥ 1
11
B
3
B
2
B
1
B
0
A
3
A
2
A
1
A
0
C
0
S
0
S
1
S
2
S
3
C
1
C
2
C
3
( C
4
)
CO
P
3
P
2
P
1
P
0
进位信号
)( iiiii1i BACBAC
令 AiBi=Gi为绝对进位,
PiCi为相对进位则 Ci+1=Gi+PiCi
四位进位信号的逻辑表达式,C1=A0B0+(A0⊕ B0)C0=G0+P0C0
C2=G1+P1C1
=G1+P1(G0+P0C0)
=G1+P1G0+P1P0C0
C3=G2+P2C2
=G2+P2(G1 1G0+P1 0)
=G2+P2 1+P2P1G0+ 2 1P0C0
C4=G3+P3C3=G3+P3(G2+P2G1
+P2P1G0+P2P1P0C0)
=G3+P3G2+P3P2G1+P3P2P1G0+
P3P2P1P0C0
FA
FA
FA
FA
≥1
≥1
≥1
≥1
C0
A0
B0
C0S
0
P0
G0
C1
B1
A1
C2
A2
B2
C3
A3
B3
S1
P1
G1
S2
P2
G2
S3
P3
G3
&2
C4
3
C3
C2
C1
图 3-39四位超前进位并行加法器
=1
=1
1
&
&
&
&
&
&
&
&
&
由这些表达式画出的超前进位电路实现了相对进位信号的快速传递 。
各位和如下式:
S0=A0⊕ B0⊕ C0
S1=A1⊕ B1⊕ C1
S2=A2⊕ B2⊕ C2
S3=A3⊕ B3⊕ C
和数信号与进位信号是同时产生的,不必逐级传送 。 因而,提高了运算速度 。
A3 A2 A1A0
C0
B3 B2 B1B0
S3 S2 S1 S0
C4 74283
S1 B1
16 15 14 13 12 11 10 9
87654321
VCC B2 S3 CO
A1 B0 CI GND
A2 S2 A3 B3
A0S0
A2 S2B2 A3 B3 S3
C4
C0B0A0A1 S0B1
S1
74283的外引线排列图和逻辑符号
74LS283的逻辑符号及外引脚排列图例 试用两片 74LS283构成八位二进制数加法器。
解:按照加法的规则,低四位的进位输出 CO
应接高四位的进位输入 CI,而低四位的进位输入应接 0。 逻辑图如图所示 。
两片 74283构成八位二进制加法器
A3A2 A1A0
CI
B3B2B1B0
S3 S2 S1 S0
CO 74283
A3A2 A1A0
CI
B3 B2B1B0
S3 S2 S1 S0
CO 74283 0
⑸ BCD码加法器
BCD( Binary Coded Decimal) 码是用二进制代码分别表示十进制数各位的代码组合 。
由于每位十进制数最大为 9,所以 BCD码相加时,
其值超过 9的位必须通过减 10或加 6加以调整 。
因此 BCD码相加时,其和有需要调整和不需要调整两种情况:
一种和数为 0-9,不需要调整;
另一种和数为 10-18,需要调整
0011
0100+)
0111
1100
+) 0110
1 0010
0111
+) 0101
1100
非 BCD码需要调整图为一位 BCD码并行加法器逻辑图。
门 G1,G2,G3用来产生加 6的控制信号 。 当门 G1,G2为
1时,说明,和,
输出端为 10,11、
12,13,14,15。
当 C'5为 1时,和数为 16,17,18。
A4 A1A3 A2
S4 S3 S2 S1
FA
B4
C4 FA
B1
C1FA
B3
C3
FA
B2
C2
G1
G2
≥1 FA HA
C'5
G3
C5进位输出
S'4 S'3 S'2 S'1 进位输入一位 BCD码并行加法器
=1
由四位串行进位并行加法器和十进制调整电路组成。
以上情形都需要向高位加法器传送进位信号 C5,并对和
S'3,S'2位加 1,实现加 6调整。
要实现多位 BCD
码相加,可以用若干个此电路组成多位 BCD码加法器。
例:
试用 74LS283实现 8421码的加法运算 。
两 个 一 位 8421 码 相 加 之 和,最 小 数 是
0000+0000=0000;
最大数是 1001+1001=11000( 8421码的 18) 。
74LS283为四位二进制加法器 。 用它进行 8421码相加时,若和数小于等于 9时,无需修正 ( 加
0000),即 74283输出为 8421码相加之和 。
当和数大于等于十进制数 10时,需加 6予以修正,
加 0110。
S3S2
S1S0
00 01 11 10
00
01
0 0 0 0
000 0
11
10
1
0
1
1
1
1
1
0
C= S3S2+S3S1
A3 A2 A1 A0
CI
B3 B2 B1 B0
S3 S2 S1 S0
CO 74283( 2)
A3 A2 A1 A0
CI
B3 B2 B1 B0
S3 S2 S1 S0
CO 74283( 1)
十位
≥1
C
个位
A3 A2 A1 A0 B3 B2 B1 B0
&
&
用 C作为控制端,
C=0时不修正,
C=1修正加 0110。
逻辑图如图所示。
修正信号方程为
C=CO+S3S2+S3S1
逻辑图如图所示
⒉ 二进制减法电路
在计算机中,常常用加法器实现减法运算 。
二进制正,负数表示方法不同,实现减法运算的电路也不同 。
二进制正,负数的表示方法原码表示法补码表示法原码表示法
原码表示法又称为符号 -绝对值表示法 。
在二进制数最高位前增加一位符号位,
符号位为 0,表示是正数,符号位为 1表示是负数 。 其余各位表示数的绝对值 。
如,A=+10010; B=- 10010。
[+ 10010]原 =010010;
[ - 10010]原 =110010。
补码表示法
一个正数的补码与其原码相同 。
如一个二进制正数 A=+10110的原码
[A]原 =[+10110]原 =010110,
[A]补 =[+10110]补 =010110
一个负数的补码为在符号位 1不变的前提下,
绝对值取反加 1。
取反得反码 。
如 110010 原码
101101 反码
101101 反码
+ 1 加 1
101110 补码
也可以用 2n-A的方法求出 -A的补码。
[- A]补 =2n - A 其中 n为 A的位数。
例如 [- 13]10=[- 1101]2,
它的补码为:
[- 1101]补 =24- 1101=10000 - 1101=0011
如 -10010的补码为
25-10010=100000-10010=01110,再加上符号位,
则 -10010的补码为 101110。
与上面方法求得的补码相同。
补码表示法减法电路
因为减正数等于加负数;减负数等于加正数。
有了正、负数的补码表示法,就可以变减法为补码加法运算。
⒈用补码完成减法
① 用补码表示正,负数,X- Y= X+[- Y]补 的补码加法运算 。
二进制原码减法运算
0101 5
- 0010 2
0011 3
二进制补码加法运算补码运算结果仍为补码 。 差值为正时,补码原码相同,为十进制数 3。
0101 5
+ 1110 -2的补码
1 0011 3
符号位溢出舍掉减法电路
补码运算的结果仍为补码。结果为正数,
符号位为 0,结果为负数,符号位为 1。
再对 1101求补得原码,即 [1101]补 =1011,结果为- 3。
将加减运算变换成补码加法运算非常方便。
4
-) 7
- 3
0 1 0 0
1 0 0 1+)
1 1 0 1
4的补码
-7的补码
-3的补码补码加法运算的步骤是:
① 把减法运算表示成加法运算;
② 将两数各自求补;
③ 将求补后的两个补码相加,如有溢出则丢掉,对运算结果求补,得到原码 。
2.求反电路
求反电路可以用异或门实现,如图 3-40所示。
=1
F3
A3
=1
F2
A2
=1
F1
A1
=1
F0
A0
M
图 3-40 求反电路
M=0时,
iii AAF 0
iii AAF 1
M=1时,
3.原码输出二进制减法电路
按照补码运算规则设计的减法电路如图 3-
41所示。
两个四位二进制数 A和 B(最高位为符号位)
做减法运算是变减法为补码的加法运算。
3.原码输出二进制减法电路
7 4 L S 2 8 3 ( 1 # )
B
3
B
2
B
1
B
0
= 1= 1= 1 = 1
= 1= 1 = 1
A
3
A
2
A
1
A
0
B
3
B
2
B
1
B
0
A
3
A
2
A
1
A
0
S
3
S
2
S
1
S
0
C
0
C
0
C
4
C
4
( 2 # )
符 号 位
1
S
'
3
S
'
2
S
'
1
S
'
0
被 减 数 A
减 数 B
G
1
G
2
G
3
图 3 - 4 1 原 码 输 出 二 进 制 减 法 电 路中规模四位超前进位加法器求反电路四位二进制数
A和 B
在 A3A2A1A0输入端送入 -5的补码 1011,
B3B2B1B0输入端送入 +2的补码 0010。
-2的补码由 C0=1控制求反电路对 +2求反,送入 1# 74LS283
实现 的运算。得中间结果
S3’S2’S1’S0’为 -7的补码,符号位 S3’为 1表示是负数的补码。
1 BA
S3’也控制门 G1、
G2,G3对数值部分
S2’S1’S0’(001)求反,
求反后送入
#74LS283与
B3B2B1B0(0000)、
C0(1)相加,实现对
-7的补码再求补得 -
7的原码输出。
例如 -5-2=-7
用二进制数计算的过程描述如下:
对 -7的补码再求补码,1001为
1111。用负数减正数,结果为负数。
7 4 2 8 3
7 4 2 8 3
= 1
= 1 = 1
= 1
= 1
= 1 = 1
= 1
A
3
A
2
A
1
A
0
B
3
B
2
B
1
B
0
X
3
X
2
X
1
X
0
Y
3
Y
2
Y
1
Y
0
S
3
S
2
S
1
S
0
S
3
S
2
S
1
S
0
F
3
F
2
F
1
F
0
X
3
Y
3
X
2
Y
2
X
1
Y
1
X
0
Y
0
C
0
C
0
C
- 1
C
- 1
S
原码输出减法电路的设计原理是:
负数用补码表示,将减法变为加法。
[A- B] 补 =[A] 补 +[- B]补,变成原码需要对 [A- B]补 再求补一次,
即 [[A- B]补 ]补 =[A- B]原 。
⒊ 算术逻辑单元( ALU)
算术逻辑单元 (Arithmetic Logic Unit,简称 ALU)
不仅能进行算术运算 ( 如加减运算 ),而且能进行逻辑运算 ( 与,与非,或,或非,异或,数码比较等 ) 。 它是在全加器的基础上,增加控制门和功能选择控制端构成的 。
算术逻辑单元输入端输入的二进制代码,可以是参加运算的数据,也可以是代表特定含义的信息 。
由于其功能全面,在计算机和数字装置中得到了广泛的应用 。
ALU的基本组成原理
图 3-42为一个功能简单的 ALU的逻辑框图及其中某一位的逻辑图 。
图 3 - 4 2 简 单 A L U 逻 辑 原 理 图 ( a ) 逻 辑 框 图
B
0
A
0
B
3
A
3
B
2
A
2
B
1
A
1
C
4
C
3
C
2
C
1
F
3
F
2
F
1
F
0
M
S
1
S
0
C
0
方式控制端,M=1,算术运算,M=0逻辑运算。
操作选择端数据输入端进位输入端进位输出端结果输出端
ALU的基本组成原理图 3 - 4 2 简 单 A L U 逻 辑 图 ( b ) 一 位 逻 辑 图
&
&
& &
= 1
= 1
= 1
≥ 1
S
1
B
i
S
0
A
i
M C
i
G
1
G
2
G
3
G
4
G
5
G
6
G
8
G
7
F
i
C
i + 1
ALU的基本组成原理
当方式控制端 M=0时,进行逻辑运算 。 对应 S1,S0的四种状态,ALU执行不同的操作 。
当 M=1时,进行算术运算 。 由于进位输入有两个状态,
所以 ALU执行的操作也不同 。 如表 3-22,3-23所示 。
表 3-22,3-23 简单 ALU的逻辑功能选 择
S1 S0
M=0
逻辑运算
M=1 算术操作
Ci=0 Ci=1
0 0
0 1
1 0
1 1
Fi=Ai
Fi=Ai
Fi=Ai⊕ Bi
Fi=Ai⊕ Bi
Fi=Ai
Fi=Ai
Fi=Ai加 Bi
Fi=Ai加 Bi
Fi=Ai加 1
Fi=Ai加 1
Fi=Ai加 Bi加 1
Fi=Ai加 Bi加 1
集成算术逻辑单元
图 3-43是 74181ALU中规模集成电路逻辑原理图 。
74181是在四位超前进位加法器基础上发展起来的,
具有十六种逻辑运算功能和十六种算术运算功能 。
具有如下性能特点:
① 在扩展字长时,可作高速超前进位运算 。
② 算术运算:加,减,左移一位;比较大小; 12个其它算术运算 。
③ 逻辑运算:异或;比较;与;与非;或;或非及其它逻辑运算 。
④ 芯片上有 75个等效门 。
B3A3B2A2
Y3X3Y2X2
B1A1
Y1X1
B0A0
Y0X0
S3
S2
S1
S0MC-1
G
C3
T3T2T1T0
F3F2F1F0
FA=B
M+C2M+C1M+C0
M+C-1
图 6-14 74181型 ALU中规模集成电路逻辑原理图
P
≥1 ≥1
≥1
≥1
≥1
=1 =1
=1 =1
& &
&
&
&
& & & && & & & & & & & &
& &
& &
& & & & && & & &
& & &
& &&&
&
& &
&
& & &
&
& &
A3A2A1A0和 B3B2B1B0是两个输入运算代码,
F3F2F1F0是输出的运算结果,是进行算术加法运算时的进位输出,是来自低位的进位输入。
当两个数完全相同时,FA=B=1。
G,P是进位产生函数输出端和进位传送函数输出端,提供扩展位数、片间连接用。
M是逻辑 /算术运算控制端,S3S2S1S0为操作选择端。
将输入变量和输出变量按正逻辑规定列出
74181的运算功能见表 3-24。
F=A加 1
F=(A+B)加 1
F=(A+B)加 1
F=0
F=A加 AB加 1
F=(A+B)加 AB加 1
F=A减 B
F=AB
F=A加 AB加 1
F=A加 B加 1
F=(A+B)加 AB加 1
F=AB
F=A加 A加 1
F=(A+B)加 A加 1
F=(A+B)加 A加 1
F=A
C-1=0(有进位 )C-1=1(无进位 )
F=A
F=A+B
F=A+B
F=减 1
F=A加 AB
F=(A+B加 )AB
F=A减 B减 1
F=AB减 1
F=A加 AB
F=A加 B
F=(A+B)加 AB
F=AB减 1
F=A加 A(相当 A乘以 2)
F=(A+B)加 A
F=(A+B)加 A
F=A减 1
F=A
F=A+B
F=AB
F=0
F=AB
F=B
F=A B
F=AB
F=A+B
F=A B
F=B
F=AB
F=1
F=A+B
F=A+B
F=A
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
M=0算术运算M=1
逻辑运算运 算 功 能
S3 S2 S1 S0
操 作 选 择
表 3-24 74181型四位算术逻辑单元的运算种类 (正逻辑 )
若输入、输出按负逻辑规定,则输入为
0123,,,AAAA
0123,,,BBBB 1?C
输出为
0123,,,FFFF
C3 和P G
S3S2S1S0,M,FA=B端是状态标志,符号不变 。
1 6 1 7 1 4 1 5 1 3 1 1 1 0 9
2 1 2 3 2 2 2 1 2 0 1 9 1 8
7
8
3
4
5
6
7 4 1 8 1
A
0
B
0
A
1
B
1
A
2
B
2
A
3
B
3
C
3
F
A = B
G P F
3
F
2
F
1
F
0
C
- 1
M
S
3
S
2
S
1
S
0
1 6 1 7 1 4 1 5 1 3 1 1 1 0 9
2 1 2 3 2 2 2 1 2 0 1 9 1 8
7
8
3
4
5
6
7 4 1 8 1
A
0
B
0
A
1
B
1
A
2
B
2
A
3
B
3
C
3
F
A = B
G P F
3
F
2
F
1
F
0
C
- 1
M
S
3
S
2
S
1
S
0
3.8 奇偶校验电路
在数字设备中,数据的传输是大量的,且传输的数据都是由若干位二进制代码 0和 1组合而成的 。
由于系统内部或外部干扰等原因就可能使数据信息在传输过程中产生错误,例如在发送端,待发送的数据是 8位,有三位是 1,到了接收端变成了四位是 1,产生了误传 。
奇偶校验器就是能自动检验数据信息传送过程中是否出现误传的逻辑电路 。
⒈ 奇偶校验的基本原理发 送 端 接 收 端信 息 码 传 输 码监 督 码报 警奇 偶发 生 器奇 偶校 验 器校 验 正 确命 令 接 收校 验 出 错报 警
3
3
3
3
4
1 1
图 3 - 4 4 奇 偶 校 验 原 理 框 图
奇偶校验的基本方法就是在待发送的有效数据位之外再增加一位奇偶校验位 (又称监督码 )。
利用这一位将待发送的数据代码中含 1
的个数补成奇数(当采用奇校验)或者补成偶数(当采用偶校验),形成传输码。
在接收端通过检查接收到的传输码中 1的个数的奇偶性判断传输过程中是否有误传现象。
传输正确则向接收端发出接收命令,否则拒绝接收或发出报警信号。 产生奇偶校验位
(监督码)
判断传输码中含
1的个数奇偶性
⒈ 奇偶校验的编码表
1 0 0 0
0 0 0 1
0 0 1 0
1 0 1 1
0 1 0 0
1 1 0 1
1 1 1 0
0 1 1 1
1
0
0
1
0
1
1
0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
WOD A B C WODA B C
传输码监督码发送码奇校验
0 0 0 0
1 0 0 1
1 0 1 0
0 0 1 1
1 1 0 0
0 1 0 1
0 1 1 0
1 1 1 1
0
1
1
0
1
0
0
1
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
WE A B C WEA B C
传输码监督码发送码偶校验
CBA
CBACBA
CABCBABCACBAW
)()(
OD
CBA
CBACBA
A B CCBACBACBAW
)()(
E
三位二进制码的奇校验系统联接方式
CBAWOD
CBAWE
1ODOD 2 WCBAW
发送端接收端
= 1
= 1
= 1
= 1
= 1
1
1
数 据 代 码 ( 信 息 码 )
A
B
C
W
E 1
W
O D 1
奇 偶 发 生 器奇 偶 校 验 器传 输 码监 督 码 位
W
E 2
W
O D 2
⒉ 中规模集成奇偶发生器 /校验器
如图是中规模集成奇偶发生器 74180的逻辑图 。
=
=
=
=
= 1
= 1
=
&
&
&
&
1
≥ 1
≥ 1
A
B
C
D
E
F
G
H
G
1
G
2
G
3
G
4
G
5
G
6
G
7
G
8
G
9
G
1 0
G
1 1
G
1 2
G
1 3
G
1 4
P
P
W
E
W
O D
S
O D
S
E A,B,C,D,E,F,G,H是八位输入代码 。
SOD和 SE是奇偶控制端
WOD是奇校验端,WE是偶校验端
⒉ 中规模集成奇偶发生器 /校验器
如图是中规模集成奇偶发生器 74180的引脚排列图 。1
2
3
4
5
6
7
1 4
1 3
1 2
1 1
1 0
9
8
G
H
S
E
S
O D
W
E
W
O D
G N D
V
C C
F
E
D
C
B
A
7
4
1
8
0
⒉ 中规模集成奇偶发生器 /校验器
如图是中规模集成奇偶发生器 74180的逻辑图 。
=
=
=
=
= 1
= 1
=
&
&
&
&
1
≥ 1
≥ 1
A
B
C
D
E
F
G
H
G
1
G
2
G
3
G
4
G
5
G
6
G
7
G
8
G
9
G
1 0
G
1 1
G
1 2
G
1 3
G
1 4
P
P
W
E
W
O D
S
O D
S
E
HGFEDCBA
HGFEDCBAP
EODE
EODOD
PSSPW
SPSPW
⒉ 中规模集成奇偶发生器 /校验器
表 3-27是 74180的功能表 。SOD=1,SE=0,
监督码引自 WOD。
SOD=0
SE=1
监督码引自 WE
。
1 0
1 0
0 1
0 1
1 1
0 0
SE SOD
1 0
0 1
0 1
1 0
0 0
1 1
偶 数奇 数偶 数奇 数
×
×
WE WODA~ H中一的个数输 出输 入
⒉,中规模集成奇偶发生器 /校验器
图 3-47是一个八位奇校验系统 。
SOD=1,SE=0
,监督码引自
WOD。
A-H是偶数
,WOD=1,否则
WOD=0。
如果
WOD=1,SOD=1,
SE=0,WOD2=1,
正确。
如果 WOD=0,
SOD=0,
SE=1,
WOD2=1,正确。
否则 WOD2=0,错误。
奇 偶 发 生 器 奇 偶 校 验 器
1
A
B
C
D
E
F
G
H
传 输 码
S
O D
5 V
S
E
W
O D 1
W
E
W
E
W
O D 2
S
E
S
O D
1 正 确
2 出 错
{
数值比较电路是用来比较两个二进制数的大小或是否相等的电路 。
比较原理
一位比较器
四位比较器比较原理
比较两个二进制数的大小要从最高位开始比较直至最低位 。
如对于 A=A3A2A1A0 和 B=B3B2B1B0,若
A3>B3,以下各位不必比较,就可判断
A>B,反之,若 A3<B3,则 A<B;
若 A3=B3,则比较 A2和 B2的关系,…… 直至最低位,从而可以确定 A和 B的关系;
只有 A和 B各位都相等才能有 A=B。
一位比较器
两个一位二进制数 Ai和 Bi的比较有三种结果:
Ai>Bi,Ai<Bi,Ai=Bi。 其真值表如表 3-19所示 。
表 3-19 一位比较器真值表输 入 输 出
Ai Bi (Ai=Bi) (Ai<Bi) (Ai>Bi)
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
由表可得出一位比较器的三个输出端的逻辑表达式分别为:
iiii BABA )(
iiii BABA )(
iiii BABA )(
(Ai=Bi)
Ai Bi
(Ai<Bi) (Ai>Bi)
图 3-33一位比较器
≥1& &
& &
1 1
iiii BABA )(
iiii BABA )(
iiii BABA )(
一位比较器逻辑图四位比较器
中规模四位数值比较器 CC14585(74LS85)
的逻辑图和逻辑符号如图 3-34所示。
A3A2A1A0和 B3B2B1B0为比较输入;
A>B,A<B,A=B为比较输出;
a>b,a<b,a=b为级联输入。
级联输入是为多片四位二进制数值比较器连接起来,实现更多位数比较而设置的。表 3-20为其真值表。
表 3-20 四位数值比较器真值表
①
②
③
比 较 输 入 级 联 输 入 输 出
A3 B3 A2 B2 A1 B1 A0 B0 (a>b) (a<b) (a=b) (A>B) (A<B) (A=B)
A3>B3
A3<B3
A3=B3
A3=B3
A3=B3
A3=B3
A3=B3
A3=B3
A3=B3
A3=B3
A3=B3
× ×
× ×
A2>B2
A2<B2
A2=B2
A2=B2
A2=B2
A2=B2
A2=B2
A2=B2
A2=B2
× ×
× ×
× ×
× ×
A1>B1
A1<B1
A1=B1
A1=B1
A1=B1
A1=B1
A1=B1
× ×
× ×
× ×
× ×
× ×
× ×
A0>B0
A0<B0
A0=B0
A0=B0
A0=B0
× × ×
× × ×
× × ×
× × ×
× × ×
× × ×
× × ×
× × ×
1 0 0
0 1 0
0 0 1
1 0 0
0 1 0
1 0 0
0 1 0
1 0 0
0 1 0
1 0 0
0 1 0
1 0 0
0 1 0
0 0 1
注:①只要两数最高位不等,就可以判断两数大小。其余各位可以为任意值。
② 若高位相等,则需要比较低位。③ 若 A,B两数各位均相等,输出状态取决于级联输入状态。Ai=Bi
1 ii BA
1?ii BA
Ai>Bi Ai<Bi
1?ii BA
)(
)(
00112233
00112233
112233223333
baBABABABA
BABABABA
BABABABABABABA
)(
)(
00112233
00112233
112233223333
baBABABABA
BABABABA
BABABABABABABA
)()( 00112233 baBABABABBA
四位比较器
(a<b)(a=b) (a>b)
B0A
0B
1A
1B
2A2
B3A
3
(A>B)
(A=B)
(A<B)
(b) 逻辑符号
≥1
A3
B3
≥1A2
B2
≥1A1
B1
≥1
A0
B0
A3⊕ B3
A2⊕ B2
A1⊕ B1
A0⊕ B0
a>b
a<b
a=b
≥1
≥1
A>B
A<B
A=B
(a) 逻辑图 图 3-34四位数值比较器
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
1
1
1
1
1
1
1
1
四位比较器
(a<b)(a=b) (a>b)
B0A
0B
1A
1B
2A2
B3A
3
(A>B)
(A=B)
(A<B)
(b) 逻辑符号
A
3
A
2
A
1
A
0
B
3
B
1
B
2
B
0
1
1
1
1
1
1
1
1
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
≥ 1
≥ 1
≥ 1
≥ 1
≥ 1
≥ 1
A > B
A < B
A = B
a > b
a < b
a = b
A
3
⊙ B
3
A
2
⊙ B
2
A
1
⊙ B
1
A
0
⊙ B
0
图 3-35 四位数值比较器引脚图
CMOS比较器 TTL比较器
1 6 1 5 1 4 1 3 1 2 1 1 1 0 9 1 6 1 5 1 4 1 3 1 2 1 1 1 0 9
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
C C 1 4 5 8 5
C 6 6 3
V
D D
A
3
B
3
A > B A < B B
0
A
0
A
1
B
2
A
2
A = B a < ba > b a = b A
1
V
s s
7 4 8 5
7 4 L S 8 5
V
c c
A
3
B
2
A
2
A
1
B
1
A
0
B
0
B
3
a > ba < b a = b A = BA > B A < B 地四位比较器的外引脚排列图
八位二进制数比较时,若高四位相等,就得看低四位比较结果 。
用两片 74LS85比较八位数时,高四位的输出就是八位数比较结果的输出 。
低四位片输出接到高四位片的级联输入,
从而高四位相等时,高四位的输出取决于级联输入 — 低四位的比较结果 。
四位比较器的级联
A3
A2
A1
A0
B3
B2
B1
B0
A>B
A<B
A=B
a>b a=b a<b
74LS85
(1)
0 1 0
两片 74LS85构成的八位数值比较的逻辑图
A3
A2
A1
A0
B3
B2
B1
B0
A>B
A<B
A=B
a>b a=b a<b
74LS85
(2)
实现逻辑图例 试选用中规模集成电路实现下表所示电路。
A B C D F1 F2 F3
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
1 0 0
0 1 0
0 0 1
0 0 1
0 0 1
0 0 1
0 0 1
0 0 1
解:若把 A,B,C,D看成二进制数时,
ABCD=0110时,F2=1;
ABCD<0110时,F1=1;
ABCD>0110时,F3=1;
上述分析结果是 ABCD与二进制 0110比较得出的 。 1 1 0
因此选用四位二进制数值比较器较为方便。
令 A3A2A1A0=ABCD,
B3B2B1B0=0110,
A<B时为 F,A=B时为 F2,
A>B时为 F3。
逻辑图如图所示。
A3
A2
A1
A0
B3
B2
B1
B0
A>B
A<B
A=B
a>b a<ba=b
74LS85
+5V
F3
F2
F1
A
B
C
D
0
1
1
0
例子的逻辑图
3.6 算数运算电路
⒈ 二进制加法电路
⒉二进制减法电路
⒊算术逻辑单元 (ALU)
⒈ 二进制加法电路
⑴ 半加和全加的概念
⑵半加器( Half Adder)
⑶ 全加器( Full Adder)
⑷加法器
①串行加法器
②并行加法器串行进位并行加法器超前进位并行加法器
⑸ BCD码加法器
⑴ 半加和全加的概念
两个 n位二进制数相加,是从最低有效位开始相加,得到,和数,并传送进位最后得到结果。
最低位只有加数和被加数相加,称为半加;
其余各位是加数、被加数和相邻低位的进位相加称为全加。
⑵ 半加器 ( Half Adder)
半加器:完成只有加数和被加数相加的电路,称为半加器,如最低位的加法。
iiiiiii BABABAS
ii1i BAC
Ai Bi Si Ci+1
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
半加器真值表 Ai
Bi Si
Ci+1
(a)
&
=1
Ci+1
ΣA
i
Bi
Si
(b)
CO
Ci+1
HA
Ai
Bi
Si
(c)
半加器的逻辑符号及真值表
⑶ 全加器( Full Adder)
全加器:能够完成除了加数,被加数相加之外,还要加上相邻低位的进位的电路,称为全加器 。
Ai Bi Ci
0 0
1 0
1 0
0 1
1 0
0 1
0 1
1 1
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Si Ci+1
全加器真值表
iiii CBAS
)( iiiii1i BACBAC
全加器的真值表和加数被加数 低位来的进位向高位的进位
Ai BiCi 0 1
00
01
11
10
Ai BiCi 0 1
00
01
11
10
0
0
0
0
0 0
0
0
1
1
1
1
1
1 1
1
Si Ci+1
iiii CBAS
)( iiiii1i BACBACS
i
Ai
Bi
Ci Ci+1
FA
全加器惯用逻辑符号
SiAi
Bi
Ci Ci+1
Σ
全加器国标逻辑符号
CI CO
全加器的逻辑符号和逻辑图
=1
=1
Ci+1
Si
Ai Bi Ci
全加器逻辑图
≥1
&
&
⑷ 加法器
加法器:实现多位二进制数加法运算的电路。
串行加法器:串行加法器采用串行运算方式,
从二进制数的最低位开始,逐位相加至最高位,最后得出和数。
并行加法器:并行加法器采用并行运算方式,
将各位数同时相加,因而提高了运算速度。
并行加法器
按进位数传递方式可分为串行进位和并行进位两种方式并行加法器。
串行进位并行加法器的全加器的个数等于相加数的位数 。
图 3-38串行进位并行加法器的逻辑图 。
C I
∑
C O
B
3
A
3
C
3
C
4
S
3
C I
∑
C O
B
2
A
2
C
2
C
3
S
2
C I
∑
C O
B
1
A
1
C
1
C
2
S
1
C I
∑
C O
B
0
A
0
C
0
= 0
C
1
S
0
图 3 -3 8 串 行 进 位 并 行 加 法 器串行进位并行加法器
全加器的个数等于加数的位数 。 优点是电路简单,
连接方便;缺点是运算速度不高 。 最高位的运算,
必须等到所有低位运算依次结束,送来进位信号之后才能进行 。
C I
∑
C O
B
3
A
3
C
3
C
4
S
3
C I
∑
C O
B
2
A
2
C
2
C
3
S
2
C I
∑
C O
B
1
A
1
C
1
C
2
S
1
C I
∑
C O
B
0
A
0
C
0
= 0
C
1
S
0
图 3 - 3 8 串 行 进 位 并 行 加 法 器超前进位并行加法器
超前进位并行加法器采用超前进位 ( 并行进位 ) 的方法,能够先判断出各位的进位是 0还是 1,因此四个全加器可同时相加,从而提高了运算速度 。
3-39为四位超前进位加法器 74LS283的逻辑图 。 它由四个全加器和超前进位电路组成 。 每位全加器输出本位和 Si,绝对进位 Gi及产生相对进位用的 Pi,Pi=Ai⊕ Bi。
每位全加器输出本位和 Si
=1
=1
=1
=1
&
&
&
&
&
&
&
&
&
&
&
&
≥ 1
≥ 1
≥ 1
≥ 1
≥ 1
≥ 1
≥ 1
≥ 1
11
B
3
B
2
B
1
B
0
A
3
A
2
A
1
A
0
C
0
S
0
S
1
S
2
S
3
C
1
C
2
C
3
( C
4
)
CO
P
3
P
2
P
1
P
0
进位信号
)( iiiii1i BACBAC
令 AiBi=Gi为绝对进位,
PiCi为相对进位则 Ci+1=Gi+PiCi
四位进位信号的逻辑表达式,C1=A0B0+(A0⊕ B0)C0=G0+P0C0
C2=G1+P1C1
=G1+P1(G0+P0C0)
=G1+P1G0+P1P0C0
C3=G2+P2C2
=G2+P2(G1 1G0+P1 0)
=G2+P2 1+P2P1G0+ 2 1P0C0
C4=G3+P3C3=G3+P3(G2+P2G1
+P2P1G0+P2P1P0C0)
=G3+P3G2+P3P2G1+P3P2P1G0+
P3P2P1P0C0
FA
FA
FA
FA
≥1
≥1
≥1
≥1
C0
A0
B0
C0S
0
P0
G0
C1
B1
A1
C2
A2
B2
C3
A3
B3
S1
P1
G1
S2
P2
G2
S3
P3
G3
&2
C4
3
C3
C2
C1
图 3-39四位超前进位并行加法器
=1
=1
1
&
&
&
&
&
&
&
&
&
由这些表达式画出的超前进位电路实现了相对进位信号的快速传递 。
各位和如下式:
S0=A0⊕ B0⊕ C0
S1=A1⊕ B1⊕ C1
S2=A2⊕ B2⊕ C2
S3=A3⊕ B3⊕ C
和数信号与进位信号是同时产生的,不必逐级传送 。 因而,提高了运算速度 。
A3 A2 A1A0
C0
B3 B2 B1B0
S3 S2 S1 S0
C4 74283
S1 B1
16 15 14 13 12 11 10 9
87654321
VCC B2 S3 CO
A1 B0 CI GND
A2 S2 A3 B3
A0S0
A2 S2B2 A3 B3 S3
C4
C0B0A0A1 S0B1
S1
74283的外引线排列图和逻辑符号
74LS283的逻辑符号及外引脚排列图例 试用两片 74LS283构成八位二进制数加法器。
解:按照加法的规则,低四位的进位输出 CO
应接高四位的进位输入 CI,而低四位的进位输入应接 0。 逻辑图如图所示 。
两片 74283构成八位二进制加法器
A3A2 A1A0
CI
B3B2B1B0
S3 S2 S1 S0
CO 74283
A3A2 A1A0
CI
B3 B2B1B0
S3 S2 S1 S0
CO 74283 0
⑸ BCD码加法器
BCD( Binary Coded Decimal) 码是用二进制代码分别表示十进制数各位的代码组合 。
由于每位十进制数最大为 9,所以 BCD码相加时,
其值超过 9的位必须通过减 10或加 6加以调整 。
因此 BCD码相加时,其和有需要调整和不需要调整两种情况:
一种和数为 0-9,不需要调整;
另一种和数为 10-18,需要调整
0011
0100+)
0111
1100
+) 0110
1 0010
0111
+) 0101
1100
非 BCD码需要调整图为一位 BCD码并行加法器逻辑图。
门 G1,G2,G3用来产生加 6的控制信号 。 当门 G1,G2为
1时,说明,和,
输出端为 10,11、
12,13,14,15。
当 C'5为 1时,和数为 16,17,18。
A4 A1A3 A2
S4 S3 S2 S1
FA
B4
C4 FA
B1
C1FA
B3
C3
FA
B2
C2
G1
G2
≥1 FA HA
C'5
G3
C5进位输出
S'4 S'3 S'2 S'1 进位输入一位 BCD码并行加法器
=1
由四位串行进位并行加法器和十进制调整电路组成。
以上情形都需要向高位加法器传送进位信号 C5,并对和
S'3,S'2位加 1,实现加 6调整。
要实现多位 BCD
码相加,可以用若干个此电路组成多位 BCD码加法器。
例:
试用 74LS283实现 8421码的加法运算 。
两 个 一 位 8421 码 相 加 之 和,最 小 数 是
0000+0000=0000;
最大数是 1001+1001=11000( 8421码的 18) 。
74LS283为四位二进制加法器 。 用它进行 8421码相加时,若和数小于等于 9时,无需修正 ( 加
0000),即 74283输出为 8421码相加之和 。
当和数大于等于十进制数 10时,需加 6予以修正,
加 0110。
S3S2
S1S0
00 01 11 10
00
01
0 0 0 0
000 0
11
10
1
0
1
1
1
1
1
0
C= S3S2+S3S1
A3 A2 A1 A0
CI
B3 B2 B1 B0
S3 S2 S1 S0
CO 74283( 2)
A3 A2 A1 A0
CI
B3 B2 B1 B0
S3 S2 S1 S0
CO 74283( 1)
十位
≥1
C
个位
A3 A2 A1 A0 B3 B2 B1 B0
&
&
用 C作为控制端,
C=0时不修正,
C=1修正加 0110。
逻辑图如图所示。
修正信号方程为
C=CO+S3S2+S3S1
逻辑图如图所示
⒉ 二进制减法电路
在计算机中,常常用加法器实现减法运算 。
二进制正,负数表示方法不同,实现减法运算的电路也不同 。
二进制正,负数的表示方法原码表示法补码表示法原码表示法
原码表示法又称为符号 -绝对值表示法 。
在二进制数最高位前增加一位符号位,
符号位为 0,表示是正数,符号位为 1表示是负数 。 其余各位表示数的绝对值 。
如,A=+10010; B=- 10010。
[+ 10010]原 =010010;
[ - 10010]原 =110010。
补码表示法
一个正数的补码与其原码相同 。
如一个二进制正数 A=+10110的原码
[A]原 =[+10110]原 =010110,
[A]补 =[+10110]补 =010110
一个负数的补码为在符号位 1不变的前提下,
绝对值取反加 1。
取反得反码 。
如 110010 原码
101101 反码
101101 反码
+ 1 加 1
101110 补码
也可以用 2n-A的方法求出 -A的补码。
[- A]补 =2n - A 其中 n为 A的位数。
例如 [- 13]10=[- 1101]2,
它的补码为:
[- 1101]补 =24- 1101=10000 - 1101=0011
如 -10010的补码为
25-10010=100000-10010=01110,再加上符号位,
则 -10010的补码为 101110。
与上面方法求得的补码相同。
补码表示法减法电路
因为减正数等于加负数;减负数等于加正数。
有了正、负数的补码表示法,就可以变减法为补码加法运算。
⒈用补码完成减法
① 用补码表示正,负数,X- Y= X+[- Y]补 的补码加法运算 。
二进制原码减法运算
0101 5
- 0010 2
0011 3
二进制补码加法运算补码运算结果仍为补码 。 差值为正时,补码原码相同,为十进制数 3。
0101 5
+ 1110 -2的补码
1 0011 3
符号位溢出舍掉减法电路
补码运算的结果仍为补码。结果为正数,
符号位为 0,结果为负数,符号位为 1。
再对 1101求补得原码,即 [1101]补 =1011,结果为- 3。
将加减运算变换成补码加法运算非常方便。
4
-) 7
- 3
0 1 0 0
1 0 0 1+)
1 1 0 1
4的补码
-7的补码
-3的补码补码加法运算的步骤是:
① 把减法运算表示成加法运算;
② 将两数各自求补;
③ 将求补后的两个补码相加,如有溢出则丢掉,对运算结果求补,得到原码 。
2.求反电路
求反电路可以用异或门实现,如图 3-40所示。
=1
F3
A3
=1
F2
A2
=1
F1
A1
=1
F0
A0
M
图 3-40 求反电路
M=0时,
iii AAF 0
iii AAF 1
M=1时,
3.原码输出二进制减法电路
按照补码运算规则设计的减法电路如图 3-
41所示。
两个四位二进制数 A和 B(最高位为符号位)
做减法运算是变减法为补码的加法运算。
3.原码输出二进制减法电路
7 4 L S 2 8 3 ( 1 # )
B
3
B
2
B
1
B
0
= 1= 1= 1 = 1
= 1= 1 = 1
A
3
A
2
A
1
A
0
B
3
B
2
B
1
B
0
A
3
A
2
A
1
A
0
S
3
S
2
S
1
S
0
C
0
C
0
C
4
C
4
( 2 # )
符 号 位
1
S
'
3
S
'
2
S
'
1
S
'
0
被 减 数 A
减 数 B
G
1
G
2
G
3
图 3 - 4 1 原 码 输 出 二 进 制 减 法 电 路中规模四位超前进位加法器求反电路四位二进制数
A和 B
在 A3A2A1A0输入端送入 -5的补码 1011,
B3B2B1B0输入端送入 +2的补码 0010。
-2的补码由 C0=1控制求反电路对 +2求反,送入 1# 74LS283
实现 的运算。得中间结果
S3’S2’S1’S0’为 -7的补码,符号位 S3’为 1表示是负数的补码。
1 BA
S3’也控制门 G1、
G2,G3对数值部分
S2’S1’S0’(001)求反,
求反后送入
#74LS283与
B3B2B1B0(0000)、
C0(1)相加,实现对
-7的补码再求补得 -
7的原码输出。
例如 -5-2=-7
用二进制数计算的过程描述如下:
对 -7的补码再求补码,1001为
1111。用负数减正数,结果为负数。
7 4 2 8 3
7 4 2 8 3
= 1
= 1 = 1
= 1
= 1
= 1 = 1
= 1
A
3
A
2
A
1
A
0
B
3
B
2
B
1
B
0
X
3
X
2
X
1
X
0
Y
3
Y
2
Y
1
Y
0
S
3
S
2
S
1
S
0
S
3
S
2
S
1
S
0
F
3
F
2
F
1
F
0
X
3
Y
3
X
2
Y
2
X
1
Y
1
X
0
Y
0
C
0
C
0
C
- 1
C
- 1
S
原码输出减法电路的设计原理是:
负数用补码表示,将减法变为加法。
[A- B] 补 =[A] 补 +[- B]补,变成原码需要对 [A- B]补 再求补一次,
即 [[A- B]补 ]补 =[A- B]原 。
⒊ 算术逻辑单元( ALU)
算术逻辑单元 (Arithmetic Logic Unit,简称 ALU)
不仅能进行算术运算 ( 如加减运算 ),而且能进行逻辑运算 ( 与,与非,或,或非,异或,数码比较等 ) 。 它是在全加器的基础上,增加控制门和功能选择控制端构成的 。
算术逻辑单元输入端输入的二进制代码,可以是参加运算的数据,也可以是代表特定含义的信息 。
由于其功能全面,在计算机和数字装置中得到了广泛的应用 。
ALU的基本组成原理
图 3-42为一个功能简单的 ALU的逻辑框图及其中某一位的逻辑图 。
图 3 - 4 2 简 单 A L U 逻 辑 原 理 图 ( a ) 逻 辑 框 图
B
0
A
0
B
3
A
3
B
2
A
2
B
1
A
1
C
4
C
3
C
2
C
1
F
3
F
2
F
1
F
0
M
S
1
S
0
C
0
方式控制端,M=1,算术运算,M=0逻辑运算。
操作选择端数据输入端进位输入端进位输出端结果输出端
ALU的基本组成原理图 3 - 4 2 简 单 A L U 逻 辑 图 ( b ) 一 位 逻 辑 图
&
&
& &
= 1
= 1
= 1
≥ 1
S
1
B
i
S
0
A
i
M C
i
G
1
G
2
G
3
G
4
G
5
G
6
G
8
G
7
F
i
C
i + 1
ALU的基本组成原理
当方式控制端 M=0时,进行逻辑运算 。 对应 S1,S0的四种状态,ALU执行不同的操作 。
当 M=1时,进行算术运算 。 由于进位输入有两个状态,
所以 ALU执行的操作也不同 。 如表 3-22,3-23所示 。
表 3-22,3-23 简单 ALU的逻辑功能选 择
S1 S0
M=0
逻辑运算
M=1 算术操作
Ci=0 Ci=1
0 0
0 1
1 0
1 1
Fi=Ai
Fi=Ai
Fi=Ai⊕ Bi
Fi=Ai⊕ Bi
Fi=Ai
Fi=Ai
Fi=Ai加 Bi
Fi=Ai加 Bi
Fi=Ai加 1
Fi=Ai加 1
Fi=Ai加 Bi加 1
Fi=Ai加 Bi加 1
集成算术逻辑单元
图 3-43是 74181ALU中规模集成电路逻辑原理图 。
74181是在四位超前进位加法器基础上发展起来的,
具有十六种逻辑运算功能和十六种算术运算功能 。
具有如下性能特点:
① 在扩展字长时,可作高速超前进位运算 。
② 算术运算:加,减,左移一位;比较大小; 12个其它算术运算 。
③ 逻辑运算:异或;比较;与;与非;或;或非及其它逻辑运算 。
④ 芯片上有 75个等效门 。
B3A3B2A2
Y3X3Y2X2
B1A1
Y1X1
B0A0
Y0X0
S3
S2
S1
S0MC-1
G
C3
T3T2T1T0
F3F2F1F0
FA=B
M+C2M+C1M+C0
M+C-1
图 6-14 74181型 ALU中规模集成电路逻辑原理图
P
≥1 ≥1
≥1
≥1
≥1
=1 =1
=1 =1
& &
&
&
&
& & & && & & & & & & & &
& &
& &
& & & & && & & &
& & &
& &&&
&
& &
&
& & &
&
& &
A3A2A1A0和 B3B2B1B0是两个输入运算代码,
F3F2F1F0是输出的运算结果,是进行算术加法运算时的进位输出,是来自低位的进位输入。
当两个数完全相同时,FA=B=1。
G,P是进位产生函数输出端和进位传送函数输出端,提供扩展位数、片间连接用。
M是逻辑 /算术运算控制端,S3S2S1S0为操作选择端。
将输入变量和输出变量按正逻辑规定列出
74181的运算功能见表 3-24。
F=A加 1
F=(A+B)加 1
F=(A+B)加 1
F=0
F=A加 AB加 1
F=(A+B)加 AB加 1
F=A减 B
F=AB
F=A加 AB加 1
F=A加 B加 1
F=(A+B)加 AB加 1
F=AB
F=A加 A加 1
F=(A+B)加 A加 1
F=(A+B)加 A加 1
F=A
C-1=0(有进位 )C-1=1(无进位 )
F=A
F=A+B
F=A+B
F=减 1
F=A加 AB
F=(A+B加 )AB
F=A减 B减 1
F=AB减 1
F=A加 AB
F=A加 B
F=(A+B)加 AB
F=AB减 1
F=A加 A(相当 A乘以 2)
F=(A+B)加 A
F=(A+B)加 A
F=A减 1
F=A
F=A+B
F=AB
F=0
F=AB
F=B
F=A B
F=AB
F=A+B
F=A B
F=B
F=AB
F=1
F=A+B
F=A+B
F=A
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
M=0算术运算M=1
逻辑运算运 算 功 能
S3 S2 S1 S0
操 作 选 择
表 3-24 74181型四位算术逻辑单元的运算种类 (正逻辑 )
若输入、输出按负逻辑规定,则输入为
0123,,,AAAA
0123,,,BBBB 1?C
输出为
0123,,,FFFF
C3 和P G
S3S2S1S0,M,FA=B端是状态标志,符号不变 。
1 6 1 7 1 4 1 5 1 3 1 1 1 0 9
2 1 2 3 2 2 2 1 2 0 1 9 1 8
7
8
3
4
5
6
7 4 1 8 1
A
0
B
0
A
1
B
1
A
2
B
2
A
3
B
3
C
3
F
A = B
G P F
3
F
2
F
1
F
0
C
- 1
M
S
3
S
2
S
1
S
0
1 6 1 7 1 4 1 5 1 3 1 1 1 0 9
2 1 2 3 2 2 2 1 2 0 1 9 1 8
7
8
3
4
5
6
7 4 1 8 1
A
0
B
0
A
1
B
1
A
2
B
2
A
3
B
3
C
3
F
A = B
G P F
3
F
2
F
1
F
0
C
- 1
M
S
3
S
2
S
1
S
0
3.8 奇偶校验电路
在数字设备中,数据的传输是大量的,且传输的数据都是由若干位二进制代码 0和 1组合而成的 。
由于系统内部或外部干扰等原因就可能使数据信息在传输过程中产生错误,例如在发送端,待发送的数据是 8位,有三位是 1,到了接收端变成了四位是 1,产生了误传 。
奇偶校验器就是能自动检验数据信息传送过程中是否出现误传的逻辑电路 。
⒈ 奇偶校验的基本原理发 送 端 接 收 端信 息 码 传 输 码监 督 码报 警奇 偶发 生 器奇 偶校 验 器校 验 正 确命 令 接 收校 验 出 错报 警
3
3
3
3
4
1 1
图 3 - 4 4 奇 偶 校 验 原 理 框 图
奇偶校验的基本方法就是在待发送的有效数据位之外再增加一位奇偶校验位 (又称监督码 )。
利用这一位将待发送的数据代码中含 1
的个数补成奇数(当采用奇校验)或者补成偶数(当采用偶校验),形成传输码。
在接收端通过检查接收到的传输码中 1的个数的奇偶性判断传输过程中是否有误传现象。
传输正确则向接收端发出接收命令,否则拒绝接收或发出报警信号。 产生奇偶校验位
(监督码)
判断传输码中含
1的个数奇偶性
⒈ 奇偶校验的编码表
1 0 0 0
0 0 0 1
0 0 1 0
1 0 1 1
0 1 0 0
1 1 0 1
1 1 1 0
0 1 1 1
1
0
0
1
0
1
1
0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
WOD A B C WODA B C
传输码监督码发送码奇校验
0 0 0 0
1 0 0 1
1 0 1 0
0 0 1 1
1 1 0 0
0 1 0 1
0 1 1 0
1 1 1 1
0
1
1
0
1
0
0
1
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
WE A B C WEA B C
传输码监督码发送码偶校验
CBA
CBACBA
CABCBABCACBAW
)()(
OD
CBA
CBACBA
A B CCBACBACBAW
)()(
E
三位二进制码的奇校验系统联接方式
CBAWOD
CBAWE
1ODOD 2 WCBAW
发送端接收端
= 1
= 1
= 1
= 1
= 1
1
1
数 据 代 码 ( 信 息 码 )
A
B
C
W
E 1
W
O D 1
奇 偶 发 生 器奇 偶 校 验 器传 输 码监 督 码 位
W
E 2
W
O D 2
⒉ 中规模集成奇偶发生器 /校验器
如图是中规模集成奇偶发生器 74180的逻辑图 。
=
=
=
=
= 1
= 1
=
&
&
&
&
1
≥ 1
≥ 1
A
B
C
D
E
F
G
H
G
1
G
2
G
3
G
4
G
5
G
6
G
7
G
8
G
9
G
1 0
G
1 1
G
1 2
G
1 3
G
1 4
P
P
W
E
W
O D
S
O D
S
E A,B,C,D,E,F,G,H是八位输入代码 。
SOD和 SE是奇偶控制端
WOD是奇校验端,WE是偶校验端
⒉ 中规模集成奇偶发生器 /校验器
如图是中规模集成奇偶发生器 74180的引脚排列图 。1
2
3
4
5
6
7
1 4
1 3
1 2
1 1
1 0
9
8
G
H
S
E
S
O D
W
E
W
O D
G N D
V
C C
F
E
D
C
B
A
7
4
1
8
0
⒉ 中规模集成奇偶发生器 /校验器
如图是中规模集成奇偶发生器 74180的逻辑图 。
=
=
=
=
= 1
= 1
=
&
&
&
&
1
≥ 1
≥ 1
A
B
C
D
E
F
G
H
G
1
G
2
G
3
G
4
G
5
G
6
G
7
G
8
G
9
G
1 0
G
1 1
G
1 2
G
1 3
G
1 4
P
P
W
E
W
O D
S
O D
S
E
HGFEDCBA
HGFEDCBAP
EODE
EODOD
PSSPW
SPSPW
⒉ 中规模集成奇偶发生器 /校验器
表 3-27是 74180的功能表 。SOD=1,SE=0,
监督码引自 WOD。
SOD=0
SE=1
监督码引自 WE
。
1 0
1 0
0 1
0 1
1 1
0 0
SE SOD
1 0
0 1
0 1
1 0
0 0
1 1
偶 数奇 数偶 数奇 数
×
×
WE WODA~ H中一的个数输 出输 入
⒉,中规模集成奇偶发生器 /校验器
图 3-47是一个八位奇校验系统 。
SOD=1,SE=0
,监督码引自
WOD。
A-H是偶数
,WOD=1,否则
WOD=0。
如果
WOD=1,SOD=1,
SE=0,WOD2=1,
正确。
如果 WOD=0,
SOD=0,
SE=1,
WOD2=1,正确。
否则 WOD2=0,错误。
奇 偶 发 生 器 奇 偶 校 验 器
1
A
B
C
D
E
F
G
H
传 输 码
S
O D
5 V
S
E
W
O D 1
W
E
W
E
W
O D 2
S
E
S
O D
1 正 确
2 出 错
{