4 组合逻辑电路

154

Click here to load reader

description

4 组合逻辑电路. 4.1 组合逻辑电路的分析. 4.2 组合逻辑电路的设计. 4.3 组合逻辑电路中的竞争和冒险. 4.4 常用组合逻辑集成电路. 4.5 组合可编程电路. 4.6 用 Verilog HDL 描述 组合逻辑电路. 教学基本要求. 1. 熟练掌握组合逻辑电路的分析方法和设计方法 2. 掌握编码器、译码器、数据选择器、数值比较器和加法器的逻辑功能及其应用; 3. 学会阅读 MSI 器件的功能表,并能根据设计要求完成电路的正确连接。 4. 掌握可编程逻辑器件的表示方法 , 会用 PLD 实现 组合逻辑电路. 序 关于组合逻辑电路. - PowerPoint PPT Presentation

Transcript of 4 组合逻辑电路

Page 1: 4    组合逻辑电路

4 组合逻辑电路

4.1组合逻辑电路的分析4.2组合逻辑电路的设计4.3组合逻辑电路中的竞争和冒险4.4常用组合逻辑集成电路4.5组合可编程电路4.6用Verilog HDL 描述组合逻辑电路

Page 2: 4    组合逻辑电路

教学基本要求

1. 熟练掌握组合逻辑电路的分析方法和设计方法2. 掌握编码器、译码器、数据选择器、数值比较器和加法器的逻辑功能及其应用;3. 学会阅读 MSI 器件的功能表,并能根据设计要求完成电路的正确连接。 4. 掌握可编程逻辑器件的表示方法 , 会用 PLD 实现组合逻辑电路

Page 3: 4    组合逻辑电路

组合逻辑电路的一般框图

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

组合逻辑电路

Page 4: 4    组合逻辑电路

二 . 组合逻辑电路的分析步骤:

4.1 组合逻辑电路分析

1 、 由逻辑图写出各输出端的逻辑表达式;

2 、 化简和变换逻辑表达式;

3 、 列出真值表;

4 、 根据真值表或逻辑表达式,经分析最后确定其功能。

根据已知逻辑电路,经分析确定电路的的逻辑功能。

一 . 组合逻辑电路分析

Page 5: 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,

电路具有为奇校验功能。如要实现偶校验,电路应做何改变?

Page 6: 4    组合逻辑电路

B

A

1

C

Y

X

Z 1

1

&

&

&

&

&

&

例 2 试分析下图所示组合逻辑电路的逻辑功能。

解: 1 、根据逻辑电路写出各输出端的逻辑表达式,并进行化简和变换。

X = A

BABAY

CACAZ

Page 7: 4    组合逻辑电路

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

Page 8: 4    组合逻辑电路

这个电路逻辑功能是对输入

的二进制码求反码。最高位为

符号位, 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

Page 9: 4    组合逻辑电路

1 、逻辑抽象:根据实际逻辑问题的因果关系确定输入、输出变量,并定义逻辑状态的含义;2 、根据逻辑描述列出真值表;3 、由真值表写出逻辑表达式 ;

5 、 画出逻辑图。4 、根据器件的类型 , 简化和变换逻辑表达式

二、组合逻辑电路的设计步骤

一、组合逻辑电路的设计:根据实际逻辑问题,求出所要求逻辑

功能的最简单逻辑电路。

4.2 组合逻辑电路的设计

Page 10: 4    组合逻辑电路

例 1 某火车站有特快、直快和慢车三种类型的客运列车进出,试用两输入与非门和反相器设计一个指示列车等待进站的逻辑电路, 3 个指示灯一、二、三号分别对应特快、直快和慢车。列车的优先级别依次为特快、直快和慢车,要求当特快列车请求进站时,无论其它两种列车是否请求进站,一号灯亮。当特快没有请求,直快请求进站时,无论慢车是否请求,二号灯亮。当特快和直快均没有请求,而慢车有请求时,三号灯亮。

Page 11: 4    组合逻辑电路

解: 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

Page 12: 4    组合逻辑电路

输 入 输 出

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 、 根据要求将上式变换为与非形式

Page 13: 4    组合逻辑电路

I0

L

0

L1 I1

I2 L

2

& 1

1

1

&

&

1

1

4 、 根据输出逻辑表达式画出逻辑图。

00 IL 101 IIL 2102 IIIL

Page 14: 4    组合逻辑电路

例 2 试设计一个码转换电路,将 4 位格雷码转换为自然二进

制码。可以采用任何逻辑门电路来实现。

解: (1) 明确逻辑功能,列出真值表。

设输入变量为 G3、 G2、 G1、 G0 为格雷码,

当输入格雷码按照从 0到 15 递增排序时,

可列出逻辑电路真值表

输出变量 B3、 B2、 B1和 B0 为自然二进制码。

Page 15: 4    组合逻辑电路

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

输 出输 入

逻辑电路真值表

Page 16: 4    组合逻辑电路

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

Page 17: 4    组合逻辑电路

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

Page 18: 4    组合逻辑电路

(3) 根据逻辑表达式,画出逻辑图

=1

B0

B1

B2

B3

G0

G1

G2

G3

=1

=1

Page 19: 4    组合逻辑电路

4.3 组合逻辑电路中的竞争冒险

4.3.1 产生的竞争冒险的原因4.3.2 消去竞争冒险的方法

Page 20: 4    组合逻辑电路

4.3 组合逻辑电路中的竞争冒险

不考虑门的延时时间

考虑门的延时时间 , 当 A=0 B=1

1 BAL 0 AAL

4.3.1 产生的竞争冒险的原因

Page 21: 4    组合逻辑电路

C

C

AC

CB

L

竞争 : 当一个逻辑门的两个输入端的信号同时向相反方向变化,而变化的时间有差异的现象。冒险 : 两个输入端的信号取值的变化方向是相反时,如门电路输出端的逻辑表达式简化成两个互补信号相乘或者相加,由竞争而可能产生输出干扰脉冲的现象。

Page 22: 4    组合逻辑电路

4.3.2 消去竞争冒险的方法

1. 发现并消除互补变量

A

B

C

1

&

L

B = C = 0 时

为消掉 AA ,变换逻辑函数式为

))(( CABAL

可能出现竞争冒险。

AAF

BCBAACF

Page 23: 4    组合逻辑电路

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

Page 24: 4    组合逻辑电路

3. 输出端并联电容器

如果逻辑电路在较慢速度下工作,为了消去竞争冒险,可以在输出端并联一电容器,致使输出波形上升沿和下降沿变化比较缓慢,可对于很窄的负跳变脉冲起到平波的作用。

4~20pF

Page 25: 4    组合逻辑电路

4.4 若干典型的组合逻辑集成电路4.4.1 编码器

4.4.2 译码器 / 数据分配器

4.4.3 数据选择器

4.4.4 数值比较器4.4.5 算术运算电路

Page 26: 4    组合逻辑电路

1、 ) 编码器 (Encoder) 的概念与分类

编码:赋予二进制代码特定含义的过程称为编码。

如: 8421BCD 码中,用 1000 表示数字 8

如: ASCII 码中,用 1000001 表示字母 A 等

编码器:具有编码功能的逻辑电路。

4.4.1 编码器

4.4 若干典型的组合逻辑集成电路

Page 27: 4    组合逻辑电路

能将每一个编码输入信号变换为不同的二进制的代码输出。

如 8线 -3线编码器:将 8 个输入的信号分别编成 8个 3 位二进制数码输出。

如 BCD 编码器:将 10 个编码输入信号分别编成 10个 4位码输出。

编码器的逻辑功能:

1、 ) 编码器 (Encoder) 的概念与分类

Page 28: 4    组合逻辑电路

编码器的分类:普通编码器和优先编码器。

普通编码器:任何时候只允许输入一个有效编码信号,否则输出就会发生混乱。

优先编码器:允许同时输入两个以上的有效编码信号。当同时输入几个有效编码信号时,优先编码器能按预先设定的优先级别,只对其中优先权最高的一个进行编码。

1、 ) 编码器 (Encoder) 的概念与分类

Page 29: 4    组合逻辑电路

二进制编码器的结构框图

普通二进制编码器

1 、编码器的工作原理

I0

I1

Yn-1

Y0

Y1

1n2 I

二进制 编码器

2n个 输入

n位二进制码输出

Page 30: 4    组合逻辑电路

(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

Page 31: 4    组合逻辑电路

该电路是否可以再简化?

321032100

321032101

IIIIIIIIY

IIIIIIIIY

I0

I1

I2

I3

1

1

1

1

&

&

&

1

Y0

Y1

&

1

Page 32: 4    组合逻辑电路

(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

编码输入

Page 33: 4    组合逻辑电路

  输 入 输 出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 码编码器功能表

Page 34: 4    组合逻辑电路

当所有的输入都为 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

Page 35: 4    组合逻辑电路

3. 优先编码器

优先编码器的提出:

实际应用中,经常有两个或更多输入编码信号同时有效。

必须根据轻重缓急,规定好这些外设允许操作的先后次 序,即优先级别。

识别多个编码请求信号的优先级别,并进行相应编码的逻辑部件称为优先编码器。

Page 36: 4    组合逻辑电路

(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 +=

Page 37: 4    组合逻辑电路

优先编码器 CD4532 的示意框图、引脚图

2 集成电路编码器

CD4532

I0 I1 I2 I3 I4 I5 I6 I7

Y0

Y1

Y2 EI

EO

GS

Page 38: 4    组合逻辑电路

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 电路图

Page 39: 4    组合逻辑电路

优先编码器 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 输出信号?

Page 40: 4    组合逻辑电路

用二片 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

Page 41: 4    组合逻辑电路

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

若有效电平输入

Page 42: 4    组合逻辑电路

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

Page 43: 4    组合逻辑电路

译码器的分类:

译码:译码是编码的逆过程,它能将二进制码翻译成代表某一特定含义的信号 .(即电路的某种状态 )

1 译码器的概念与分类

译码器:具有译码功能的逻辑电路称为译码器。

唯一地址译码器

代码变换器

将一系列代码转换成与之一一对应的有效信号。

将一种代码转换成另一种代码。

二进制译码器 二—十进制译码器显示译码器

常见的唯一地址译码器:

4.4.2 译码器 / 数据分配器

Page 44: 4    组合逻辑电路

2 线 - 4线译码器的逻辑电路 ( 分析)

LHHHHHLHLHHLHLHHLHHLLHHHLLLLHHHH××HY3Y2Y1Y0A0A1E

输出输 入功能表

010 AAEY 011 AAEY

012 AAEY 013 AAEY

Page 45: 4    组合逻辑电路

( 1.) 二进制译码器 x0

x1

xn-1

y0

y1

1ny

EI

使能输入

二进制

译码器

n 个输入端

使能输入端

2n 个输出端

设输入端的个数为 n ,输出端的个数为 M

则有 M=2n

2 、 集成电路译码器

Page 46: 4    组合逻辑电路

(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

输出输 入功能表

Page 47: 4    组合逻辑电路

逻辑符号说明

逻辑符号框外部的符号,表示外部输入或输出信号名称,字母上面的“ —”号说明该输入或输出是低电平有效。符号框内部的输入、输出变量表示其内部的逻辑关系。在推导表达式的过程中,如果低有效的输入或输出变量 ( 如 ) 上面的“ —”号参与运算 ( 如 E 变为 E ) ,则在画逻辑图或验证真值表时,注意将其还原为低有效符号。

E1

A

1

1

1

&

&

&

&

Y0

Y1

Y2

Y3

A

0

Y0

Y2

Y1

Y3

E

A

1A

0

Page 48: 4    组合逻辑电路

(b) 74HC138(74LS138) 集成译码器

引脚图

逻辑图

74HC138

Y0

Y1

Y2

Y3

Y4

Y5

Y6

Y7

E3

E2

E1

A0

A1

A2

Page 49: 4    组合逻辑电路

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

&

&

&

&

&

&

&

&

&

Page 50: 4    组合逻辑电路

74HC138 集成译码器功能表

2E 1E 0Y 1Y 2Y 3Y 4Y 5Y 6Y 7Y

LHHHHHHHHHHLLHHLHHHHHHLHHLLHHHLHHHHHHLHLLHHHHLHHHHLLHLLHHHHHLHHHHHLLLHHHHHHLHHLHLLLHHHHHHHLHHLLLLHHHHHHHHLLLLLLHHHHHHHHH×××××LHHHHHHHH×××HX×HHHHHHHH××××H×

A2 E3

输 出输 入

A1 A0

Page 51: 4    组合逻辑电路

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

Page 52: 4    组合逻辑电路

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

Page 53: 4    组合逻辑电路

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线译码器

Page 54: 4    组合逻辑电路

~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 时

Page 55: 4    组合逻辑电路

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

Page 56: 4    组合逻辑电路

数据分配器:相当于多输出的单刀多掷开关,是一种能将从数据分时送到多个不同的通道上去的逻辑电路。

数据分配器示意图

数据输入

通道选择信号

Y0

Y1

Y7

用 74HC138 组成数据分配器

Page 57: 4    组合逻辑电路

用译码器实现数据分配器

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

Page 58: 4    组合逻辑电路

输 入 输 出

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 译码器作为数据分配器时的功能表

Page 59: 4    组合逻辑电路

集成二集成二––十进制译码器 - 十进制译码器 - 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

Page 60: 4    组合逻辑电路

功能表

十进制数

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

Page 61: 4    组合逻辑电路

显示译码器

脉冲信号 计数器 译码器 驱动器

显示器

KHz

Page 62: 4    组合逻辑电路

1. 七段显示译码器

( 1 )最常用的显示器有:半导体发光二极管和液晶显示器。

a

b

c

d

e

f

g

共阳极显示器

a

b

c

d

e

f

g

共阴极显示器

a

b

cd

f g

e

显示器分段布局图

Page 63: 4    组合逻辑电路

常用的集成七段显示译码器

----------CMOS七段显示译码器 74HC4511

a b c d e f g

D0

74HC4511

D3 D2 D1 LT BL LE

Page 64: 4    组合逻辑电路

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 功能表

Page 65: 4    组合逻辑电路

**××××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 功能表 (续 )

Page 66: 4    组合逻辑电路

例 由 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

Page 67: 4    组合逻辑电路

4.3.3 数据选择器

1 、数据选择器的定义与功能

数据选择的功能:在通道选择信号的作用下,将多个通道的数据分时传送到公共的数据通道上去的。

数据选择器:能实现数据选择功能的逻辑电路。它的作用相当于多个输入的单刀多掷开关,又称“多路开关” 。

通道选择

信号

数据输出

I0

I1

12 nI

Page 68: 4    组合逻辑电路

S1 S0 E

1 1 1

I 0

I 1

I 2

I 3

& ≥ 1

Y

4选 1 数据选择器

2 位地址码输入端

使能信号输入端,低电平有效

1 路数据输出端

( 1 )逻辑电路

数据输入端

Page 69: 4    组合逻辑电路

( 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

Page 70: 4    组合逻辑电路

74LS151 功能框图

D7

Y

Y

E

74HC151

D6D5D4D3D2D1D0

S2 S1 S0

2 、集成电路数据选择器

8选 1 数据选择器 74HC151

Page 71: 4    组合逻辑电路

2 、集成电路数据选择器

2 个互补输出端

8 路数据输入端

1 个使能输入端

3 个地址输入端

74LS151 的逻辑图

Page 72: 4    组合逻辑电路

输 入 输 出使 能 选 择

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 时

Page 73: 4    组合逻辑电路

①数据选择器组成逻辑函数产生器

控制 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 时:

Page 74: 4    组合逻辑电路

比较 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

解 :

Page 75: 4    组合逻辑电路

利用 8 选 1 数据选择器组成函数产生器的一般步骤

a 、将函数变换成最小项表达式

b 、将使器件处于使能状态

c 、地址信号 S2 、 S1 、 S0 作为函数的输入变量d 、处理数据输入 D0~D7 信号电平。逻辑表达式中

有 mi , 则相应 Di =1 ,其他的数据输入端均为 0 。

总结 :

Page 76: 4    组合逻辑电路

用两片 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)

Page 77: 4    组合逻辑电路

字的扩展

将两片 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)

Page 78: 4    组合逻辑电路

③ 实现并行数据到串行数据的转换

S0

S1

L

S2

0 1 0 0 1 1 0 1

Page 79: 4    组合逻辑电路

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 数值比较器

Page 80: 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

输 出输 入

Page 81: 4    组合逻辑电路

2、 2 位数值比较器:

输入:两个 2 位二进制数 A=A1 A0 、 B=B1 B0

能否用 1 位数值比较器设计两位数值比较器 ?

比较两个 2 位二进制数的大小的电路

当高位( A1、 B1)不相等时,无需比较低位( A0、 B0),高位比较的结果就是两个数的比较结果。

当高位相等时,两数的比较结果由低位比较的结果决定。

用一位数值比较器设计多位数值比较器的原则

Page 82: 4    组合逻辑电路

真值表

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)

Page 83: 4    组合逻辑电路

两位数值比较器逻辑图

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)

Page 84: 4    组合逻辑电路

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 的示意框图

Page 85: 4    组合逻辑电路

输 入 输 出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 的功能表

Page 86: 4    组合逻辑电路

用两片 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

Page 87: 4    组合逻辑电路

用两片 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

采用串联扩展方式数值比较器

Page 88: 4    组合逻辑电路

用 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

输出

Page 89: 4    组合逻辑电路

4.4.5 算术运算电路

A

B

S

C HA

FA

Ai

Bi

Ci-1 Ci

Si

@ 在两个 1 位二进制数相加时,不考虑低位来的进位的相加 ---半加 @ 在两个二进制数相加时,考虑低位进位的相加 ---全加 加法器分为半加器和全加器两种。

半加器 全加器

1 、半加器和全加器

两个 4 位二进制数相加 :

Page 90: 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

• 逻辑图

Page 91: 4    组合逻辑电路

( 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

Page 92: 4    组合逻辑电路

• 你能用 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

于是可得全加器的逻辑表达式为

Page 93: 4    组合逻辑电路

加法器的应用

111010

0110

010100

全加器真值表

111011101001110010100000

CSCBAABC 有奇数个 1时 S为 1 ;ABC 有偶数个 1 和全为 0 时S为 0 。----- 用全加器组成三位二进制代码奇偶校验器

用全加器组成八位二进制代码奇偶校验器,电路应如何连接?

Page 94: 4    组合逻辑电路

( 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

Page 95: 4    组合逻辑电路

定义两个中间变量 Gi和 Pi : Gi= AiBi

( 2 )超前进位加法器

提高运算速度的基本思想:设计进位信号产生电路,在输入每位的加数和被加数时,同时获得该位全加的进位信号,而无需等待最低位的进位信号。

定义第 i 位的进位信号( Ci ):

1 iiiiii C)BA(BAC

Ci= Gi+ Pi Ci-1 1 iiii CBAS

)BA(p iii

Page 96: 4    组合逻辑电路

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

Page 97: 4    组合逻辑电路

集成超前进位产生器 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

逻辑符号

Page 98: 4    组合逻辑电路

超前进位集成 4 位加法器 74LS283

74HC283 逻辑框图 74HC283引脚图

Page 99: 4    组合逻辑电路

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 逻辑框图

Page 100: 4    组合逻辑电路

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

在片内是超前进位,而片与片之间是串行进位。

Page 101: 4    组合逻辑电路

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

Page 102: 4    组合逻辑电路

3 减法运算

在实际应用中,通常是将减法运算变为加法运算来处理,即采用加补码的方法完成减法运算。

若 n 位二进制的原码为 N 原,则与它相对应的 2 的补码为

N 补 =2N N 原

补码与反码的关系式N 补 =N 反 +1

设两个数 A、 B 相减,利用以上两式可

得A B=A+B 补 2n=A+B 反

+12n

Page 103: 4    组合逻辑电路

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

Page 104: 4    组合逻辑电路

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 位减法运算逻辑图

Page 105: 4    组合逻辑电路

4.5 组合可编程逻辑器件

4.5.1 PLD 的结构、表示方法及分类

4.5.2 组合逻辑电路的 PLD 实现

Page 106: 4    组合逻辑电路

4.5 组合可编程逻辑器件

可编程逻辑器件是一种可以由用户定义和设置

逻辑功能的器件。该类器件具有逻辑功能实现

灵活、集成度高、处理速度快和可靠性高等特点。

Page 107: 4    组合逻辑电路

4.5.1 PLD 的结构、表示方法及分类

与门阵列

或门阵列乘积项 和项

PLD 主体

输入电路

输入信号 互补

输入

输出电路

输出函数

反馈输入信号

• 可由或阵列直接输出,构成组合输出;• 通过寄存器输出,构成时序方式输出。

1、 PLD 的基本结构

Page 108: 4    组合逻辑电路

输出

或门阵列

与门阵列

输入

B A

Y Z

(b)

与门阵列

或门阵列乘积项 和项

互补

输入

Page 109: 4    组合逻辑电路

2. PLD 的逻辑符号表示方法

(1) 连接的方式

硬线连接单元

被编程接通单

被编程擦除单元

Page 110: 4    组合逻辑电路

(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

Page 111: 4    组合逻辑电路

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

输入缓冲器

Page 112: 4    组合逻辑电路

(3) 编程连接技术

A L

B C D

L

VCC A B C D

熔丝

PLD 表示的与门 熔丝工艺的与门原理图

Page 113: 4    组合逻辑电路

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

Page 114: 4    组合逻辑电路

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

Page 115: 4    组合逻辑电路

(4) 浮栅MOS管开关

用不同的浮栅MOS管连接的 PLD ,编程信息的擦除方

法也不同。 SIMOS管连接的 PLD ,采用紫外光照射擦

除; Flotox MOS管和快闪叠栅MOS管,采用电擦除方

法。

浮栅MOS管

叠栅注入 MOS(SIMOS)管

浮栅隧道氧化层MOS(Flotox MOS)管

快闪 (Flash)叠栅MOS管

Page 116: 4    组合逻辑电路

当浮栅上带有负电荷时,使得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

编程前 编程后

Page 117: 4    组合逻辑电路

5V 5VGND 5V 5VGND

导通截止

Page 118: 4    组合逻辑电路

L

T1 T2 T3 T4

A B C D

VCC

L=B•C

连接 连接断开 断开连接 连接断开 断开

1 1 1 1

Page 119: 4    组合逻辑电路

浮栅延长区与漏区 N+ 之间的交叠处有一个厚度约为 80A

(埃 ) 的薄绝缘层——遂道区。当遂道区的电场强度大到一定程度,使漏区与浮栅间出现导电遂道,形成电流将浮栅电荷泄放掉。

遂道MOS管是用电擦除的,擦除速度快。

N+ N+

隧道

P型衬底

源极s 控制栅 gc

漏极d

浮栅gf

d

s

gc

gf

b.浮栅隧道氧化层MOS(Flotox MOS)管

Page 120: 4    组合逻辑电路

结构特点 :

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

Page 121: 4    组合逻辑电路

3.PLD 的分类

PROM PLA PAL GAL

低密度可编程逻辑器件( LDPLD)

EPLD CPLD FPGA

高密度可编程逻辑器件( HDPLD)

可编程逻辑器件( PLD)

按集成密度划分为

Page 122: 4    组合逻辑电路

2 、按结构特点划分

简单 PLD (PAL, GAL)

复杂的可编程器件 (CPLD) :

CPLD 的代表芯片如: Altera的MAX 系列

现场可编程门阵列 (FPGA)

Page 123: 4    组合逻辑电路

PLD 中的三种与、或阵列

与阵列

B A

L1 L0

可编程 或阵列

固定

与阵列、或阵列均可编程 (PLA)

与阵列固定,或阵列可编程 (PROM)

与阵列可编程,或阵列固定 (PAL 和GAL等 )

与阵列

B A

L1 L0

可编程 或阵列

可编程

与阵列

B A

L1 L0

或阵列

可编程

固定

按 PLD 中的与、或阵列是否编程分

Page 124: 4    组合逻辑电路

4.5.2 组合逻辑电路的 PLD 实现

例 1 由 PLA 构成的逻辑电路如图所示,试写出该电路的逻辑表达式,并确定其逻辑功能。

写出该电路的逻辑表达式:

Bn An

Sn Cn+1

Cn

Page 125: 4    组合逻辑电路

nnnnnnn

nnnnnnnnnnnnn

CBCABAC

CBACBACBACBAS

1

AnBnCn

AnBn

AnCn

BnCn

全加器

AnBnCn

AnBnCn

Bn An

Sn Cn+1

Cn AnBnCn

Page 126: 4    组合逻辑电路

试写出该电路的逻辑表达式。

DCBADCL 0

DCBDCBL 2

BDACBALL 03

BCADBADCBL 1

Page 127: 4    组合逻辑电路

4.6 用 VerilogHDL 描述组合逻辑电路

4.6.1 组合逻辑电路的门级建模

4.6.2 组合逻辑电路的数据流建模

4.6.3 组合逻辑电路的行为级建模

Page 128: 4    组合逻辑电路

4.6 用 VerilogHDL 描述组合逻辑电路

用 VerilogHDL 描述组合逻辑电路有三种不同抽象

级别:组合逻辑电路的门级描述、组合逻辑电路的

数据流描述、组合逻辑电路的行为级描述。

VerilogHDL 描述的电路就是该电路的 VerilogHDL

模型。

Page 129: 4    组合逻辑电路

•行为描述方式:

一般使用下述语句描述,可以对组合、时序逻辑电路建模。

1) initial 语句

2) always 语句

•数据流描述方式:

一般使用 assign语句描述,主要用于对组合逻辑电路建模。

•门级描述:

一般使用 Primitive(内部元件)、自定义的下层模块对电路描述。主要用于层次化设计中。

Page 130: 4    组合逻辑电路

end

基本门级元件模型

元件符号 功能说明 元件符号 功能说明

and 多输入端的与门 nand 多输入端的与非门or 多输入端的或门 nor 多输入端的或非门xor 多输入端的异或门 xnor 多输入端的异或非门buf 多输出端的缓冲器 not 多输出端的反相器

bufif1控制信号高电平有效的三态缓冲器 notif1

控制信号高电平有效的三态反相器

bufif0控制信号低电平有效的三态缓冲器 notif0

控制信号低电平有效的三态反相器

多输入门多输出门三态门

4.6.1 组合逻辑电路的门级建模

门级建模 : 将逻辑电路图用 HDL规定的文本语言表示出来。

Page 131: 4    组合逻辑电路

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

Page 132: 4    组合逻辑电路

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

调用名

Page 133: 4    组合逻辑电路

XX1XZ

XX1XX

11111

XX100

ZX10

输入 1or

输入2

or 真值表

输入2

XXXXZ

XXXXX

XX011

XX100

ZX10

输入 1xor

xor 真值表

Page 134: 4    组合逻辑电路

2 、多输出门

允许有多个输出,但只有一个输入。

not N1( out1, out2,…, in);

xx10

zx10

输 入buf

输 出

buf 真值表

输 出 xx01

zx10

输 入not

not 真值表

buf B1( out1, out2,…, in);out1

inout2

outN

out1

inout2outN

Page 135: 4    组合逻辑电路

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

Page 136: 4    组合逻辑电路

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线译码器 . 说明部分

功能描述

Page 137: 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

Page 138: 4    组合逻辑电路

5 、分层次的电路设计方法简介

4 位全加器的层次结构框图

分层次的电路设计 : 在电路设计中,将两个或多个模块组合起来描述电路逻辑功能的设计方法。

设计方法:自顶向下和自底向上两种常用的设计方法

4位全加器

1位全加器 1位全加器 1位全加器 1位全加器

半加器 或门 半加器 或门 . . . . . .

Page 139: 4    组合逻辑电路

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

Page 140: 4    组合逻辑电路

//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

Page 141: 4    组合逻辑电路

//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

Page 142: 4    组合逻辑电路

4.6.2 组合逻辑电路的数据流建模

数据流建模能在较高的抽象级别描述电路的逻辑功能。通过逻辑综合软件,能够自动地将数据流描述转换成为门级电路。

Page 143: 4    组合逻辑电路

Verilog HDL 的运算符

类型 符号 功能说明 类型 符号 功能说明

算术运算符(双目运算符)

+-*/

%

二进制加二进制减二进制乘二进制除求模

关系运算符(双目运算符)

><

>=<===!=

大于小于大于或等于小于或等于等于不等于

位运算符(双目运算符)

~&|^

^~ 或 ~^

按位取反按位与按位或按位异或按位同或

缩位运算符(单目运算符)

&~&

|~|^

^~ 或 ~^

缩位与缩位与非缩位或缩位或非缩位异或缩位同或

逻辑运算符!

&&||

逻辑非逻辑与逻辑或

移位运算符(双目运算符)

>><<

右移左移

Page 144: 4    组合逻辑电路

位运算符与缩位运算的比较

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

缩位运算

Page 145: 4    组合逻辑电路

对同一个操作数的重复拼接还可以双重大括号构成的运算符{{}}例如 {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 。

Page 146: 4    组合逻辑电路

一般用法:

condition_expr?expr1:expr2;

条件运算符

是三目运算符,运算时根据条件表达式的值选择表达式。

首先计算第一个操作数 condition_expr 的值,如果结果为逻辑 1 ,

则选择第二个操作数 expr1 的值作为结果返回,结果为逻辑 0 ,

选择第三个操作数 expr2 的值作为结果返回。

Page 147: 4    组合逻辑电路

2 、数据流建模举例

连续赋值语句的执行过程是:只要逻辑表达式右边变量的逻辑值发生变化,则等式右边表达式的值会立即被计算出来并赋给左边的变量。

注意,在 assign语句中,左边变量的数据类型必须是 wire 型。

数据流建模使用的基本语句是连续赋值语句 assign ,该语句用于对 wire 型变量进行赋值,它由关键词 assign开始,后面跟着由操作数和运算符组成的逻辑表达式。

2选 1 数据选择器的连续赋值描述是: wire A,B,SEL,L; //声明 4 个连线型变量assign L=(A & ~SEL)|(B & SEL); // 连续赋值

Page 148: 4    组合逻辑电路

//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

Page 149: 4    组合逻辑电路

//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 。

Page 150: 4    组合逻辑电路

4.6.3 组合逻辑电路的行为级建模

行为级建模就是描述数字逻辑电路的功能和算

法。

一般使用 always 结构,后面跟着一系列过程赋值语句,

给 reg 类型的变量赋值。

Page 151: 4    组合逻辑电路

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 ,按“真”处理,并执行相应的语句。

Page 152: 4    组合逻辑电路

是一种多分支条件选择语句,一般形式如下:case (case_expr) item_expr1: statement1; item_expr2: statement2;…… default: default_statement; //default语句可以省略

2 、多路分支语句( case语句)

Page 153: 4    组合逻辑电路

//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

Page 154: 4    组合逻辑电路

//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