4 组合逻辑电路
Click here to load reader
-
Upload
erica-fleming -
Category
Documents
-
view
103 -
download
9
description
Transcript of 4 组合逻辑电路
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 , …, An ) (i=1, 2, …, m)
工作特征 :组合逻辑电路工作特点 : 在任何时刻,电路的输出状态只取决于同一时刻的输入状态而与电路原来的状态无关。
序 关于组合逻辑电路
结构特征 :1 、输出、输入之间没有反馈延迟通路,2 、不含记忆单元
=
1 L1
B
C
A Z
=
1
L2
A1 A2
An
L1 L2
Lm
组合逻辑电路
二 . 组合逻辑电路的分析步骤:
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
真值表
1 1 1
0 1 1
1 0 1
0 0 1
1 1 0
0 1 0
1 0 0
0 0 0
Z Y X C B A
0
0
00
1
1
1
1
0
0
1
1
1
10
0
0
1
0
1
1
01
0
BABAY
CACAZ
这个电路逻辑功能是对输入
的二进制码求反码。最高位为
符号位, 0 表示正数, 1 表示
负数,正数的反码与原码相同;
负数的数值部分是在原码的基
础上逐位求反。
3 、确定电路逻辑功能 真值表
1 1 1
0 1 1
1 0 1
0 0 1
1 1 0
0 1 0
1 0 0
0 0 0
Z Y X C B A
0
0
00
1
1
1
1
0
0
1
1
1
10
0
0
1
0
1
1
01
0
1 、逻辑抽象:根据实际逻辑问题的因果关系确定输入、输出变量,并定义逻辑状态的含义;2 、根据逻辑描述列出真值表;3 、由真值表写出逻辑表达式 ;
5 、 画出逻辑图。4 、根据器件的类型 , 简化和变换逻辑表达式
二、组合逻辑电路的设计步骤
一、组合逻辑电路的设计:根据实际逻辑问题,求出所要求逻辑
功能的最简单逻辑电路。
4.2 组合逻辑电路的设计
例 1 某火车站有特快、直快和慢车三种类型的客运列车进出,试用两输入与非门和反相器设计一个指示列车等待进站的逻辑电路, 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 、 根据要求将上式变换为与非形式
I0
L
0
L1 I1
I2 L
2
& 1
1
1
&
&
1
1
4 、 根据输出逻辑表达式画出逻辑图。
00 IL 101 IIL 2102 IIIL
例 2 试设计一个码转换电路,将 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
B3
G0
G2
G3
G1
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 1
B2
G0
G2
G3
G1
(2) 画出各输出函数的卡诺图,并化简和变换。
33 GB
2B 2G3G2G3G
2G3G1B 1G 2G3G 1G 2G3G 1G 2G3G 1G
2G3G 2G3G 1G 2G3G
2G3G 1G
3G 2G 1G
0B 3G 2G 1G 0G
0 0 1 1
1 1 0 0
0 0 1 1
1 1 0 0
B1
B0
G2
G3
G1
0 1 0 1
1 0 1 0
0 1 0 1
1 0 1 0
B0
G0
G2
G3
G1
(3) 根据逻辑表达式,画出逻辑图
=1
B0
B1
B2
B3
G0
G1
G2
G3
=1
=1
4.3 组合逻辑电路中的竞争冒险
4.3.1 产生的竞争冒险的原因4.3.2 消去竞争冒险的方法
4.3 组合逻辑电路中的竞争冒险
不考虑门的延时时间
考虑门的延时时间 , 当 A=0 B=1
1 BAL 0 AAL
4.3.1 产生的竞争冒险的原因
C
C
AC
CB
L
竞争 : 当一个逻辑门的两个输入端的信号同时向相反方向变化,而变化的时间有差异的现象。冒险 : 两个输入端的信号取值的变化方向是相反时,如门电路输出端的逻辑表达式简化成两个互补信号相乘或者相加,由竞争而可能产生输出干扰脉冲的现象。
4.3.2 消去竞争冒险的方法
1. 发现并消除互补变量
A
B
C
1
&
L
B = C = 0 时
为消掉 AA ,变换逻辑函数式为
))(( CABAL
可能出现竞争冒险。
AAF
BCBAACF
2. 增加乘积项 , 避免互补项相加
A AC
CB
C
B
≥ 1
&
&
1
L
,
当 A=B=1 时,根据逻辑表达式有
CBACL 当 A=B=1 时
CBACL
1 CCL
CBACL AB
CCL
AB
0
1
A 0 0 0 1
0 1 1 1
L B C
00 01 11 10
3. 输出端并联电容器
如果逻辑电路在较慢速度下工作,为了消去竞争冒险,可以在输出端并联一电容器,致使输出波形上升沿和下降沿变化比较缓慢,可对于很窄的负跳变脉冲起到平波的作用。
4~20pF
4.4 若干典型的组合逻辑集成电路4.4.1 编码器
4.4.2 译码器 / 数据分配器
4.4.3 数据选择器
4.4.4 数值比较器4.4.5 算术运算电路
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)逻辑功能表
编码器的输入为高电平有效。
Y1
Y0
I0 I1 I2 I3
( a)逻辑框图
4输入
二进制码输出
11
01
10
00
1 、编码器的工作原理
321032100
321032101
IIIIIIIIY
IIIIIIIIY
该电路是否可以再简化?
321032100
321032101
IIIIIIIIY
IIIIIIIIY
I0
I1
I2
I3
1
1
1
1
&
&
&
≥
1
Y0
Y1
&
≥
1
(2.) 键盘输入 8421BCD 码编码器(分析)
2
3
4
5
6
7
8
9
0
1
S0
S1
S2
S4
S5
S6
S7
S8
S9
VCC 1kΩ× 10
&
&
&
&
≥ 1
& GS
D
C
B
A
S3
代码输出
2
3
4
5
6
7
8
9
0
1
S0
S1
S2
S4
S5
S6
S7
S8
S9
VCC 1kΩ× 10
&
&
&
&
≥ 1
& GS
D
C
B
A
S3
使能标志
2
3
4
5
6
7
8
9
0
1
S0
S1
S2
S4
S5
S6
S7
S8
S9
VCC 1kΩ× 10
&
&
&
&
≥ 1
& GS
D
C
B
A
S3
编码输入
输 入 输 出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
无法输出有效编码。
结论:普通编码器不能同时输入两个已上的有效编码信号
I0
I1
I2
I3
1
1
1
1
&
&
&
≥
1
Y0
Y1
&
≥
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 集成电路编码器
CD4532
I0 I1 I2 I3 I4 I5 I6 I7
Y0
Y1
Y2 EI
EO
GS
I2
1
1
1
1
1
1
1
1
1
1
1
≥1 ≥1
≥1
≥1
≥1
≥1 ≥1
& & 1
& 1
& & 1
≥1 ≥1
& 1 GS
1 EO 1 1
&
I1
I7
I6
I5
I4
I3
I0
EI
Y2
Y1
Y0
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线优先编码器 , 其逻辑图
如下图所示,试分析其工作原理。
。
CD4532(I
I)
I0 I1 I2 I3 I4 I5 I6 I7
Y0 Y1 Y2
EO EI
GS
CD4532(
I)
I0 I1 I2 I3 I4 I5 I6 I7
Y0 Y1 Y2
EO EI
GS
EI2 EO2 EI1 EO1
A8 A9 A10 A11 A12 A13 A14 A15 A0 A1 A2 A3 A4 A5 A6 A7
L0 L1
GS2
L2 GS
GS1
G3 G2 G1 G0
L3
≥
1
≥1 ≥
1
≥
1
0 0
0 0 0 0 0
无编码输出
0
。
CD4532(II)
I0 I1 I2 I3 I4 I5 I6 I7
Y0 Y1 Y2
EO EI
GS
CD4532(I)
I0 I1 I2 I3 I4 I5 I6 I7
Y0 Y1 Y2
EO EI
GS
EI2 EO2 EI1
EO1
A8 A9 A10 A11 A12 A13 A14 A15 A0 A1 A2 A3 A4 A5 A6 A7
L0 L1
GS2
L2 GS
GS1
G3 G2 G1 G0
L3
≥ 1 ≥ 1 ≥ 1 ≥ 1
1 1
0 0 0 0
0
若无有效电平输入
0 1 1 1
那块芯片的优先级高?
1
若有效电平输入
。
CD4532(II)
I0 I1 I2 I3 I4 I5 I6 I7
Y0 Y1 Y2
EO EI
GS
CD4532(I)
I0 I1 I2 I3 I4 I5 I6 I7
Y0 Y1 Y2
EO EI
GS
EI2 EO2 EI1
EO1
A8 A9 A10 A11 A12 A13 A14 A15 A0 A1 A2 A3 A4 A5 A6 A7
L0 L1
GS2
L2 GS
GS1
G3 G2 G1 G0
L3
≥ 1 ≥ 1 ≥ 1 ≥ 1
1 0
1 0 0 0
0
若有效电平输入
1 1 1 1
译码器的分类:
译码:译码是编码的逆过程,它能将二进制码翻译成代表某一特定含义的信号 .(即电路的某种状态 )
1 译码器的概念与分类
译码器:具有译码功能的逻辑电路称为译码器。
唯一地址译码器
代码变换器
将一系列代码转换成与之一一对应的有效信号。
将一种代码转换成另一种代码。
二进制译码器 二—十进制译码器显示译码器
常见的唯一地址译码器:
4.4.2 译码器 / 数据分配器
2 线 - 4线译码器的逻辑电路 ( 分析)
LHHHHHLHLHHLHLHHLHHLLHHHLLLLHHHH××HY3Y2Y1Y0A0A1E
输出输 入功能表
010 AAEY 011 AAEY
012 AAEY 013 AAEY
( 1.) 二进制译码器 x0
x1
xn-1
y0
y1
1ny
EI
使能输入
二进制
译码器
n 个输入端
使能输入端
2n 个输出端
设输入端的个数为 n ,输出端的个数为 M
则有 M=2n
2 、 集成电路译码器
(a) 74HC139 集成译码器
Y0
Y1
Y2
Y3
E
A0
A1
A0
A1
0Y
1Y
2Y
3Y
E
1/2 74x139
(1. ) 二进制译码器
LHHHHHL
HLHHLHL
HHLHHLL
HHHLLLL
HHHH××H
Y3Y2Y1Y0A0A1E
输出输 入功能表
逻辑符号说明
逻辑符号框外部的符号,表示外部输入或输出信号名称,字母上面的“ —”号说明该输入或输出是低电平有效。符号框内部的输入、输出变量表示其内部的逻辑关系。在推导表达式的过程中,如果低有效的输入或输出变量 ( 如 ) 上面的“ —”号参与运算 ( 如 E 变为 E ) ,则在画逻辑图或验证真值表时,注意将其还原为低有效符号。
E1
A
1
1
1
&
&
&
&
Y0
Y1
Y2
Y3
A
0
Y0
Y2
Y1
Y3
E
A
1A
0
(b) 74HC138(74LS138) 集成译码器
引脚图
逻辑图
74HC138
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
E3
E2
E1
A0
A1
A2
74HC138 集成译码器
逻辑图
E3
A0
A1
A2
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
LHHHHHHHHHHLLHHLHHHHHHLHHLLHHHLHHHHHHLHLLHHHHLHHHHLLHLLHHHHHLHHHHHLLLHHHHHHLHHLHLLLHHHHHHHLHHLLLLHHHHHHHHLLLLLLHHHHHHHHH×××××LHHHHHHHH×××HX×HHHHHHHH××××H×
A2 E3
输 出输 入
A1 A0
2E 1E 0Y 1Y 2Y 3Y 4Y 5Y 6Y 7Y
LHHHHHHHHHHLLHHLHHHHHHLHHLLHHHLHHHHHHLHLLHHHHLHHHHLLHLLHHHHHLHHHHHLLLHHHHHHLHHLHLLLHHHHHHHLHHLLLLHHHHHHHHLLLLLLHHHHHHHHH×××××LHHHHHHHH×××HX×HHHHHHHH××××H×
A2E3
输 出输 入
A1 A0
0120 AAAY 0121 AAAY 0122 AAAY 0123 AAAY
0125 AAAY 0126 AAAY 0124 AAAY 0127 AAAY
A
B
C
E
Y0
Y1
Y7
Y5
Y2
Y6
Y4
Y3
1 、已知下图所示电路的输入信号的波形试画出译码器输出的波形。
译码器的应用
74HC138
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
E3
E2
E1
A0
A1
A2
A0
+5V
E
Y0
Y1
Y2 Y3 Y4
Y5 Y6
Y7 C
B
A
74HC138
Y0 Y1
+5V
Y2 Y3 Y4 Y5 Y6 Y7
E3 E2 E1
A0 A1 A2
1/274HC139
…
…
…
…
B0 B1 B2
B3
B4
(0)
Y0
Y1
Y2
Y3
E
A0
A1
24L
0L
7L
8L
15L
16L
23L
31L
74HC138
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
E3 E2 E1
A0 A1 A2
(I)
74HC138
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
E3 E2 E1
A0 A1 A2
74HC138
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
E3 E2 E1
A0 A1 A2
(II)
(III)
2 、译码器的扩展用 74X139和 74X138 构成 5线 -32线译码器
~3 线– 8 线译码器的 ~ 含三变量函数的全部最小项。Y0 Y7
基于这一点用该器件能够方便地实现三变量逻辑函数。
3 、用译码器实现逻辑函数。
0120 AAAY 0m
74HC138
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
E3
E2
E1
A0
A1
A2
A0
+5V
E
Y0
Y1
Y2 Y3 Y4
Y5 Y6
Y7 A
B
C
11 mCBAY
77 mCBAY
22 mBCAY ...
当 E3 =1 , E2 = E1 = 0 时
7620 mmmm
74HC138
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
E3
E2
E1
A0
A1
A2
7620 mmmm
ABCAL 用一片 74HC138 实现函数
首先将函数式变换为最小项之和的形式
在译码器的输出端加一个与非门,即可实现给定的组合逻辑函数 .
+5V
A B C
L &
7620 YYYY
ABCCABCBACBAL
数据分配器:相当于多输出的单刀多掷开关,是一种能将从数据分时送到多个不同的通道上去的逻辑电路。
数据分配器示意图
数据输入
通道选择信号
Y0
Y1
Y7
用 74HC138 组成数据分配器
用译码器实现数据分配器
74HC138
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
E3
E2
E1
A0
A1
A2
A0
+5V
D= E2
E1
Y0
Y0
010
Y
CBADEEY 232 当 ABC = 010 时, Y2=D
CBA
输 入 输 出
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 译码器作为数据分配器时的功能表
集成二集成二––十进制译码器 - 十进制译码器 - 74427442
1
2
3
4
5
6
7
8 9
10
11
12
13
14
15
16
Y1
Y2
Y3
Y4
Y5
Y6
Y0
GND Y7
Y8
Y9
A3
A2
A1
A0
VCC
A0
A1
A2
A3
1
1
1
1
1
1
1
1
&
&
&
&
&
&
&
&
&
& Y9
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
Y0
功能:将 8421BCD 码译成为 10个状态输出。
7442
功能表
十进制数
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
显示译码器
脉冲信号 计数器 译码器 驱动器
显示器
KHz
1. 七段显示译码器
( 1 )最常用的显示器有:半导体发光二极管和液晶显示器。
a
b
c
d
e
f
g
共阳极显示器
a
b
c
d
e
f
g
共阴极显示器
a
b
cd
f g
e
显示器分段布局图
常用的集成七段显示译码器
----------CMOS七段显示译码器 74HC4511
a b c d e f g
D0
74HC4511
D3 D2 D1 LT BL LE
LT
HHLHHHHHLLHHHL9
HHHHHHHLLLHHHL8
LLLLHHHHHHLHHL7
HHHHHLLLHHLHHL6
HHLHHLHHLHLHHL5
HHLLHHLLLHLHHL4
HLLHHHHHHLLHHL3
HLHHLHHLHLLHHL2
LLLLHHLHLLLHHL1
LHHHHHHLLLLHHL0
g f e d c b a 字形
输 出 输 入十进 制或功能 D3
D2 D1 D0 BL LE
CMOS七段显示译码器 74HC4511 功能表
**××××HHH锁 存
熄灭LLLLLLL××××HL×灭 灯
HHHHHHH××××L××灯 测 试
熄灭LLLLLLLHHHHHHL15
熄灭LLLLLLLLHHHHHL14
熄灭LLLLLLLHLHHHHL13
熄灭LLLLLLLLLHHHHL12
熄灭LLLLLLLHHLHHHL11
熄灭 LLLLLLLLHLHHHL10
LT g f e d c b a
字形
输 出输 入十进制或功能
BL LE D3 D2 D1 D0
CMOS七段显示译码器 74HC4511 功能表 (续 )
例 由 74HC4511 构成 24小时及分钟的译码电路如图所示,试分析小时高位是否具有零熄灭功能。
H7 H6 H5 H4
0
(0)
4511×4
×显示器 4
1
(0)
(I)
(II)
(III)
a~g a~g a~g a~g
LT
LE BL (III)
D3 D2 D1 D0
LT
LE BL (I)
LT
LE BL (II)
LT
LE BL
1
≥
1
H3 H2 H1 H0 M7
M6
M5
M4
M3
M2
M1
M0
D3 D2 D1 D0
D3 D2 D1 D0
D3 D2 D1 D0
4.3.3 数据选择器
1 、数据选择器的定义与功能
数据选择的功能:在通道选择信号的作用下,将多个通道的数据分时传送到公共的数据通道上去的。
数据选择器:能实现数据选择功能的逻辑电路。它的作用相当于多个输入的单刀多掷开关,又称“多路开关” 。
通道选择
信号
数据输出
I0
I1
12 nI
S1 S0 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 01 1 =1=0 S1 S0 E
1 1 1
I 0
I 1
I 2
I 3
& ≥ 1
Y
301201101001 ISSISSISSISSY
33221100 mImImImIY
0××1YS0S1E
地址使能输出输 入
功能表
0 0 0 I0
0 0 1 I1
0 1 0 I2
0 1 1 I3
74LS151 功能框图
D7
Y
Y
E
74HC151
D6D5D4D3D2D1D0
S2 S1 S0
2 、集成电路数据选择器
8选 1 数据选择器 74HC151
2 、集成电路数据选择器
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
iii
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
D6D5D4D3D2D1D0
S2 S1 S0
iii
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
10
Y=L
例 1 试用 8选 1 数据选择器 74LS151 产生逻辑函数
XYZYXYZXL
ZXYXYZYXYZX
XYZYXYZXL
Z
)Z(Z
0E 2SX 1SY 0SZ
7766554433221100 DmDmDmDmDmDmDmDmY
7653 mmmmL
解 :
利用 8 选 1 数据选择器组成函数产生器的一般步骤
a 、将函数变换成最小项表达式
b 、将使器件处于使能状态
c 、地址信号 S2 、 S1 、 S0 作为函数的输入变量d 、处理数据输入 D0~D7 信号电平。逻辑表达式中
有 mi , 则相应 Di =1 ,其他的数据输入端均为 0 。
总结 :
用两片 74151 组成二位八选一的数据选择器
② 数据选择器的扩展位的扩展
S2 S1 S0 D00
D01 D02 D03 D04 D05 D06 D07
Y Y0
Y1
74HC151
0Y
1Y
D0 D1 D2 D3 D4 D5 D6 D7
S0
S2 S1
E
Y
E
D10 D11 D12 D13 D14 D15 D16 D17
Y 74HC151
D0 D1 D2 D3 D4 D5 D6 D7
S0
S2 S1
E
Y
(0)
(I)
字的扩展
将两片 74LS151 连接成一个 16选 1 的数据选择器, D
C B A D0
D1 D2 D3 D4 D5 D6 D7
Y 74HC151
D0 D1 D2 D3 D4 D5 D6 D7
S0
S2 S1
E
Y
D8 D9 D10 D11 D12 D13 D14 D15
Y D0 D1 D2 D3 D4 D5 D6 D7
S0
S2 S1
E
Y
1 Y
Y
≥
1
&
(0)
74HC151 (I)
③ 实现并行数据到串行数据的转换
S0
S1
L
S2
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
FA>B
FA=B
FA<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),高位比较的结果就是两个数的比较结果。
当高位相等时,两数的比较结果由低位比较的结果决定。
用一位数值比较器设计多位数值比较器的原则
真值表
001
010
100
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)
两位数值比较器逻辑图
A1
B1
A0
B0
1位数值比较器
1位数值比较器
A1>B1
A1=B1
A1<B1
A0>B0
A0=B0
A0<B0
G1
G2
&
&
G3
&
≥ 1
≥ 1 FA>B
FA=B
FA<B
FA>B = (A1>B1) + ( A1=B1)(A0>B0) FA=B=(A1=B1)(A0=B0)
FA<B = (A1<B1) + ( A1=B1)(A0<B0)
3 集成数值比较器
A0 B0 A1 B1 A2 B2 A3 B3
IA>B
IA<B
IA=B FA<B FA=B FA>B
74LS85
(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
高位片
输出
低位片
A0 B0 A1 B1 A2 B2 A3 B3 A4 B4 A5 B5 A6 B6 A7 B7
A0 B0 A1 B1 A2 B2 A3 B3 A0 B0 A1 B1 A2 B2 A3 B3
IA>B
IA<B
IA=B FA<B FA=B FA>B
C0
IA>B
IA<B
IA=B FA<B FA=B FA>B
C1
0
1
0
FA<B FA=B FA>B
B3A3~B0A0 B7A7~B4A4
用两片 74LS85 组成 16 位数值比较器(串联扩展方式)。
A0 B0 A1 B1 A2 B2 A3 B3 A4 B4 A5 B5 A6 B6 A7 B7
A0 B0 A1 B1 A2 B2 A3 B3 A0 B0 A1 B1 A2 B2 A3 B3
IA>B
IA<B
IA=B FA <
B
FA=B FA >
B
C0
IA>B
IA<B
IA=B FA <
B
FA=B FA >
B
C1
FA <
B
FA=B FA >
B
高位片
输出
低位片
B3A3~B0A0 B7A7~B4A4 B11A11~B8A8 B15A15~B12A12
0
1
0
A0 B0 A1 B1 A2 B2 A3 B3 A4 B4 A5 B5 A6 B6 A7 B7
A0 B0 A1 B1 A2 B2 A3 B3 A0 B0 A1 B1 A2 B2 A3 B3
IA>B
IA<B
IA=B FA <
B
FA=B FA >
B
C0
IA>B
IA<B
IA=B FA <
B
FA=B FA >
B
C1
FA <
B
FA=B FA >
B
采用串联扩展方式数值比较器
用 74HC85 组成 16位数值比较器的并联扩展方式。
A0 B0
A12 B12
IA<B
IA=B
IA>B
FA <
B
FA >
B
C3
A1 B1 A2 B2 A3 B3
A15 B15 A8 B8
A0 B0
IA<B
IA=B
IA>B
FA <
B
FA >
B
C2
A1 B1 A2 B2 A3 B3
A4 B4 A0 B0
A0 B0
IA<B
IA=B
IA>B
FA <
B
FA >
B
C1
A1 B1 A2 B2 A3 B3 A0 B0
IA<B
IA=B
IA>B
FA <
B
FA >
B
C0
A1 B1 A2 B2 A3 B3
B0 A1 B1 A2 B2 A3 B3 A0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
FA <
B
FA >
B
FA=B
C4
IA<B
IA=B
IA>B
B3A3~B0A0B7A7~B4A4B11A11~B8A8
B15A15~B12A12
输出
4.4.5 算术运算电路
A
B
S
C HA
FA
Ai
Bi
Ci-1 Ci
Si
@ 在两个 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)
111010
0110
010100
全加器真值表
全加器能进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位信号。
0 1 0 1
1 0 1 0
Si
Ai
Ci-1
Bi
0 0 1 0
0 1 1 1
Ci
Ai
Ci-1
Bi
111011101001110010100000
CSCBA
• 你能用 74151\74138 设计全加器吗 ?• 用这两种器件组成逻辑函数产生电路 , 有什么不同 ?
i
iiii
CBA
ABCCBACBACBAS
i
iio
)( CBAAB
BCACBAABC
S A
B
Ci Co
BA iCBA
AB i)( CBA
≥ 1
CO
CO
A
B S
CO Ci
C O C I
于是可得全加器的逻辑表达式为
加法器的应用
111010
0110
010100
全加器真值表
111011101001110010100000
CSCBAABC 有奇数个 1时 S为 1 ;ABC 有偶数个 1 和全为 0 时S为 0 。----- 用全加器组成三位二进制代码奇偶校验器
用全加器组成八位二进制代码奇偶校验器,电路应如何连接?
( 1 )串行进位加法器
•如何用 1 位全加器实现两个四位二进制数相加? A3 A2 A1 A0 + B3 B2 B1 B0 =?
•低位的进位信号送给邻近高位作为输入信号,采用串行进位加法器运算速度不高。
2 、多位数加法器
A0 B0 A1 B1 A2 B2 A3 B3
S0 S1 S2 S3
C3 C0 C1 C2 FA0 FA1 FA2 FA3 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
Cn+x
Cn+y
Cn+z
3P
P3
Cn
&
&
1
≥ 1
≥ 1
≥ 1
≥ 1
3G
P3
2P
P3 2G
P3
1P
P3 1G
P3 0P
P3 0G
P3
P
G
P3
&
&
&
&
&
&
&
&
&
&
&
&
逻辑图
74LS182
Cn+x
Cn+y
Cn+z
G
P
Cn G0 P0 G1 P1 G2 P2 G3 P3
逻辑符号
超前进位集成 4 位加法器 74LS283
74HC283 逻辑框图 74HC283引脚图
B3
A3
B2
A2
B1
A1
B0
A0
C-1
&
≥1
&
≥1
&
≥1
&
≥1
&
1
1 ≥1 &
&
&
&
CO (C3)
& P3
1 ≥1 &
&
&
& P2
1 ≥1 &
&
& P1
1 ≥1 &
& P0
1
=1 S3
=1 S2
=1 S1
=1 S0
74HC283 逻辑框图
4. 超前进位加法器 74LS283 的应用
例 1. 用两片 74LS283 构成一个 8 位二进制数加法器。
A4 B4 A5 B5 A6 B6 A7 B7
74283(2) 74283(1) C–1 CO C–1 CO
S3 S2 S1 S0
S7 S6 S5 S4
0
C7
S3 S2 S1 S0
S3 S2 S1 S0
A0 B0 A1 B1 A2 B2 A3 B3
A0 B0 A1 B1 A2 B2 A3 B3
A0 B0 A1 B1 A2 B2 A3 B3
在片内是超前进位,而片与片之间是串行进位。
B1 B0 B3 B2 A1 A0 A3 A2
S3
74283
S2 S1 S0
C–1 CO
0
8421 码输入
余 3 码输出
1 10 0
例 . 用 74283 构成将 8421BCD 码转换为余 3 码的
码制转换电路 。
8421码
余 3 码
0000
0001
0010
0011
0100
0101
+0011
+0011
+0011CO
3 减法运算
在实际应用中,通常是将减法运算变为加法运算来处理,即采用加补码的方法完成减法运算。
若 n 位二进制的原码为 N 原,则与它相对应的 2 的补码为
N 补 =2N N 原
补码与反码的关系式N 补 =N 反 +1
设两个数 A、 B 相减,利用以上两式可
得A B=A+B 补 2n=A+B 反
+12n
1 ) AB 0 的情况。 2 ) AB <0 的情况。
结果表明,在 A–B 0时,如加补进位信号为 1 ,所得的差就是差的原码。
在 A–B < 0 时,如加补的进位信号为 0 ,所得的差是差绝对值的补码。
A=0101 , B=0001
A= 0001 , B=0101
1 0 1 0 0
0 0 0 1 A 1 0 1 0 B 反 + 1
0 1 1 0 0
D3 D2 D1 D0
=1
1
=1
1
=1
1
=1
1 0
C 1 74HC283(
I)
A0 A1 A2 A3 B0 B1 B2 B3
S3 S2 S1 S0
CO
V
1
C 1 1 74HC283(
I)
A0 A1 A2 A3 B0 B1 B2 B3
S3 S2 S1 S0
D3 D2 D1 D0
1 1 1 1
CO
A0 A1 A2 A3 B0 B1 B2 B3
0
1
1
0
输出为原码的 4 位减法运算逻辑图
4.5 组合可编程逻辑器件
4.5.1 PLD 的结构、表示方法及分类
4.5.2 组合逻辑电路的 PLD 实现
4.5 组合可编程逻辑器件
可编程逻辑器件是一种可以由用户定义和设置
逻辑功能的器件。该类器件具有逻辑功能实现
灵活、集成度高、处理速度快和可靠性高等特点。
4.5.1 PLD 的结构、表示方法及分类
与门阵列
或门阵列乘积项 和项
PLD 主体
输入电路
输入信号 互补
输入
输出电路
输出函数
反馈输入信号
• 可由或阵列直接输出,构成组合输出;• 通过寄存器输出,构成时序方式输出。
1、 PLD 的基本结构
输出
或门阵列
与门阵列
输入
B A
Y Z
(b)
与门阵列
或门阵列乘积项 和项
互补
输入
2. PLD 的逻辑符号表示方法
(1) 连接的方式
硬线连接单元
被编程接通单
元
被编程擦除单元
(2)基本门电路的表示方式
L=A+B+C+ DDDDD
DABC
F1=A•B•C
与门 或门
A B C D
F1
AB
C
&
L
AB
C≥1 L
D
F1=A+B+C+D
L4
A B A B
L3
A B A B
L3
A B A B
A A
A A
EN
EN
三态输出缓冲器
输出恒等于 0 的与门
输出为 1 的与门
A A
A
输入缓冲器
(3) 编程连接技术
A L
B C D
L
VCC A B C D
熔丝
PLD 表示的与门 熔丝工艺的与门原理图
VCC+(5V)
R 3k
L
D1
D2
D3
A
B
C 高电平
A、 B、 C 有一个输入低电平0V
A、 B、 C 三个都输入高电平+5V
5V
0V
5V低电平
L
VCC A B C D
5V
5V
5V
L=A•B•C
L
T1 T2 T3 T4
A B C D
VCC
连接 连接连接 断开
A、 B、 C 中有一个为 0
A、 B、 C 都为 1
输出为 0 ;
输出为 1 。
L=AC
断开 连接连接 断开L=ABC
XX
器件的开关状态不同 , 电路实现逻辑函数也就不同
1 0 11 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 5VGND iD
VT1 VT2 vGS
浮栅无电子
O
编程前
iD
VT1 VT2 vGS
浮栅无电子 浮栅有电子
O
编程前 编程后
5V 5VGND 5V 5VGND
导通截止
L
T1 T2 T3 T4
A B C D
VCC
L=B•C
连接 连接断开 断开连接 连接断开 断开
1 1 1 1
浮栅延长区与漏区 N+ 之间的交叠处有一个厚度约为 80A
(埃 ) 的薄绝缘层——遂道区。当遂道区的电场强度大到一定程度,使漏区与浮栅间出现导电遂道,形成电流将浮栅电荷泄放掉。
遂道MOS管是用电擦除的,擦除速度快。
N+ N+
隧道
P型衬底
源极s 控制栅 gc
漏极d
浮栅gf
d
s
gc
gf
b.浮栅隧道氧化层MOS(Flotox MOS)管
结构特点 :
1.闪速存储器存储单元MOS管的源极 N+区大于漏极 N+区,而 SIMOS管的源极 N+区和漏极 N+区是对称的;
2. 浮栅到 P 型衬底间的氧化绝缘层比 SIMOS管的更薄。
c. 快闪叠栅MOS管开关 ( Flash Memory) (自学)
特点:结构简单、集成度高、
编程可靠、擦除快捷。
N+ N+
P型衬底
源极s 控制栅 gc
漏极d
浮栅gf
d
s
gc
gf
3.PLD 的分类
PROM PLA PAL GAL
低密度可编程逻辑器件( LDPLD)
EPLD CPLD FPGA
高密度可编程逻辑器件( HDPLD)
可编程逻辑器件( PLD)
按集成密度划分为
2 、按结构特点划分
简单 PLD (PAL, GAL)
复杂的可编程器件 (CPLD) :
CPLD 的代表芯片如: Altera的MAX 系列
现场可编程门阵列 (FPGA)
PLD 中的三种与、或阵列
与阵列
B A
L1 L0
可编程 或阵列
固定
与阵列、或阵列均可编程 (PLA)
与阵列固定,或阵列可编程 (PROM)
与阵列可编程,或阵列固定 (PAL 和GAL等 )
与阵列
B A
L1 L0
可编程 或阵列
可编程
与阵列
B A
L1 L0
或阵列
可编程
固定
按 PLD 中的与、或阵列是否编程分
4.5.2 组合逻辑电路的 PLD 实现
例 1 由 PLA 构成的逻辑电路如图所示,试写出该电路的逻辑表达式,并确定其逻辑功能。
写出该电路的逻辑表达式:
Bn An
Sn Cn+1
Cn
nnnnnnn
nnnnnnnnnnnnn
CBCABAC
CBACBACBACBAS
1
AnBnCn
AnBn
AnCn
BnCn
全加器
AnBnCn
AnBnCn
Bn An
Sn Cn+1
Cn AnBnCn
试写出该电路的逻辑表达式。
DCBADCL 0
DCBDCBL 2
BDACBALL 03
BCADBADCBL 1
4.6 用 VerilogHDL 描述组合逻辑电路
4.6.1 组合逻辑电路的门级建模
4.6.2 组合逻辑电路的数据流建模
4.6.3 组合逻辑电路的行为级建模
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 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
11110zx10
输入 1nand
nand 真值表
X- 不确定状态 Z- 高阻态
and 真值表
x0z
x0x
x101
00000zX10
输入 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
inout2
outN
…
out1
inout2outN
…
bufif1 真值表
xxxzzxxxzx
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)bufif1 (b)notif1
(a) (b)
in out
ctrl
in out
ctrl
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
试用 Verilog语言的门级
元件描述 2线 -4线译码器 . 说明部分
功能描述
例 2 用 Verilog 的门级元件进行描述由三态门构成的 2选 1 数据选择器 。
//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 addermodule 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
Ci Co
BA iCBA
AB i)( CBA
≥1
CO
CO D1
S1
D2
//Description of 4-bit full addermodule _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
//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 multiplexermodule 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 multiplexermodule mux4to1_bh(A,SEL,E,L); input [3:0] A; input [1:0] SEL; output L; reg L; always @(A or SEL or E) beginif (E==1) L = 0;
elsecase (SEL) 2’d0: L = A[0];2’d1: L = A[1];2’d2: L = A[2];2’d3: L = A[3];endcase endendmodule