第 4 章 组合逻辑电路
4.5 组合可编程逻辑器件
•PLD 的表示方法、结构和分类
•组合逻辑电路的 PLD 实现
可编程逻辑器件是一种可以由用户定义和设置
逻辑功能的器件。该类器件具有逻辑功能实现
灵活、集成度高、处理速度快和可靠性高等特点。
一、 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
× ×L
L L
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 )
1 )按集成密度划分为
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
或阵列
可编程
固定
3 )按 PLD 中的与、或阵列是否编程分
二、 组合逻辑电路的 PLD 实现
例 1 逻辑电路如图所示,试写出该电路的逻辑表达式,并确定其逻辑功能。
Bn An
Sn Cn+1
Cn
nnnnnnn
nnnnnnnnnnnnn
CBCABAC
CBACBACBACBAS
1
AnBnCn
AnBn
AnCn
BnCn
电路功能:全加器
AnBnCn
AnBnCn
Bn An
Sn Cn+1
Cn AnBnCn
例 2 试写出该电路的逻辑表达式。
DCBADCL 0
DCBDCBL 2
BDACBALL 03
BCADBADCBL 1
例 3:设计一个 2 位二进制数相加的逻辑电路。 X1X0是被加数, Y1Y0 是加数,S1S0 是 X 、 Y 的相加的和,C 是进位。 列出真值表,并用 PLD 实现(在或阵列上打 X )
4.6 用 VerilogHDL描述组合逻辑电路
本部分内容不作为理论课考试要求范围,供同学自学
基本门级元件模型
元件符号 功能说明 元件符号 功能说明
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
11110
zx10
输入1nand
nand 真值表
X- 不确定状态 Z- 高阻态
and 真值表
x0zx0x
x101
00000
zX10
输入1and
输入
2
x
x x
xx
调用名
XX1XZ
XX1XX
11111
XX100
ZX10
输入 1or
输入2
or 真值表
输入2
XXXXZ
XXXXX
XX011
XX100ZX10
输入 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 multiplexer
module mux2to1_bh(A, B, SEL, L); input A, B, SEL;
output L; reg L; //define register variable
always @(SEL or A or B) if (SEL == 1) L = b; // 也可以写成 if (SEL)
L=B; else L = A;
endmodule
例
//Behavioral description of 4-to-1-line 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
本部分课后作业 (Page199)
4.5.14.5.3
逻辑门
组合电路
基本运算:与、或、非
表 示 方 式 :
定 义 、 真 值
表 、 逻 辑 表
达 式 、 波 形
图
分析
设计
模块
逻辑函数:基本规则、化简、转换形式等
模块外部特性:会看功能表(注意使能端)、会使用模块(注意输出特性)
第四章 全部作业 (Page193)
4.1.7 4.2.7
4.4.6 4.4.12 4.4.32
4.5.1 4.5.3
Top Related