电子技术基础
(数字部分)
4 组合逻辑电路
4.1组合逻辑电路的分析
4.2组合逻辑电路的设计
4.3组合逻辑电路中的竞争和冒险
4.4常用组合逻辑集成电路
4.5组合可编程电路
4.6用 Verilog HDL描述 组合逻辑电路
(自学)
教学基本要求
1.熟练掌握组合逻辑电路的分析方法和设计方法
2.掌握编码器、译码器、数据选择器、数值比较器和加法器的逻辑功能及其应用;
3.学会阅读 MSI器件的功能表,并能根据设计要求完成电路的正确连接。
4.掌握可编程逻辑器件的表示方法,会用 PLD实现组合逻辑电路组合逻辑电路的一般框图
Li = f (A1,A2,…,A n ) (i=1,2,…,m)
工作特征,
组合逻辑电路工作特点,在任何时刻,电路的输出状态只取决于同一时刻的输入状态而与电路原来的状态无关。
序 关于组合逻辑电路结构特征,
1、输出、输入之间没有反馈延迟通路,
2、不含记忆单元
=
1
L 1
B
C
A Z
=
1
L 2
A 1 A
2
A n
L 1
L 2
L m
组合逻辑电路
二,组合逻辑电路的分析步骤:
4.1 组合逻辑电路分析
1,由逻辑图写出各输出端的逻辑表达式;
2,化简和变换逻辑表达式;
3,列出真值表;
4,根据真值表或逻辑表达式,经分析最后确定其功能。
根据已知逻辑电路,经分析确定电路的的逻辑功能。
一,组合逻辑电路分析三、组合逻辑电路的分析举例例 1 分析如图所示逻辑电路的功能。
=1
=1
L
B
C
A Z
L Z C
1.根据逻辑图写出输出函数的逻辑表达式
2,列写真值表。
)( CBAL
1
0
0
1
0
1
1
0
111
011
101
001
110
010
100
000
CBA BAZ
0
0
1
1
1
1
0
0
3,确定逻辑功能:
解:
()A B C
A B C
输入变量的取值中有奇数个 1时,L为 1,否则 L为 0,
电路具有为奇校验功能。
如要实现偶校验,电路应做何改变?
B
A
1
C
Y
X
Z
1
1
&
&
&
&
&
&
例 2 试分析下图所示组合逻辑电路的逻辑功能。
解,1、根据逻辑电路写出各输出端的逻辑表达式,并进行化简和变换。
X = A
BABAY
CACAZ
2、列写真值表
BABA
CACA
X = A
真值表
111
011
101
001
110
010
100
000
ZYXCBA
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
BABAY
CACAZ
这个电路逻辑功能是对输入的二进制码求反码。最高位为符号位,0表示正数,1表示负数,正数的反码与原码相同;
负数的数值部分是在原码的基础上逐位求反。
3、确定电路逻辑功能 真值表
111
011
101
001
110
010
100
000
ZYXCBA
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
& & & & & & &
& & &
1
1
1
1
D
C
B
A
Y
2 Y 1 Y 0
( 1)写出逻辑函数表达式:
D B ADCD B ADCY2
ACDBCDCBD
ACDBCDCBDY

1
BDCDBDCDY0
从逻辑函数式中不能直观地看出这个电路的逻辑功能和用途。
需要把其转换成真值表的形式。
例,试分析如下图电路的逻辑功能。
解,
( 2)作逻辑真值表:
D C B A Y
2
Y
1
Y
0
0 0 0 0 0 0 1
0 0 0 1 0 0 1
0 0 1 0 0 0 1
0 0 1 1 0 0 1
0 1 0 0 0 0 1
0 1 0 1 0 0 1
0 1 1 0 0 1 0
0 1 1 1 0 1 0
1 0 0 0 0 1 0
1 0 0 1 0 1 0
1 0 1 0 0 1 0
1 0 1 1 1 0 0
1 1 0 0 1 0 0
1 1 0 1 1 0 0
1 1 1 0 1 0 0
1 1 1 1 1 0 0
ê? è? ê? 3?
可以看出,当 DCBA表示的二进制数小于或等于 5时 Yo为 1,
这个二进制数大于 5且小于 11时
Y1为 1,当这个二进制数大于或等于 11时 Y2为 1。
因此,这个逻辑电路可以用来判别输入的 4位二进制数数值的范围。
D B ADCY2
ACDBCDCBDY1
BDCDY0
1、逻辑抽象:根据实际逻辑问题的因果关系确定输入、
输出变量,并定义逻辑状态的含义;
2,根据逻辑描述列出真值表;
3,由真值表写出逻辑表达式 ;
5,画出逻辑图。
4,根据器件的类型,简化和变换逻辑表达式二、组合逻辑电路的设计步骤一、组合逻辑电路的设计:根据实际逻辑问题,求出所要求逻辑功能的最简单逻辑电路。
4.2 组合逻辑电路的设计真值表电路功能描述组合逻辑电路的设计方法流图例,设计一个楼上、楼下开关的控制逻辑电路来控制楼梯上的路灯,使之在上楼前,用楼下开关打开电灯,上楼后,用楼上开关关灭电灯;
或者在下楼前,用楼上开关打开电灯,下楼后,
用楼下开关关灭电灯。
设楼上开关为 A,楼下开关为 B,灯泡为 Y。并设 A,B闭合时为 1,断开时为 0;灯亮时 Y为 1,
灯灭时 Y为 0。根据逻辑要求列出真值表。
A B Y
0 0
0 1
1 0
1 1
0
1
1
0
1
穷举法
1
2
逻辑表达式或卡诺图最简与或表达式化简 3
2
BABAY
已为最简与或表达式
4
逻辑变换
5
逻辑电路图 A
B
Y=1
用与非门实现 BABAY
BAY用异或门实现真值表电路功能描述例,用与非门设计一个举重裁判表决电路。设举重比赛有 3个裁判,一个主裁判和两个副裁判。杠铃完全举上的裁决由每一个裁判按一下自己面前的按钮来确定。只有当两个或两个以上裁判判明成功,并且其中有一个为主裁判时,表明成功的灯才亮。
设主裁判为变量 A,副裁判分别为 B和 C;表示成功与否的灯为 Y,根据逻辑要求列出真值表。1
穷举法
1
A B C Y A B C Y
0 0 0
0 0 1
0 1 0
0 1 1
0
0
0
0
1 0 0
1 0 1
1 1 0
1 1 1
0
1
1
1
2
A B CCABCBAmmmY 765
2
逻辑表达式
A B
C 00 01 11 10
0
1
A
B
A
C
Y
&
&
&
3
卡诺图最简与或表达式化简 4
5
逻辑变换
6
逻辑电路图
3
化简 4
1
1 1
Y= AB +AC 5 ACABY
6
例 某火车站有特快、直快和慢车三种类型的客运列车进出,
试用两输入与非门和反相器设计一个指示列车等待进站的逻辑电路,3个指示灯一、二、三号分别对应特快、直快和慢车。
列车的优先级别依次为特快、直快和慢车,要求当特快列车请求进站时,无论其它两种列车是否请求进站,一号灯亮。
当特快没有请求,直快请求进站时,无论慢车是否请求,二号灯亮。当特快和直快均没有请求,
而慢车有请求时,三号灯亮。
解,1,逻辑抽象 。
输入信号,I0,I1,I2分别为特快、直快和慢车的进站请求信号且有进站请求时为 1,没有请求时为 0。
输出信号,L0,L1,L2分别为 3个指示灯的状态,
且灯亮为 1,灯灭为 0。
输 入 输 出
I0 I1 I2 L0 L1 L2
0 0 0 0 0 0
1 × × 1 0 0
0 1 × 0 1 0
0 0 1 0 0 1
根据题意列出真值表 (2) 写出各输出逻辑表达式。
101 IIL?
2102 IIIL?
L0 = I0
输 入 输 出
I0 I1 I2 L0 L1 L2
0 0 0 0 0 0
1 × × 1 0 0
0 1 × 0 1 0
0 0 1 0 0 1
真值表
2,根据真值表写出各输出逻辑表达式。
101 IIL? 2102 IIIL?
L0 = I0
00 IL?
101 IIL?
2102 IIIL
3,根据要求将上式变换为与非形式
I 0
L
0
L 1 I
1
I 2
L
2
&
1
1
1
&
&
1
1
4,根据输出逻辑表达式画出逻辑图。
00 IL? 101 IIL? 2102
IIIL
例 试设计一个码转换电路,将 4位格雷码转换为自然二进制码。可以采用任何逻辑门电路来实现。
解,(1) 明确逻辑功能,列出真值表。
设输入变量为 G3,G2,G1,G0为格雷码,
当输入格雷码按照从 0到 15递增排序时,
可列出逻辑电路真值表输出变量 B3,B2,B1和 B0为 自然二进制码。
0 1 1 10 1 0 0
0 1 1 00 1 0 1
0 1 0 10 1 1 1
0 1 0 00 1 1 0
0 0 1 10 0 1 0
0 0 1 00 0 1 1
0 0 0 10 0 0 1
0 0 0 00 0 0 0
B3 B2 B1 B0G3 G2 G1 G0
输 出输 入
1 1 1 11 0 0 0
1 1 1 01 0 0 1
1 1 0 11 0 1 1
1 1 0 01 0 1 0
1 0 1 11 1 1 0
1 0 1 01 1 1 1
1 0 0 11 1 0 1
1 0 0 01 1 0 0
B3 B2 B1 B0G3 G2 G1 G0
输 出输 入逻辑电路真值表
0 0 0 0
0 0 0 0
1 1 1 1
1 1 1 1
B 3
G 0
G 2
G 3
G 1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
B 2
G 0
G 2
G 3
G 1
(2) 画出各输出函数的卡诺图,并化简和变换。
33 GB2B? 2G3G2G3G
2G3G1B? 1G? 2G3G 1G 2G3G 1G? 2G3G 1G
( 2G3G )? 2G3G 1G? 2G3G )?
2G3G 1G
3G 2G? 1G
0B3G 2G? 1G? 0G
0 0 1 1
1 1 0 0
0 0 1 1
1 1 0 0
B 1
B 0
G 2
G 3
G 1
0 1 0 1
1 0 1 0
0 1 0 1
1 0 1 0
B 0
G 0
G 2
G 3
G 1
(3) 根据逻辑表达式,画出逻辑图
=1
B 0
B 1
B 2
B 3
G 0
G 1
G 2
G 3
=1
=1
在组合电路中,当输入信号的状态改变时,输出端可能会出现不正常的干扰信号,使电路产生错误的输出,这种现象称为竞争冒险。竞争冒险是一种暂态,结束后逻辑恢复正常。
4.3 组合逻辑电路中的竞争冒险
4.3.1 产生的竞争冒险的原因竞争,当一个逻辑门的两个输入端的信号同时向相反方向变化,
而变化的时间有差异的现象。
冒险,两个输入端的信号取值的变化方向是相反时,如门电路输出端的逻辑表达式简化成两个互补信号相乘或者相加,由竞争而可能产生输出干扰脉冲的现象。
1、产生竞争冒险的原因产生竞争冒险的原因:主要是门电路的 延迟时间 产生的。
AA 1
& Y
1
A
A
Y
1
( a)
( b)
1 ≥ 1 Y
2
A
A
Y
2
( a)
( b)
01 AAY 12 AAY
当电路中存在由反相器产生的互补信号,且在互补信号的状态发生变化时产生冒险现象。
2、消除竞争冒险的方法
BCBAY
Y
1
AB
C 00 01 11 10
0 0 0 0 1
1 0 1 1 1
A
B
C
1
2
3
≥ 1
4&
&
有圈相切,则有竞争冒险
ACBCBAY
增加冗余项,
消除竞争冒险
Y
1
A
B
C
≥ 1
&
&
&
( 1)增加冗余项,避免互补项相加若直接根据这个逻辑表达式组成逻辑电路,则可能出现竞争冒险。
( 2)发现并消掉互补变量
))(( CABAF
在 B=C=0时 AAF?
BCABAC
CABAF

))((
在 B=C=0时,该逻辑式恒为 0,避免竞争冒险;当在 B=C=1时,该逻辑式恒为 1,也避免竞争冒险 。
( 3)输出端并联电容器 (逻辑电路在较慢速度下工作 )
容量为
4—
20pF之间
1,)编码器 (Encoder)的概念与分类编码:赋予二进制代码特定含义的过程称为编码。
如,8421BCD码中,用 1000表示数字 8
如,ASCII码中,用 1000001表示字母 A等编码器:具有编码功能的逻辑电路。
4.4.1 编码器
4.4 若干典型的组合逻辑集成电路能将每一个编码输入信号变换为不同的二进制的代码输出。
如 8线 -3线编码器:将 8个输入的信号分别编成 8个 3位二进制数码 输出。
如 BCD编码器:将 10个编码输入信号分别编成 10个 4位码输出。
编码器的逻辑功能,
1,)编码器 (Encoder)的概念与分类编码器的分类:普通编码器和优先编码器。
普通编码器:任何时候只允许输入一个有效编码信号,否则输出就会发生混乱。
优先编码器:允许同时输入两个以上的有效编码信号。当同时输入几个有效编码信号时,优先编码器能按预先设定的优先级别,只对其中优先权最高的一个进行编码。
1,)编码器 (Encoder)的概念与分类二进制编码器的结构框图普通二进制编码器
1、编码器的工作原理
I0
I1
Yn-1
Y0
Y1
1n2 -I
二进制编码器
2n个输入
n位二进制码输出
(1) 4线 ─2线普通二进制编码器 (设计 )
1000
0100
0010
0001
Y0Y1I3I2I1I0
( 2)逻辑功能表编码器的输入为高电平有效。
Y 1
Y 0
I 0
I 1
I 2
I 3
( a)逻辑框图
4
输入二进制码输出
11
01
10
00
1、编码器的工作原理
321032100
321032101
IIIIIIIIY
IIIIIIIIY


该电路是否可以再简化?
321032100
321032101
IIIIIIIIY
IIIIIIIIY


I 0
I 1
I 2
I 3
1
1
1
1
&
&
&

1
Y 0
Y 1
&

1
(2.) 键盘输入 8421BCD码编码器
(分析)
2
3
4
5
6
7
8
9
0
1
S
0
S
1
S
2
S
4
S
5
S
6
S
7
S
8
S
9
V
CC
1k Ω × 10
&
&
&
&
≥ 1
&
GS
D
C
B
A
S
3
代码输出
×

使能标志
×

编码输入输 入 输 出
S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 A B C D GS
1 1 1 1 1 1 1 1 1 1 0 0 0 0 0
1 1 1 1 1 1 1 1 1 0 1 0 0 1 1
1 1 1 1 1 1 1 1 0 1 1 0 0 0 1
1 1 1 1 1 1 1 0 1 1 0 1 1 1 1
1 1 1 1 1 1 0 1 1 1 0 1 1 0 1
1 1 1 1 1 0 1 1 1 1 0 1 0 1 1
1 1 1 1 0 1 1 1 1 1 0 1 0 0 1
1 1 1 0 1 1 1 1 1 1 0 0 1 1 1
1 1 0 1 1 1 1 1 1 1 0 0 1 0 1
1 0 1 1 1 1 1 1 1 1 0 0 0 1 1
0 1 1 1 1 1 1 1 1 1 0 0 0 0 1
该编码器为输入低电平有效
2,键盘输入 8421BCD码编码器 功能表当所有的输入都为 1时,
Y1Y0 =? Y1Y0 = 00
无法输出有效编码。
结论:普通编码器不能同时输入两个已上的有效编码信号
I 0
I 1
I 2
I 3
1
1
1
1
&
&
&

1
Y 0
Y 1
&

1
I2 = I3 = 1,I1= I0= 0时,
Y1Y0 =? Y1Y0 = 00
3,优先编码器优先编码器的提出:
实际应用中,经常有两个或更多输入编码信号同时有效。
必须根据轻重缓急,规定好这些外设允许操作的先后次序,即优先级别。
识别多个编码请求信号的优先级别,并进行相应编码的逻辑部件称为优先编码器。
(2)优先编码器线 (4─2 线优先编码器 )(设计)
( 1)列出功能表输 入 输 出
I0 I1 I2 I3 Y1 Y0
1 0 0 0 0 0
× 1 0 0 0 1
× × 1 0 1 0
× × × 1 1 1
高低
( 2)写出逻辑表达式
( 3)画出逻辑电路(略)
输入编码信号高电平有效,输出为二进制代码输入编码信号优先级从高到低为 I0I3 ~
输入为编码信号 I3?I0 输出为 Y1 Y0
3321 IIIY +=
33210 IIIIY +=
优先编码器 CD4532的示意框图、引脚图
2 集成电路编码器
CD 4 532
I 0
I 1
I 2
I 3
I 4
I 5
I 6
I 7
Y 0
Y 1
Y 2 EI
EO
GS
1
2
3
4
5
6
7
8 9
10
1 1
12
1 3
14
15
1 6 I 4
I 5
I 6
I 7
EI
Y 2
Y 1
GND
V CC
EO
GS
I 3
I 2
I 1
I 0
Y 0
I
2
1
1
1
1
1
1
1
1
1
1
1

1

1

1

1

1

1

1
&
& 1
& 1
&
& 1

1

1
& 1
G
S
1
E
O
1 1
&
I
1
I
7
I
6
I
5
I
4
I
3
I
0
E
I
Y
2
Y
1
Y
0
CD4532电路图优先编码器 CD4532功能表输 入 输 出
EI I7 I6 I5 I4 I3 I2 I1 I0 Y2 Y1 Y0 GS EO
L × × × × × × × × L L L L L
H L L L L L L L L L L L L H
H H × × × × × × × H H H H L
H L H × × × × × × H H L H L
H L L H × × × × × H L H H L
H L L L H × × × × H L L H L
H L L L L H × × × L H H H L
H L L L L L H × × L H L H L
H L L L L L L H × L L H H L
H L L L L L L L H L L L H L
为什么要设计 GS,EO输出信号?
用二片 CD4532构成 16线 -4线优先编码器,其逻辑图如下图所示,试分析其工作原理。

CD 4 532 ( I
I )
I
0
I
1 I 2
I
3 I 4 I 5 I 6 I 7
Y
0
Y
1 Y 2
EO
EI
GS
CD 4 532 (
I )
I
0
I
1 I 2 I 3 I 4 I 5 I 6 I 7
Y
0
Y
1 Y 2
EO
EI
GS
EI
2
EO
2 EI 1
EO
1
A
8
A
9 A 10 A 11 A 12 A 13 A 14 A 15
A
0
A
1 A 2 A 3 A 4 A 5 A 6 A 7
L
0 L 1
GS
2
L
2
GS
G S
1
G
3 G 2
G
1
G
0
L
3

1
≥ 1

1

1
0 0
0 0 0 0 0
无编码输出
0

CD 4 532( II )
I
0
I
1 I 2
I
3 I 4 I 5 I 6 I 7
Y
0
Y
1
Y
2
EO
EI
GS
CD 4 532( I )
I
0
I
1
I
2
I
3
I
4 I 5 I 6 I 7
Y
0
Y
1
Y
2
EO
EI
GS
EI
2
EO
2 EI 1
EO
1
A
8
A
9
A
10
A
11
A
12
A
13 A 14
A
15
A
0
A
1
A
2
A
3
A
4
A
5
A
6
A
7
L
0 L
1
GS
2
L
2
GS
G S
1
G
3 G 2
G
1
G
0
L
3
≥ 1
≥ 1
≥ 1 ≥ 1
1 1
0 0 0 0
0
若无有效电平输入
0 1 1 1
那块芯片的优先级高?
1
若有效电平输入

CD 4 532( II )
I
0
I
1 I 2
I
3 I 4 I 5 I 6 I 7
Y
0
Y
1
Y
2
EO
EI
GS
CD 4 532( I )
I
0
I
1
I
2
I
3
I
4 I 5 I 6 I 7
Y
0
Y
1
Y
2
EO
EI
GS
EI
2
EO
2 EI 1
EO
1
A
8
A
9
A
10
A
11
A
12
A
13 A 14
A
15
A
0
A
1
A
2
A
3
A
4
A
5
A
6
A
7
L
0 L
1
GS
2
L
2
GS
G S
1
G
3 G 2
G
1
G
0
L
3
≥ 1
≥ 1
≥ 1 ≥ 1
1 0
1 0 0 0
0
若有效电平输入
1 1 1 1
译码器的分类:
译码,译码是编码的逆过程,它能将二进制码翻译成代表某一特定含义的信号,(即电路的某种状态 )
1 译码器的概念与分类译码器,具有译码功能的逻辑电路称为译码器 。
唯一地址译码器代码变换器将一系列代码转换成与之一一对应的有效信号。
将一种代码转换成另一种代码。
二进制译码器二 —十进制译码器显示译码器常见的唯一地址译码器:
4.4.2 译码器 /数据分配器
2线 - 4线译码器的逻辑电路
(分析)
1
A 1
1
1
A 0
&
&
&
&
E
0Y
1Y
2Y
3Y LHHHHHL
HLHHLHL
HHLHHLL
HHHLLLL
HHHH××H
Y3Y2Y1Y0A0A1E
输出输 入功能表
010 AAEY? 01
1 AAEY?
012 AAEY? 013 AAEY?
( 1.) 二进制译码器
x 0
x 1
x n - 1
y 0
y 1
1-n
y
EI
使能输入二进制译码器
n 个输入端使能输入端
2n个输出端设输入端的个数为 n,输出端的个数为 M
则有 M=2n
2,集成电路译码器
(a) 74HC139集成译码器
Y 0
Y 1
Y 2
Y 3
E
A 0
A 1
A 0
A 1
0Y
1Y
2Y
3Y
E
1 /2 7 4 x 1 3 9
(1,)二进制译码器
LHHHHHL
HLHHLHL
HHLHHLL
HHHLLLL
HHHH××H
Y3Y2Y1Y0A0A1E
输出输 入功能表逻辑符号说明逻辑符号框外部的 符号,表示外部输入或输出信号 名称,字母上面的,—”号说明该输入或输出是低电平有效。符号框内部的输入、输出变量表示其内部的逻辑关系。在推导表达式的过程中,如果低有效的输入或输出变量 (如 )上面的,—”
号参与运算 (如 E变为 E ),则在画逻辑图或验证真值表时,
注意将其还原为低有效符号 。
E 1
A
1
1
1
&
&
&
&
Y0
Y1
Y2
Y3
A
0
Y0
Y2
Y1
Y3
E
A
1A
0
(b) 74HC138(74LS138)集成译码器
A 0
A 1
A 2
1E
2E
E 3
7Y
G ND
V CC
1Y
2Y
3Y
4Y
5Y
6Y
0Y
1
2
3
4
5
6
7
8 9
10
1 1
12
1 3
14
15
1 6
引脚图逻辑图
74 HC 138
Y 0
Y 1
Y 2
Y 3
Y 4
Y 5
Y 6
Y 7
E 3
E 2
E 1
A 0
A 1
A 2
74HC138集成译码器逻辑图
E
3
A
0
A
1
A
2
1 1
0Y
1Y
1
2Y
3Y
1 1
1 1
&
&
&
&
&
&
&
&
1
1
1
4Y
5Y
6Y
7Y
2E
1E
&
&
&
&
&
&
&
&
&
74HC138集成译码器功能表
2E 1E 0Y 1Y 2Y 3Y 4Y 5Y 6Y 7Y
LHHHHHHHHHHLLH
HLHHHHHHLHHLLH
HHLHHHHHHLHLLH
HHHLHHHHLLHLLH
HHHHLHHHHHLLLH
HHHHHLHHLHLLLH
HHHHHHLHHLLLLH
HHHHHHHLLLLLLH
HHHHHHHH×××××L
HHHHHHHH×××HX×
HHHHHHHH××××H×
A2E3
输 出输 入
A1 A0
2E 1E 0Y 1Y 2Y 3Y 4Y 5Y 6Y 7Y
LHHHHHHHHHHLLH
HLHHHHHHLHHLLH
HHLHHHHHHLHLLH
HHHLHHHHLLHLLH
HHHHLHHHHHLLLH
HHHHHLHHLHLLLH
HHHHHHLHHLLLLH
HHHHHHHLLLLLLH
HHHHHHHH×××××L
HHHHHHHH×××HX×
HHHHHHHH××××H×
A2E3
输 出输 入
A1 A0
0120 AAAY 0121 AAAY 0122 AAAY 0123 AAAY
0125 AAAY 0126 AAAY0124 AAAY 0127 AAAY
A
B
C
E
Y
0
Y
1
Y
7
Y
5
Y
2
Y
6
Y
4
Y
3
1、已知下图所示电路的 输入信号的波形试画出译码器输出的波形。
译码器的应用
74 HC 138
Y 0
Y 1
Y 2
Y 3
Y 4
Y 5
Y 6
Y 7
E 3
E 2
E 1
A 0
A 1
A 2
+ 5 V
E
Y 0
Y 1
Y 2
Y 3
Y 4
Y 5
Y 6
Y 7
C
B
A
74 H C 13 8
Y
0
Y
1
+5V
Y
2
Y
3
Y
4
Y
5
Y
6
Y
7
E
3
E
2
E
1
A
0
A
1
A
2
1/ 2 74 HC 13 9




B
0
B
1
B
2
B
3
B
4
( 0)
Y
0
Y
1
Y
2
Y
3
E
A
0
A
1
24L
0L
7L
8L
15L
16L
23L
31L
74 HC 13 8
Y
0
Y
1
Y
2
Y
3
Y
4
Y
5
Y
6
Y
7
E
3
E
2
E
1
A
0
A
1
A
2
( I )
74 HC 13 8
Y
0
Y
1
Y
2
Y
3
Y
4
Y
5
Y
6
Y
7
E
3
E
2
E
1
A
0
A
1
A
2
74 HC 13 8
Y
0
Y
1
Y
2
Y
3
Y
4
Y
5
Y
6
Y
7
E
3
E
2
E
1
A
0
A
1
A
2
( II )
( III )
2,译码器的扩展用 74X139和 74X138构成 5线 -32线译码器
~3线 –8线译码器的 ~ 含三变量函数的全部最小项。Y0 Y7
基于这一点用该器件能够方便地实现三变量逻辑函数。
3、用译码器实现逻辑函数。
0120 AAAY 0m?
74 HC 138
Y 0
Y 1
Y 2
Y 3
Y 4
Y 5
Y 6
Y 7
E 3
E 2
E 1
A 0
A 1
A 2
+ 5 V
E
Y 0
Y 1
Y 2
Y 3
Y 4
Y 5
Y 6
Y 7
A
B
C
11 mCBAY
77 mCBAY
22 mBCAY,
.
.
当 E3 =1,E2 = E1 = 0时
7620 mmmm
74 HC 138
Y 0
Y 1
Y 2
Y 3
Y 4
Y 5
Y 6
Y 7
E 3
E 2
E 1
A 0
A 1
A 2
7620 mmmm
ABCAL用一片 74HC138实现函数首先将函数式变换为最小项之和的形式在译码器的输出端加一个与非门,即可实现给定的组合逻辑函数,
+ 5 V
A
B
C
L &
7620 YYYY
A B CCABCBACBAL
数据分配器:相当于多输出的单刀多掷开关,是一种能将从数据分时送到多个不同的通道上去的逻辑电路。
数据分配器示意图数据输入通道选择信号
Y 0
Y 1
Y 7
用 74HC138组成 数据分配器用译码器实现数据分配器
74 HC 138
Y 0
Y 1
Y 2
Y 3
Y 4
Y 5
Y 6
Y 7
E 3
E 2
E 1
A 0
A 1
A 2
A 0
+ 5 V
D = E 2
E 1
Y 0
Y 0
0
1
0
Y
CBADEEY 232?
当 ABC = 010 时,Y2=D
C
B
A
输 入 输 出
E3 E2 E1 A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
L L X X X X H H H H H H H H
H L D L L L D H H H H H H H
H L D L L H H D H H H H H H
H L D L H L H H D H H H H H
H L D L H H H H H D H H H H
H L D H L L H H H H D H H H
H L D H L H H H H H H D H H
H L D H H L H H H H H H D H
H L D H H H H H H H H H H D
74HC138译码器作为数据分配器时的功能表集成二 –十进制译码器 - 7442
1
2
3
4
5
6
7
8 9
10
1 1
12
1 3
14
15
1 6
Y
1
Y
2
Y
3
Y
4
Y
5
Y
6
Y
0
G N D Y
7
Y
8
Y
9
A
3
A
2
A
1
A
0
V
CC
A
0
A
1
A
2
A
3
1
1
1
1
1
1
1
1
&
&
&
&
&
&
&
&
&
&
Y
9
Y
8
Y
7
Y
6
Y
5
Y
4
Y
3
Y
2
Y
1
Y
0
功能:将 8421BCD码译成为 10
个状态输出。
功能表十进制数
BCD输入 输 出
A3 A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9
0 L L L L L H H H H H H H H H
1 L L L H H L H H H H H H H H
2 L L H L H H L H H H H H H H
3 L L H H H H H L H H H H H H
4 L H L L H H H H L H H H H H
5 L H L H H H H H H L H H H H
6 L H H L H H H H H H L H H H
7 L H H H H H H H H H H L H H
8 H L L L H H H H H H H H L H
9 H L L H H H H H H H H H H L
对于 BCD代码以外的伪码( 1010~ 1111这 6个代码) Y0 ~ Y9 均为高电平。
( 2) 集成二 –十进制译码器 ——7442
显示译码器脉冲信号计数器 译码器 驱动器显示器
K Hz
1,七段显示译码器
( 1)最常用的显示器有:半导体发光二极管和液晶显示器。
a
b
c
d
e
f
g
共阳极显示器
a
b
c
d
e
f
g
共阴极显示器
a
b
c
d
f g
e
显示器分段布局图
b=c=f=g=1,
a=d=e=0时
c=d=e=f=g=1,
a=b=0时共阴极真值表仅适用于共阴极 LED
常用的集成七段显示译码器
----------CMOS七段显示译码器 74HC4511
a b
c d e
f g
D 0
7 4 H C 4 5 1 1
D 3 D 2 D 1 LT BL LE
LT
HHLHHHHHLLHHHL9
HHHHHHHLLLHHHL8
LLLLHHHHHHLHHL7
HHHHHLLLHHLHHL6
HHLHHLHHLHLHHL5
HHLLHHLLLHLHHL4
HLLHHHHHHLLHHL3
HLHHLHHLHLLHHL2
LLLLHHLHLLLHHL1
LHHHHHHLLLLHHL0
gfedcba 字形输 出输 入十进制或功能 D3 D2 D1 D0BLLE
CMOS七段显示译码器 74HC4511功能表
**××××HHH锁 存熄灭LLLLLLL××××HL×灭 灯
HHHHHHH××××L××灯 测试熄灭LLLLLLLHHHHHHL15
熄灭LLLLLLLLHHHHHL14
熄灭LLLLLLLHLHHHHL13
熄灭LLLLLLLLLHHHHL12
熄灭LLLLLLLHHLHHHL11
熄灭LLLLLLLLHLHHHL10
LT gfedcba
字形输 出输 入十进制或功能 BLLE
D3 D2 D1 D0
CMOS七段显示译码器 74HC4511功能表 (续 )
例 由 74HC4511构成 24小时及分钟的译码电路如图所示,
试分析小时高位是否具有零熄灭功能。
H 7 H 6 H 5 H 4
0
( 0 )
4 5 1 1 ×
4
显示器× 4
1
( 0 )
( I )
( II )
( III )
a ~ g a ~ g a ~ g a ~ g
LT
LE
BL
( II I )
D
3 D 2 D 1 D 0
LT
LE
BL
( I )
LT
LE
BL
( II )
LT
LE
BL
1

1
H 3 H 2 H 1 H 0 M
7
M
6
M
5
M
4
M
3
M
2
M
1
M
0
D 3 D 2 D 1 D 0
D 3 D 2 D 1 D 0
D 3 D 2 D 1 D 0
4.3.3 数据选择器
1、数据选择器的定义与功能数据选择的功能:在通道选择信号的作用下,将多个通道的数据分时传送到公共的数据通道上去的。
数据选择器:能实现数据选择功能的逻辑电路。它的作用相当于多个输入的单刀多掷开关,又称,多路开关,。
通道选择信号数据输出
I 0
I 1
1
2
-n
I
S
1
S
0
E
1 1 1
I 0
I
1
I
2
I
3
&
≥ 1
Y
4选 1数据选择器
2 位地址码输入端使能信号输入端,低电平有效
1路数据输出端
( 1)逻辑电路数据输入端
( 2)工作原理及逻辑功能
0 0
I3
0 11 1 =1=0
S 1 S 0 E
1 1 1
I 0
I 1
I 2
I 3
&
≥ 1
Y
301201101001 ISSISSISSISSY
33221100 mImImImIY
0××1
YS0S1E
地址使能 输出输 入功能表
0 0 0 I0
0 0 1 I1
0 1 0 I2
0 1 1 I3
74LS151功能框 图
D7
Y
Y
E
74HC151
D6
D5
D4
D3
D2
D1
D0
S2 S1 S0
2、集成电路数据选择器
8选 1数据选择器 74HC151
2、集成电路数据选择器
E
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
S
0
S
1
S
2
Y
Y
1
1
1
1
1
1
1
&
&
&
&
&
&
&
&
&
&

1

1
2个互补输出端
8 路数据输入端
1个使能输入端
3 个地址输入端
74LS151的逻辑图输 入 输 出使能选择 Y Y
E S2 S1 S0
H X X X L H
L L L L D0
L L L H D1
L L H L D2
L L H H D3
L H L L D4
L H L H D5
L H H L D6
L H H H D7
3,74LS151的功能表
0D
1D
2D
3D
4D
5D
6D
7D
70126012
501240123012
201210120012
DSSSDSSS
DSSSDSSSDSSS
DSSSDSSSDSSSY



ii
i
mDY?
7
0
当 E=1时,Y=1 。
当 E=0时
① 数据选择器组成逻辑函数产生器控制 Di,就可得到不同的逻辑函数。
5、数据选择器 74LS151的 应用
当 D0 =D3=D5 = D7=0
D1 =D2=D4= D6=1 时:
当 D0 =D3=D5 = D7=1
D1 =D2=D4= D6=0 时:
D7
Y
Y
E
74LS151
D6
D5
D4
D3
D2
D1
D0
S2 S1 S0
ii
i
mDY?
7
0
6421 mmmmY
7530 mmmmY
当 E=0时,
比较 Y与 L,当 D3=D5=D6=D7= 1 D0=D1=D2=D4=0时,
D7 E
74HC151
D6D5D4D3D2D1D0
S2
S1
S0
L
Y
X
Y
Z
1
0
Y=L
例 1 试用 8选 1数据选择器 74LS151产生逻辑函数
XYZYXYZXL
ZXYXYZYXYZX
XYZYXYZXL


Z
)Z(Z
0?E 2SX? 1SY? 0SZ?
7766554433221100 DmDmDmDmDmDmDmDmY
7653 mmmmL
解,
利用 8选 1数据选择器组成函数产生器的一般步骤
a、将函数变换成最小项表达式
b、将使器件处于使能状态
c、地址 信号 S2,S1,S0 作为函数的输入变量
d、处理数据输入 D0~D7信号电平。逻辑表达式中有
mi,则相应 Di =1,其他的数据输入端均为 0。
总结,
用两片 74151组成二位八选一的数据选择器
② 数据选择器的扩展位的扩展
S
2
S
1
S
0
D
00
D
01
D
02
D
03
D
04
D
05
D
06
D
07
Y Y
0
Y
1
74 HC 151
0Y
1Y
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
S
0
S
2
S
1
E
Y
E
D
10
D
11
D
12
D
13
D
14
D
15
D
16
D
17
Y
74 HC 151
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
S
0
S
2
S
1
E
Y
( 0)
( I )
字的扩展将 两片 74LS151连接成一个 16选 1的数据选择器,
D
C
B
A
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
Y
74 HC 151
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
S
0
S
2
S
1
E
Y
D
8
D
9
D
1 0
D
1 1
D
1 2
D
1 3
D
1 4
D
1 5
Y
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
S
0
S
2
S
1
E
Y
1
Y
Y

1
&
( 0)
74 HC 151
( I )
0 1 0 0 1 1 0 1
L
74H C 151
D 0 D 1 D 2 D 3 D 4 D 5 D 6
D 7
E
S 2
S 1
S 0
Y
S 2
S 1
S 0
③ 实现并行数据到串行数据的转换
S 0
S 1
L
S 2
0 1 0 0 1 1 0 1
1,1位数值比较器 (设计 )
数值比较器:对两个 1位数字进行比较( A,B),以判断其大小的逻辑电路。
输入:两个一位二进制数 A,B。
输出,F BA> =1,表示 A大于 B
F BA< =1,表示 A小于 B
F BA= =1,表示 A等于 B
4.4.4 数值比较器
B
A
1
1
&
&
≥ 1
F A > B
F A = B
F A < B
1位数值比较器
BA=F BA>
BA=F BA<
ABBA +=F BA=
一位数值比较器真值表
10011
00101
01010
10000
FA=BFA<BFA>BBA
输 出输 入
2,2 位数值比较器:
输入:两个 2位二进制数 A=A1 A0,B=B1 B0
能否用 1位数值比较器设计两位数值比较器?
比较两个 2 位二进制数的大小的电路当高位 ( A1,B1)不相等时,无需比较低位( A0,B0),高位比较的结果就是两个数的比较结果。
当高位相等时,两数的比较结果由低位比较的结果决定。
用一位数值比较器设计多位数值比较器的原则真值表
0
0
1
0
1
0
1
0
0
A0 >
B0
A0 <
B0
A0 =
B0
A1 =
B1
A1 =
B1
A1 =
B1
010×A1 <
B1
001×A1 >
B1
FA=BFA<BFA>BA0 B0A1 B1
输 出输 入
FA>B = (A1>B1) + ( A1=B1)(A0>B0)
FA=B=(A1=B1)(A0=B0)
FA<B = (A1<B1) + ( A1=B1)(A0<B0)
两位数值比较器逻辑图
A 1
B 1
A 0
B 0
1 位数值比较器
1 位数值比较器
A 1 > B 1
A 1 = B 1
A 1 < B 1
A 0 > B 0
A 0 = B 0
A 0 < B 0
G
1
G
2
&
&
G
3
&
≥ 1
≥ 1 F
A > B
F A = B
F A < B
FA>B = (A1>B1) + ( A1=B1)(A0>B0) FA=B=(A1=B1)(A0=B0)
FA<B = (A1<B1) + ( A1=B1)(A0<B0)
3 集成数值比较器
A 0 B 0 A 1 B 1 A 2 B 2 A 3 B 3
I A > B
I A < B
I A = B
F A < B F
A = B F A > B
74LS85
1
2
3
4
5
6
7
8 9
10
1 1
12
1 3
14
15
1 6 B
3
I A < B
I A = B
I A > B
F A > B
F A = B
F A < B
G N D
V CC
A 3
B 2
A 2
A 1
B 1
A 0
B 0
(1,) 集成数值比较器 74LS85的功能
74LS85的引脚图
74LS85是四位数值比较器,其工作原理和两位数值比较器相同。
74LS85的示意框图输 入 输 出
A3 B3 A2 B2 A1 B1 A0 B0 IA>B IA<B IA=B FA>
B
FA<
B
FA=
B
A3 > B3 × × × × × × H L L
A3 < B3 × × × × × × L H L
A3 = B3 A2 > B2 × × × × × H L L
A3 = B3 A2 < B2 × × × × × L H L
A3 = B3 A2 = B2 A1 > B1 × × × × H L L
A3 = B3 A2 = B2 A1 < B1 × × × × L H L
A3 = B3 A2 = B2 A1 = B1 A0 > B0 × × × H L L
A3 = B3 A2 = B2 A1 = B1 A0 < B0 × × × L H L
A3 = B3 A2 = B2 A1 = B1 A0 = B0 H L L H L L
A3 = B3 A2 = B2 A1 = B1 A0 = B0 L H L L H L
A3 = B3 A2 = B2 A1 = B1 A0 = B0 × × H L L H
A3 = B3 A2 = B2 A1 = B1 A0 = B0 H H L L L L
A3 = B3 A2 = B2 A1 = B1 A0 = B0 L L L H H L
4位数值比较器 74LS85的功能 表用两 片 74LS85组成 8位数值比较器(串联 扩展方式)。
2,集成数值比较器的位数扩展输入,A=A7 A6A5A4A3 A2A1A0 B=B7B6B5B4B3 B2B1B0
输出,F BA> F BA< F BA?
高位片输出低位片
A 0 B 0 A 1 B 1 A 2 B 2 A 3 B 3 A 4 B 4 A 5 B 5 A 6 B 6 A 7 B 7
A 0 B 0 A 1 B 1 A 2 B 2 A 3 B 3 A 0 B 0 A 1 B 1 A 2 B 2 A 3 B 3
I A > B
I A < B
I A= B
F A < B F A= B F
A > B
C 0
I A > B
I A < B
I A= B
F A < B F A= B F
A > B
C 1
0
1
0
F A < B F A = B F A > B
B3A3~B0A0 B7A7~B4A4
用两 片 74LS85组成 16位数值比较器(串联 扩展方式)。
A
0 B 0 A 1 B 1 A 2 B 2 A 3 B 3 A 4 B 4 A 5 B 5 A 6 B 6 A 7 B 7
A 0 B 0 A 1 B 1 A 2 B 2 A 3 B 3 A 0 B 0 A 1 B 1 A 2 B 2 A 3 B 3
I A > B
I A < B
I A = B F
A <
B
F A = B F A >
B
C 0
I A > B
I A < B
I A = B F
A <
B
F A = B F A >
B
C 1
F A <
B
F A = B F A >
B
高位片输出低位片
B3A3~B0A0 B7A7~B4A4 B11A11~B8A8 B
15A15~B12A12
0
1
0
A 0 B 0 A 1 B 1 A 2 B 2 A 3 B 3 A 4 B 4 A 5 B 5 A 6 B 6 A 7 B 7
A 0 B 0 A 1 B 1 A 2 B 2 A 3 B 3 A 0 B 0 A 1 B 1 A 2 B 2 A 3 B 3
I A > B
I A < B
I A = B F
A <
B
F A = B F A >
B
C 0
I A > B
I A < B
I A = B F
A <
B
F A = B F A >
B
C 1
F A <
B
F A = B F A >
B
采用串联扩展方式 数值比较器用 74HC85组成 16位数值比较器的并联扩展方式。
A 0 B
0
A 12 B 12
I A < B
I A = B
I A > B
F A <
B
F A >
B
C 3
A 1 B
1
A 2 B
2
A 3 B
3
A 1 5 B 1 5 A 8 B 8
A 0 B
0
I A < B
I A = B
I A > B
F A <
B
F A >
B
C 2
A 1 B
1
A 2 B
2
A 3 B
3
A 4 B 4 A 0 B 0
A 0 B
0
I A < B
I A = B
I A > B
F A <
B
F A >
B
C 1
A 1 B
1
A 2 B
2
A 3 B
3
A 0 B
0
I A < B
I A = B
I A > B
F A <
B
F A >
B
C 0
A 1 B
1
A 2 B
2
A 3 B
3
B 0 A 1 B 1 A 2 B 2 A 3 B 3
A 0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
F A <
B
F A >
B
F A = B
C 4
I A < B
I A = B
I A > B
B3A3~B0A0B7A7~B4A4B11A11~B8A8B15A15~B12A12
输出
4.4.5 算术运算电路
A
B
S
C HA
FA
A i
B i
C i - 1 C i
S i
@在两个 1位二进制数相加时,不考虑低位来的进位的相加
---半加
@在两个二进制数相加时,考虑低位进位的相加
---全加加法器分为半加器和全加器两种。
半加器 全加器
1、半加器和全加器两个 4 位二进制数相加,
( 1) 1位半加器( Half Adder)
不考虑低位进位,将两个 1位二进制数 A,B相加的器件。
半加器的真值表
逻辑表达式
1
0
0
0
C
011
110
101
000
SBA
半加器的真值表
A
B
=1
& C =A B
BAS
BABAS
如用与非门实现最少要几个门?
C = AB
逻辑图
( 2) 全加器( Full Adder)
11
10
10
01
10
01
01
00
全加器真值表全加器能进行加数、被加数和低位来的进位信号相加,
并根据求和结果给出该位的进位信号。
0 1 0 1
1 0 1 0
S
i
A
i
C
i - 1
B
i
0 0 1 0
0 1 1 1
C
i
A
i
C
i - 1
B
i
111
011
101
001
110
010
100
000
CSCBA
你能用 74151\74138设计 全加器吗?
用这两种器件组成逻辑函数产生电路,有什么不同?
i
iiii
CBA
A B CCBACBACBAS


i
iio
)( CBAAB
BCACBAABC


S A
B
C i C
o
BA?
iCBA
AB i)( CBA?
≥ 1
CO
CO
A
B
S
C O C
i
C O
C I
于是可得全加器的逻辑表达式为加法器的应用
11
10
10
01
10
01
01
00
全加器真值表
111
011
101
001
110
010
100
000
CSCBA
ABC有奇数个 1时 S为 1;
ABC有偶数个 1和全为 0时
S为 0。
-----用全加器组成三位二进制代码奇偶校验器用全加器组成八位二进制代码奇偶校验器,电路应如何连接?
( 1)串行进位加法器
如何用 1位全加器实现两个四位二进制数相加?
A3 A2 A1 A0 + B3 B2 B1 B0 =?
低位的进位信号送给邻近高位作为输入信号,采用串行进位加法器运算速度不高。
2、多位数加法器
0 B 0 A 1 B 1 A 2 B 2 A 3 B 3
S 0 S 1 S 2 S 3
C 3 C 0 C 1 C 2
FA 0 FA 1 FA 2 FA 3
0
定义两个中间变量 Gi和 Pi,Gi= AiBi
( 2)超前进位加法器提高运算速度的基本思想:设计进位信号产生电路,在输入每位的加数和被加数时,同时获得该位全加的进位信号,而无需等待最低位的进位信号。
定义第 i 位的进位信号( Ci ):
1- iiiiii C)BA(BAC
Ci= Gi+ Pi Ci-1
1- iiii CBAS
)BA(p iii
4位全加器进位信号的产生:
C0= G0+P0 C-1
C1= G1+P1 C0
C1 = G1+P1 G0+ P1P0 C-1
C2= G2+P2 C1
C2 = G2+P2 G1+ P2 P1 G0+ P2 P1 P0C-1
C3= G3+P3 C2 = G3+P3 ( G2+ P2 C1 )=G3+P3 G2+P3P2 C1
=G3+P3 G2+P3P2 (G1+ P1C0 )
C3 =G3+P3 G2+P3P2 G1+ P3P2 P1 (G0+ P0C-1)
[Gi= AiBiCi= Gi+ Pi Ci-1?)BA(p
iii
集成超前进位产生器 74LS182
C
n + x
C
n + y
C
n + z
3P
P
3
C
n
&
&
1
≥ 1
≥ 1
≥ 1
≥ 1
3G
P
3
2P
P
3
2
G
P
3
1P
P
3
1G
P
3
0P
P
3
0G
P
3
P
G
P
3
&
&
&
&
&
&
&
&
&
&
&
&
逻辑图
74 L S 18 2
C n + x
C n + y
C n + z
G
P
C n
G 0
P 0
G 1
P 1
G 2
P 2
G 3
P 3
逻辑符号超前进位集成 4位加法器 74LS283
A 3
B 2
A 2
B 1
A 1
B 0
A 0
C –
1
74 HC 283
B 3
C
O
S 3
S 2
S 1
S 0
74HC283逻辑框图
V CC
B 3
S 3
CO
A 2
S 2
A 3
B 2
1
2
3
4
5
6
7
8 9
10
1 1
12
1 3
14
15
1 6 S 1
B 0
C – 1
G N D
A 1
S 0
A 0
B 1
74HC283引脚图
B
3
A
3
B
2
A
2
B
1
A
1
B
0
A
0
C -
1
&

1
&

1
&

1
&

1
&
1
1 ≥
1
&
&
&
&
CO
( C
3
)
&
P
3
1 ≥
1
&
&
&
&
P
2
1 ≥
1
&
&
&
P
1
1 ≥
1
&
&
P
0
1
= 1
S
3
= 1
S
2
= 1
S
1
= 1
S
0
74HC283逻辑框图
4,超前进位 加法器 74LS283的应用例 1,用两片 74LS283构成一个 8位二进制数加法器。 A 4 B 4 A 5 B 5 A 6 B 6 A 7 B 7
7 4 2 8 3 ( 2 ) 7 4 2 8 3 ( 1 )
C – 1 CO C – 1 CO
S 3 S 2 S 1 S 0
S 7 S 6 S 5 S 4
0
C 7
S 3 S 2 S 1 S 0
S 3 S 2 S 1 S 0
A 0 B 0 A 1 B 1 A 2 B 2 A 3 B 3
A 0 B 0 A 1 B 1 A 2 B 2 A 3 B 3
A 0 B 0 A 1 B 1 A 2 B 2 A 3 B 3
在片内是超前进位,而片与片之间是串行进位。
B 1 B 0 B 3 B 2 A 1 A 0 A 3 A 2
S 3
7 4 2 8 3
S 2 S 1 S 0
C – 1 C
O
0
余 3 码输出
8421码输入余 3码输出
1 10 0
例,用 74283构成将 8421BCD码转换为余 3码的码制转换电路 。
8421码 余 3码
0000
0001
0010
0011
0100
0101
+0011
+0011
+0011
CO
3 减法运算在实际应用中,通常是将减法运算变为加法运算来处理,即采用加补码的方法完成减法运算。
若 n位二进制的原码为 N原,则与它相对应的 2 的补码为
N补 =2N-N原补码与反码的关系式
N补 =N反 +1
设两个数 A,B相减,利用以上两式可得
A-B=A+B补 -2n=A+B反 +1-2n
1) A-B? 0的情况。 2) A-B <0的情况 。
结果 表明,在 A–B? 0时,
如加补进位信号为 1,所得的差就是差的原码。
在 A–B < 0时,如加补的进位信号 为 0,所得的差是差绝对值的补码。
A=0101,B=0001 A= 0001,B=0101
0 1 0 1 A
1 1 1 0 B 反
+ 1
1 0 1 0 0
0 0 0 1 A
1 0 1 0 B 反
+ 1
0 1 1 0 0
D 3 D 2 D 1 D 0
= 1
1
= 1
1
= 1
1
= 1
1 0
C - 1 7 4 H C28 3 (
I )
A 0 A 1 A 2 A
3
B 0 B 1 B 2 B 3
S 3 S 2 S 1 S 0
CO
V
1
C - 1 1 74 HC 28 3(
I )
A 0 A 1 A 2 A 3 B 0 B 1 B 2 B 3
S 3 S 2 S 1 S 0
D 3? D
2? D 1?
D 0?
1 1 1 1
CO
A 0 A 1 A 2 A 3 B 0 B 1 B 2 B 3
0
1
1
0
输出为原码的 4位减法运算逻辑图
4.5 组合可编程逻辑器件可编程逻辑器件是一种可以由用户定义和设置逻辑功能的器件。该类器件具有逻辑功能实现灵活、集成度高、处理速度快和可靠性高等特点。
4.5.1 PLD的结构、表示方法及分类与门阵列或门阵列乘积项 和项
PLD主体输入电路输入信号 互补输入输出电路输出函数反馈输入信号
可由或阵列直接输出,构成组合输出;
通过寄存器输出,构成时序方式输出 。
1,PLD的基本结构输出或门阵列与门阵列输入
B A
Y Z
(b )
与门阵列或门阵列乘积项 和项互补输入
2,PLD的 逻辑符号表示方法
(1)连接的方式硬线连接单元被编程接通单元被编程擦除单元
(2)基本门电路的表示方式
L= A + B + C + D
DDDD
DA B C
F1=A?B?C
与门 或门
A B C D
F1
A
B
C
& L AB
C
≥1 L
D
F1=A+B+C+D
L 4
A B A B
L 3
A B A B
L 3
A B A B
A A
A A
EN
EN
三态输出缓冲器输出恒等于 0的与门输出为 1的与门
A A
A
输入缓冲器
(3) 编程连接技术
A
L
B C D
L
V CC A B C D
熔丝
PLD表示的与门 熔丝工艺的与门原理图
VCC+(5V)
R
3kW
L
D1
D2
D3
A
B
C 高电平
A,B,C有一个输入低电平 0V
A,B,C三个都输入高电平 +5V
5V
0V
5V 低电平
L
VCCA B C D
5V
5V
5V
L=A?B?C
L
T 1 T 2 T
3 T 4
A B C D
V CC
连接 连接连接 断开
A,B,C 中有一个为 0
A,B,C 都为 1
输出为 0;
输出为 1。
L=AC
断开 连接连接 断开 L=ABC
XX
器件的开关状态不同,电路实现逻辑函数也就不同
1 0 1 1
(4) 浮 栅 MOS管开关用不同的浮栅 MOS管连接的 PLD,编程信息的擦除方法也不同。 SIMOS管连接的 PLD,采用紫外光照射擦除;
Flotox MOS管和快闪叠栅 MOS管,采用电擦除方法。
浮 栅 MOS管叠栅注入 MOS(SIMOS)管浮栅隧道氧化层 MOS(Flotox MOS)管快闪 (Flash)叠栅 MOS管当浮栅上带有负电荷时,使得 MOS管的开启电压变高,如果给控制栅加上 VT1控制电压,MOS管仍处于截止状态。
若要擦除,可用 紫外线或 X射线,距管子 2厘米处照射 15-20分钟。
当浮栅上没有电荷时,给控制栅加上大于 VT1的控制电压,
MOS管导通。
a.叠栅注入 MOS(SIMOS)管
25V25VGND 5V 5V
iD
VT1 VT2 vGS
浮栅无电子
O
编程前浮栅无电子 浮栅有电子编程前 编程后
5V 5VGND 5V 5VGND
导通截止
L
T 1 T 2 T
3
T 4
A B C D
V CC
L=B?C
连接 连接断开 断开连接 连接断开 断开
1 1 1 1
浮栅延长区与漏区 N+之间的交叠处有一个厚度约为 80A
(埃 )的薄绝缘层 ——遂道区。
当遂道区的电场强度大到一定程度,使漏区与浮栅间出现导电遂道,形成电流将浮栅电荷泄放掉。
遂道 MOS管 是用电擦除的,
擦除速度快。
N
+
N
+
隧道
P 型衬底源极
s
控制栅 g c
漏极
d
浮栅
g f
d
s
g c
g f
b.浮栅隧道氧化层 MOS(Flotox MOS)管结构特点,
1.闪速存储器存储单元
MOS管的源极 N+区大于漏极
N+区,而 SIMOS管的源极 N+
区和漏极 N+区是对称的;
2,浮栅到 P型衬底间的氧化绝缘层比 SIMOS管的更薄。
c.快闪 叠栅 MOS管开关 ( Flash Memory) (自学)
特点:结构简单、集成度高、
编程可靠、擦除快捷。
N
+
N
+
P 型衬底源极
s
控制栅 g c
漏极
d
浮栅
g f
d
s
g c
g f
3.PLD的分类
PROM PLA PAL GAL
低密度可编程逻辑器件
( LDPLD)
EPLD CPLD FPGA
高密度可编程逻辑器件
( HDPLD)
可编程逻辑器件
( PLD)
按集成密度划分为
2、按结构特点划分
简单 PLD (PAL,GAL)
复杂的可编程器件 (CPLD),
CPLD的代表芯片如,Altera的 MAX系列
现场可编程门阵列 (FPGA)
PLD中的三种与、或阵列与阵列
B A
L 1 L 0
可编程或阵列固定与阵列、或阵列均可编程 (PLA)
与阵列固定,或阵列可编程 (PROM)
与阵列可编程,或阵列固定 (PAL和
GAL等 )
与阵列
B A
L 1 L
0
可编程或阵列可编程与阵列
B A
L 1 L
0
或阵列可编程固定按 PLD中的与、或阵列是否编程分
4.5.2 组合逻辑电路的 PLD 实现例 1 由 PLA构成的逻辑电路如图所示,试写出该电路的逻辑表达式,
并确定其逻辑功能 。
写出该电路的逻辑表达式:
B n A n
S
n
C
n + 1
C
n
nnnnnnn
nnnnnnnnnnnnn
CBCABAC
CBACBACBACBAS


1
AnBnCn
AnBn
AnCn
BnCn
全加器
AnBnCn
AnBnCn
B n A n
S
n
C
n + 1
C
n
AnBnCn
试写出该电路的逻辑表达式。
A
L
0
L
1
L
2
L
3
B
C
D
1 2 3 4 5 6 7 8 9 10
1
2
3
4
5
6
7
8
9
10
11
12
1 2 3 4 5 6 7 8 9 10
DCBADCL0
DCBDCBL2
BDACBALL 03
BCADBADCBL1
4.6 用 VerilogHDL描述组合逻辑电路用 VerilogHDL描述组合逻辑电路有三种不同抽象级别:组合逻辑电路的门级描述、组合逻辑电路的数据流描述、组合逻辑电路的行为级描述。
VerilogHDL描述的电路就是该电路的 VerilogHDL模型。
行为描述方式:
一般使用下述语句描述,可以对组合、时序逻辑电路建模。
1) initial 语句
2) always 语句
数据流描述方式:
一般使用 assign语句描述,主要用于对组合逻辑电路建模。
门级描述:
一般使用 Primitive(内部元件)、自定义的下层模块对电路描述。主要用于层次化设计中。
end
基本门级元件模型元件符号 功能说明 元件符号 功能说明
and 多输入端的与门 nand 多输入端的与非门
or 多输入端的或门 nor 多输入端的或非门
xor 多输入端的异或门 xnor 多输入端的异或非门
buf 多输出端的缓冲器 not 多输出端的反相器
bufif1 控制信号高电平有效的三态缓冲器 notif1 控制信号高电平有效的三态反相器
bufif0 控制信号低电平有效的三态缓冲器 notif0 控制信号低电平有效的三态反相器多输入门多输出门三态门
4.6.1 组合逻辑电路的门级建模门级建模,将逻辑电路图用 HDL规定的文本语言表示出来。
Verilog 基本门级元件
and n-input AND gate
nand n-input NAND gate
or n-input OR gate
nor n-input NOR gate
xor n-input exclusive
OR gate
xnor n-input exclusive
NOR gate
buf n-output buffer
not n-output inverter
bufif0 tri-state buffer;
Io enable
bufif1 tri-state buffer;
hi enable
notif0 tri-state inverter;
Io enable
notif1 tri-state inverter;
hi enable
1、多输入门只允许有一个输出,但可以有多个输入。
and A1( out,in1,in2,in3);
输入
2 xxx1z
xxx1x
xx011
11110
zx10
输入 1nand
nand真值表
X- 不确定状态 Z- 高阻态
and真值表
x0z
x0x
x101
00000
zX10 输入 1and
输入
2
x
x x
xx
调用名
XX1XZ
XX1XX
11111
XX100
ZX10
输入 1or
输入
2
or真值表输入
2
XXXXZ
XXXXX
XX011
XX100
ZX10
输入 1xor
xor真值表
2、多输出门允许有多个输出,但只有一个输入。
not N1( out1,out2,…,in);
xx10
zx10
输 入buf
输 出
buf真值表输 出 xx01
zx10
输 入not
not真值表
buf B1( out1,out2,…,in);
out1
in out2
outN

out
1
in out2
out
N

bufif1真值表
xxxzz
xxxzx
1/z1/z1z1
0/z0/z0z0
zx10
控制输入bufif1
数据输入 xxxzz
xxxzx
0/z0/z0z1
1/z1/z10 z
zx10
控制输入notif1
数据输入
notif1真值表
3、三态门有一个输出、一个数据输入和一个输入控制。
如果输入控制信号无效,则三态门的输出为高阻态 z。
图 4,6,3 三态门元件模型
( a ) b u f i f 1 ( b ) n o ti f 1
( a ) ( b )
in o u t
c t r l
in o u t
c t r l
4、设计举例
//Gate-level description of a 2-
to-4-line decoder
module _2to4decoder
(A1,A0,E,Y);
input A,B,E;
output [3:0]Y;
wire A1not,A0not,Enot;
not
n1 (A1not,A1),
n2 (A0not,A0),
n3 (Enot,E);
nand
n4 (Y[0],A1not,A0not,Enot),
n5 (Y[1],A1not,A0,Enot),
n6 (Y[2],A1,A0not,Enot),
n7 (Y[3],A1,A0,Enot);
endmodule
1
A 1
1
1
A 0
&
&
&
&
E
0Y
1Y
2Y
3Y
试用 Verilog语言 的门级元件描述 2线 -4线译码器,说明部分功能描述例 2 用 Verilog的门级元件进行描述由三态门构成的 2选 1数据选择器 。
B L
A
SE L
//Gate-level description of a 2-to-1-line multiplexer
module _2to1muxtri (A,B,SEL,L);
input A,B,SEL
output L;
tri L;
bufif1 (L,B,SEL);
bufif0 (L,A,SEL);
endmodule
5、分层次的电路设计方法简介
4位全加器的层次结构框图分层次的电路设计,在电路设计中,将两个或多个模块组合起来描述电路逻辑功能的设计方法。
设计方法,自顶向下和自底向上两种常用的设计方法
4 位全加器
1 位全加器 1 位全加器 1 位全加器 1 位全加器半加器 或门 半加器 或门
.,,,,,
A
B
=1
& C = AB
BAS
module halfadder (S,C,A,B);
input A,B;
output S,C;
//Instantiate primitive gates
xor (S,A,B);
and (C,A,B);
endmodule
//Gate-level hierarchical
description of 4-bit adder
// Description of half adder
//Description of 1-bit full adder
module fulladder (S,CO,A,B,CI);
input A,B,CI;
output S,CO;
wire S1,D1,D2; //内部节点信号
//Instantiate the halfadder
halfadder HA1 (S1,D1,A,B);
halfadder HA2 (S,D2,S1,CI);
or g1(CO,D2,D1);
endmodule
S
A
B
C i C
o
BA? iCBA
AB i)( CBA?
≥ 1
CO
CO
D1
S1
D2
//Description of 4-bit full adder
module _4bit_adder (S,C3,A,B,C_1);
input [3:0] A,B;
input C_1;
output [3:0] S;
output C3;
wire C0,C1,C2; //内部进位信号
//Instantiate the fulladder
fulladder FA0 (S[0],C0,A[0],B[0],C_1),
FA1 (S[1],C1,A[1],B[1],C0),
FA2 (S[2],C2,A[2],B[2],C1),
FA3 (S[3],C3,A[3],B[3],C2);
endmodule
4.6.2 组合逻辑电路的数据流建模数据流建模能在较高的抽象级别描述电路的逻辑功能。通过逻辑综合软件,能够自动地将数据流描述转换成为门级电路。
Verilog HDL的运算符类型 符号 功能说明 类型 符号 功能说明算术运算符
(双目运算符)
+
-
*
/
%
二进制加二进制减二进制乘二进制除求模关系运算符
(双目运算符

>
<
>=
<=
==
!=
大于小于大于或等于小于或等于等于不等于位运算符
(双目运算符)
~
&
|
^
^~ 或 ~^
按位取反按位与按位或按位异或按位同或缩位运算符
(单目运算符)
&
~&
|
~|
^
^~ 或 ~^
缩位与缩位与非缩位或缩位或非缩位异或缩位同或逻辑运算符
!
&&
逻辑非逻辑与 移位运算符(双目运算
>>
<<
右移左移位运算符与缩位运算的比较 A,4’b1010,
B,4’b1111,
A~^B=
1010
A^B=
0101
A|B=
1111
A&B=
1010
~A = 0101
~B = 0000位运算
~^A=1
~^B=1
^A=0
^B=0
|A=1
~|B=0
~&A=1
&B=1
&A=1&
0&1&0=0缩位运算对同一个操作数的重复拼接还可以双重大括号构成的运算符 {{}}
例如 {4{A}}=4’b1111,{2{A},2{B},C}=8’b11101000。
作用是将两个或多个信号的某些位拼接起来成为一个新的操作数,
进行运算操作。
位拼接运算符设 A=1’b1,B=2’b10,C=2’b00
则 {B,C}= 4’b1000
{A,B[1],C[0]}= 3’b110
{A,B,C,3’b101}=8’b11000101。
一般用法:
condition_expr?expr1:expr2;
条件运算符是三目运算符,运算时根据条件表达式的值选择表达式。
首先计算第一个操作数 condition_expr的值,如果结果为逻辑 1,
则选择第二个操作数 expr1的值作为结果返回,结果为逻辑 0,
选择第三个操作数 expr2的值作为结果返回。
2、数据流建模举例连续赋值语句的执行过程是:只要逻辑表达式右边变量的逻辑值发生变化,则等式右边表达式的值会立即被计算出来并赋给左边的变量。
注意,在 assign语句中,左边变量的数据类型必须是 wire型。
数据流建模使用的基本语句是连续赋值语句 assign,该语句用于对 wire型变量进行赋值,
它由关键词 assign开始,后面跟着由操作数和运算符组成的逻辑表达式。
2选 1数据选择器的连续赋值描述是:
wire A,B,SEL,L; //声明 4个连线型变量
assign L=(A & ~SEL)|(B & SEL); //连续赋值
//Dataflow description of a 2-to-4-line decoder,
module decoder_df (A1,A0,E,Y);
input A1,A0,E;
output [3:0] Y;
assign Y[0] = ~(~A1 & ~A0 & ~E);
assign Y[1] = ~(~A1 & A0 & ~E);
assign Y[2] = ~(A1 & ~A0 & ~E);
assign Y[3] = ~(A1 & A0 & ~E);
endmodule
1
A 1
1
1
A 0
&
&
&
&
E
0Y
1Y
2Y
3Y
//Dataflow description of 2-to-1-line multiplexer
module mux2x1_df (A,B,SEL,L);
input A,B,SEL;
output L;
assign L = SEL? A,B;
endmodule
用条件运算符描述了一个 2选 1的数据选择器。
在连续赋值语句中,如果 SEL= 1,则输出 L= A;否则 L= B。
4.6.3 组合逻辑电路的行为级建模行为级建模就是描述数字逻辑电路的功能和算法。
一般使用 always结构,后面跟着一系列过程赋值语句,
给 reg类型的变量赋值。
if (condition_expr1) true_statement1;
else if (condition_expr2) true_statement2;
else if (condition_expr3) true_statement3;
……
else default_statement;
1、条件语句( if语句)
条件语句就是根据判断条件是否成立,确定下一步的运算。
if (condition_expr) true_statement;
if (condition_expr) true_statement;
else fale_ statement;
Verilog语言中有 3种形式的 if语句:
if后面的条件表达式一般为逻辑表达式或关系表达式。执行
if语句时,首先计算表达式的值,若结果为 0,x或 z,按“假”
处理;若结果为 1,按“真”处理,并执行相应的语句。
是一种多分支条件选择语句,一般形式如下:
case (case_expr)
item_expr1,statement1;
item_expr2,statement2;
……
default,default_statement; //default语句可以省略
2、多路分支语句( case语句)
//Behavioral description of 2-to-1-line multiplexer
module mux2to1_bh(A,B,SEL,L);
input A,B,SEL;
output L;
reg L; //define register variable
always @(SEL or A or B)
if (SEL == 1) L = b; //也可以写成 if (SEL) L=B;
else L = A;
endmodule

//Behavioral description of 4-to-1-line multiplexer
module mux4to1_bh(A,SEL,E,L);
input [3:0] A;
input [1:0] SEL;
output L;
reg L;
always @(A or SEL or E)
begin
if (E==1) L = 0;
else
case (SEL)
2’d0,L = A[0];
2’d1,L = A[1];
2’d2,L = A[2];
2’d3,L = A[3];
endcase
end
endmodule