第 4 章 组合逻辑电路

52
第 4 第 第第第第第第 4.5 组组组组组组组组组 PLD 组组组组组 组组组组组 组组组组组组组 PLD 组组

description

第 4 章 组合逻辑电路. 4.5 组合可编程逻辑器件. PLD 的表示方法、结构和分类 组合逻辑电路的 PLD 实现. 可编程逻辑器件是一种可以由用户定义和设置 逻辑功能的器件。该类器件具有逻辑功能实现 灵活、集成度高、处理速度快和可靠性高等特点。. 反馈输入信号. 一、 PLD 的结构、表示方法及分类. 1 、 PLD 的基本结构. 可由或阵列直接输出,构成组合输出; 通过寄存器输出,构成时序方式输出 。. PLD 主体. 输出函数. 输入信号. 输入 电路. 与门 阵列. 或门 阵列. 输出 电路. 互补 输入. - PowerPoint PPT Presentation

Transcript of 第 4 章 组合逻辑电路

Page 1: 第  4 章    组合逻辑电路

第 4 章 组合逻辑电路

4.5 组合可编程逻辑器件

•PLD 的表示方法、结构和分类

•组合逻辑电路的 PLD 实现

Page 2: 第  4 章    组合逻辑电路

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

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

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

Page 3: 第  4 章    组合逻辑电路

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

与门阵列

或门阵列乘积项 和项

PLD 主体

输入电路

输入信号 互补

输入

输出电路

输出函数

反馈输入信号

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

1、 PLD 的基本结构

Page 4: 第  4 章    组合逻辑电路

输出

或门阵列

与门阵列

输入

B A

Y Z

(b)

与门阵列

或门阵列乘积项 和项

互补

输入

Page 5: 第  4 章    组合逻辑电路

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

(1) 连接的方式

硬线连接单元

被编程接通单

被编程擦除单元

Page 6: 第  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

× ×L

L L

Page 7: 第  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 8: 第  4 章    组合逻辑电路

(3) 编程连接技术

A L

B C D

L

VCC A B C D

熔丝

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

Page 9: 第  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 10: 第  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 11: 第  4 章    组合逻辑电路

(4) 浮栅MOS 管开关

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

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

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

法。

浮栅MOS 管

叠栅注入 MOS(SIMOS) 管

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

快闪 (Flash) 叠栅 MOS 管

Page 12: 第  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 13: 第  4 章    组合逻辑电路

5V 5VGND 5V 5VGND

导通截止

Page 14: 第  4 章    组合逻辑电路

L

T1 T2 T3 T4

A B C D

VCC

L=B•C

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

1 1 1 1

Page 15: 第  4 章    组合逻辑电路

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

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

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

N+ N+

隧道

P型衬底

源极s 控制栅 gc

漏极d

浮栅gf

d

s

gc

gf

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

Page 16: 第  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 17: 第  4 章    组合逻辑电路

3.PLD 的分类

PROM PLA PAL GAL

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

EPLD CPLD FPGA

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

可编程逻辑器件( PLD )

1 )按集成密度划分为

Page 18: 第  4 章    组合逻辑电路

2 )按结构特点划分

简单 PLD (PAL, GAL)

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

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

现场可编程门阵列 (FPGA)

Page 19: 第  4 章    组合逻辑电路

PLD 中的三种与、或阵列

与阵列

B A

L1 L0

可编程 或阵列

固定

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

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

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

与阵列

B A

L1 L0

可编程 或阵列

可编程

与阵列

B A

L1 L0

或阵列

可编程

固定

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

Page 20: 第  4 章    组合逻辑电路

二、 组合逻辑电路的 PLD 实现

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

Bn An

Sn Cn+1

Cn

Page 21: 第  4 章    组合逻辑电路

nnnnnnn

nnnnnnnnnnnnn

CBCABAC

CBACBACBACBAS

1

AnBnCn

AnBn

AnCn

BnCn

电路功能:全加器

AnBnCn

AnBnCn

Bn An

Sn Cn+1

Cn AnBnCn

Page 22: 第  4 章    组合逻辑电路

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

DCBADCL 0

DCBDCBL 2

BDACBALL 03

BCADBADCBL 1

Page 23: 第  4 章    组合逻辑电路

例 3:设计一个 2 位二进制数相加的逻辑电路。 X1X0是被加数, Y1Y0 是加数,S1S0 是 X 、 Y 的相加的和,C 是进位。 列出真值表,并用 PLD 实现(在或阵列上打 X )

Page 24: 第  4 章    组合逻辑电路

4.6 用 VerilogHDL描述组合逻辑电路

本部分内容不作为理论课考试要求范围,供同学自学

Page 25: 第  4 章    组合逻辑电路

基本门级元件模型

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

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

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

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

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

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

多输入门多输出门三态门

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

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

Page 26: 第  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 27: 第  4 章    组合逻辑电路

1 、多输入门

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

and A1( out, in1, in2, in3 );

输入

2 xxx1z

xxx1x

xx011

11110

zx10

输入1nand

nand 真值表

X- 不确定状态 Z- 高阻态

and 真值表

x0zx0x

x101

00000

zX10

输入1and

输入

2

x

x x

xx

调用名

Page 28: 第  4 章    组合逻辑电路

XX1XZ

XX1XX

11111

XX100

ZX10

输入 1or

输入2

or 真值表

输入2

XXXXZ

XXXXX

XX011

XX100ZX10

输入 1xor

xor 真值表

Page 29: 第  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 30: 第  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 31: 第  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 32: 第  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 33: 第  4 章    组合逻辑电路

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

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

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

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

4位全加器

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

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

Page 34: 第  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 35: 第  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 36: 第  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 37: 第  4 章    组合逻辑电路

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

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

Page 38: 第  4 章    组合逻辑电路

Verilog HDL 的运算符

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

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

+-*/

%

二进制加二进制

减二进制

乘二进制

除求模

关系运算符(双目运算符

><

>=<===!=

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

位运算符(双目运算符)

~&|^

^~ 或~^

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

或按位同

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

&~&

|~|^

^~ 或~^

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

逻辑运算符!

&&||

逻辑非逻辑与逻辑或

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

>><<

右移左移

Page 39: 第  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 40: 第  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 41: 第  4 章    组合逻辑电路

一般用法:

condition_expr?expr1:expr2;

条件运算符

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

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

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

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

Page 42: 第  4 章    组合逻辑电路

2 、数据流建模举例

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

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

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

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

Page 43: 第  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 44: 第  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 45: 第  4 章    组合逻辑电路

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

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

法。

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

句,给 reg 类型的变量赋值。

Page 46: 第  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 47: 第  4 章    组合逻辑电路

是一种多分支条件选择语句,一般形式如下:case (case_expr)

item_expr1: statement1; item_expr2: statement2;

…… default: default_statement; //default 语句可以省

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

Page 48: 第  4 章    组合逻辑电路

//Behavioral description of 2-to-1-line multiplexer

module mux2to1_bh(A, B, SEL, L); input A, B, SEL;

output L; reg L; //define register variable

always @(SEL or A or B) if (SEL == 1) L = b; // 也可以写成 if (SEL)

L=B; else L = A;

endmodule

Page 49: 第  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

Page 50: 第  4 章    组合逻辑电路

本部分课后作业 (Page199)

4.5.14.5.3

Page 51: 第  4 章    组合逻辑电路

逻辑门

组合电路

基本运算:与、或、非

表 示 方 式 :

定 义 、 真 值

表 、 逻 辑 表

达 式 、 波 形

分析

设计

模块

逻辑函数:基本规则、化简、转换形式等

模块外部特性:会看功能表(注意使能端)、会使用模块(注意输出特性)

Page 52: 第  4 章    组合逻辑电路

第四章 全部作业 (Page193)

4.1.7 4.2.7

4.4.6 4.4.12 4.4.32

4.5.1 4.5.3