4 组合逻辑电路

Post on 04-Jan-2016

103 views 9 download

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 组合逻辑电路

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