第 9章 存储器和可编程逻辑器件第 9 章 存储器和可编程逻辑器件
9.1 半导体存储器
9.2 可编程逻辑器件第 9章 存储器和可编程逻辑器件
9.1 半导体存储器
9.1.1 只读存储器 (ROM)
1,ROM的结构
ROM主要由地址译码器,存储矩阵和输出缓冲器三部分组成,其基本结构如图 9 – 1 所示 。
第 9章 存储器和可编程逻辑器件图 9-1 ROM的基本结构地址译码器存储矩阵输出缓冲器
D
m -1
D
0
W
0
W
1
W
2 - 1
n
A
0
A
1
A
n - 1
三态控制信息单元
( 字)
存储单元
第 9章 存储器和可编程逻辑器件存储矩阵是存放信息的主体,它由许多存储单元排列组成 。 每个存储单元存放一位二值代码 (0 或 1),若干个存储单元组成一个,字,(也称一个信息单元 )。 地址译码器有 n条地址输入线 A0~An-1,2n条译码输出线 W0~W2n-1,每一条译码输出线 Wi称为,字线,,它与存储矩阵中的一个
,字,相对应 。 因此,每当给定一组输入地址时,译码器只有一条输出字线 Wi被选中,该字线可以在存储矩阵中找到一个相应的,字,,并将字中的 m位信息 Dm-1~D0送至输出缓冲器 。 读出 Dm-1~D0的每条数据输出线 Di也称为,位线,,每个字中信息的位数称为,字长,。
第 9章 存储器和可编程逻辑器件
ROM的存储单元可以用二极管构成,也可以用双极型三极管或 MOS管构成 。 存储器的容量用存储单元的数目来表示,写成,字数乘位数,的形式 。 对于图 9-1 的存储矩阵有 2n个字,每个字的字长为 m,因此整个存储器的存储容量为 2n× m位 。 存储容量也习惯用 K(1 K=1024)为单位来表示,
例如 1 K× 4,2 K× 8 和 64 K× 1的存储器,其容量分别是
1024× 4 位,2048× 8 位 和 65 536× 1 位 。
输出缓冲器是 ROM的数据读出电路,通常用三态门构成,它不仅可以实现对输出数据的三态控制,以便与系统总线联接,还可以提高存储器的带负载能力 。
第 9章 存储器和可编程逻辑器件图 9-2 二极管 ROM结构图地址译码器
W
0
W
1
W
2
W
3
R R R R
输出缓冲器
D
3
D
2
D
1
D
0
D
3
D
2
D
1
D
0
三态控制存储矩阵
A
1
A
0
′ ′ ′ ′
第 9章 存储器和可编程逻辑器件图 9-2 是具有两位地址输入和四位数据输出的 ROM结构图,其存储单元用二极管构成 。 图中,W0~W3四条字线分别选择存储矩阵中的四个字,每个字存放四位信息 。 制作芯片时,若在某个字中的某一位存入,1”,则在该字的字线 Wi与位线 Di之间接入二极管,反之,就不接二极管 。
读出数据时,首先输入地址码,并对输出缓冲器实现三态控制,则在数据输出端 D3~D0可以获得该地址对应字中所存储的数据 。 例如,当 A1A0=00时,W0=1,W1=W2=W3=0,
即此时 W0被选中,读出 W0对应字中的数据 D3D2D1D0=1001。
同理,当 A1A0分别为 01,10,11时,依次读出各对应字中的数据分别为 0111,1110,0101。 因此,该 ROM全部地址内所存储的数据可用表 9-1 表示 。
第 9章 存储器和可编程逻辑器件表 9-1 图 9-2 ROM的数据表地 址 数 据
A1 A0 D3 D2 D1 D0
0 0
0 1
1 0
1 1
1 0 0 1
0 1 1 1
1 1 1 0
0 1 0 1
第 9章 存储器和可编程逻辑器件
2,ROM
从存储器的角度看,只要将逻辑函数的真值表事先存入 ROM,便可用 ROM实现该函数 。 例如,在表 9-1 的
ROM数据表中,如果将输入地址 A1,A0看成两个输入逻辑变量,而将数据输出 D3,D2,D1,D0看成一组输出逻辑变量,则 D3,D2,D1,D0就是 A1,A0的一组逻辑函数,表 9-
1就是这一组多输出组合逻辑函数的真值表,因此该 ROM
可以实现表 9-1 中的四个函数 (D3,D2,D1,D0),其表达式为
010
101
0
0
10
1
1
01
0
10
1
2
0
1
01
3
AAAAAAD
AAAAD
AAAAAAD
AAAAD




(9-1)
第 9章 存储器和可编程逻辑器件从组合逻辑结构来看,ROM中的地址译码器形成了输入变量的所有最小项,即每一条字线对应输入地址变量的一个最小项 。 在图 9-2 中,
013012011010,AAWAAWAAWAAW,、
因此式 (9-1)又可以写为:
3100
211
3212
203
WWWD
WWD
WWWD
WWD




第 9章 存储器和可编程逻辑器件图 9-3 ROM的阵列框图与阵列或阵列
W
0
W
1
W
2 - 1
n
D
m -1
D
0
A
n -1
A
0
第 9章 存储器和可编程逻辑器件图 9-4 图 9-2 ROM的阵列图
1
W
0
W
1
W
2
W
3
D
3
D
2
D
1
D
0
A
1
A
0
1
与阵列或阵列第 9章 存储器和可编程逻辑器件用 ROM
① 根据逻辑函数的输入,输出变量数目,确定 ROM
的容量,选择合适的 ROM。
② 写出逻辑函数的最小项表达式,画出 ROM的阵列图 。
③ 根据阵列图对 ROM进行编程。
第 9章 存储器和可编程逻辑器件
【 例 9-1 】 用 ROM设计一个四位二进制码转换为格雷码的代码转换电路 。
解,① 输入是四位自然二进制码 B3~B0,输出是四位格雷码 G3~G0,故选 24× 4 的 ROM。
② 四位二进制码转换为格雷码的真值表,即 ROM的编程数据表如表 9-2 所示 。 由此可写出输出函数的最小项之和式为
)14,13,10,9,6,5,2,1(
)13,12,11,10,5,4,3,2(
)11,10,9,8,7,6,5,4(
)15,14,13,12,11,10,9,8(
2
1
2
3
mG
mG
mG
mG
第 9章 存储器和可编程逻辑器件表 9-2 二进制码转换为格雷码的真值表第 9章 存储器和可编程逻辑器件
③ 用 ROM实现码组转换的阵列图及逻辑符号图分别如图 9-5(a),(b)所示 。
图 9-5 例 9-1
(a) 二进制码转为格雷码的阵列图; (b) 逻辑符号图
1
B
3
1
B
2
1
B
1
1
B
0
W
0
W
1
W
2
W
3
W
4
W
5
W
6
W
7
W
8
W
9
W
10
W
11
W
12
W
13
W
14
W
15
G
2
G
1
G
0
G
3存储矩阵或阵列


A
3
A
2
A
1
A
0
2 × 4
R O M
4
D
3
D
2
D
1
D
0
B
3
B
2
B
1
B
0
G
3
G
2
G
1
G
0
( a )
( b )
地址译码器与阵列


第 9章 存储器和可编程逻辑器件
3,ROM
ROM的编程是指将信息存入 ROM的过程 。 根据编程和擦 除 的 方 法 不 同,ROM 可 分 为 掩 模 ROM,可编程
ROM(PROM)和可擦除的可编程 ROM(EPROM)三种类型 。
1) 掩模 ROM
掩模 ROM中存放的信息是由生产厂家采用掩模工艺专门为用户制作的,这种 ROM出厂时其内部存储的信息就已经,固化,在里边了,所以也称固定 ROM。 它在使用时只能读出,不能写入,因此通常只用来存放固定数据,固定程序和函数表等 。
第 9章 存储器和可编程逻辑器件
2) 可编程 ROM(PROM)
PROM在出厂时,存储的内容为全 0(或全 1),用户根据需要,可将某些单元改写为 1(或 0)。 这种 ROM采用熔丝或
PN结击穿的方法编程,由于熔丝烧断或 PN结击穿后不能再恢复,因此 PROM只能改写一次 。
熔丝型 PROM的存储矩阵中,每个存储单元都接有一个存储管,但每个存储管的一个电极都通过一根易熔的金属丝接到相应的位线上,如图 9-6 所示 。 用户对 PROM编程是逐字逐位进行的 。 首先通过字线和位线选择需要编程的存储单元,然后通过规定宽度和幅度的脉冲电流,将该存储管的熔丝熔断,这样就将该单元的内容改写了 。
第 9章 存储器和可编程逻辑器件图 9-6 熔丝型 PROM的存储单元
U
CC
字线
W
i
位线
D
i
熔丝
( a ) ( b )
字线熔丝位线第 9章 存储器和可编程逻辑器件采用 PN结击穿法 PROM的存储单元原理图如图 9-7(a)
所示,字线与位线相交处由两个肖特基二极管反向串联而成 。 正常工作时二极管不导通,字线和位线断开,相当于存储了,0”。 若将该单元改写为,1”,可使用恒流源产生约 100~150 mA电流使 V2击穿短路,存储单元只剩下一个正向连接的二极管 V1(见图 (b)),相当于该单元存储了,1”;未击穿 V2的单元仍存储,0”。
第 9章 存储器和可编程逻辑器件图 9-7 PN结击穿法 PROM的存储单元字线
W
i
位线
D
i
( a )
V
1
V
2 位线
D
i
字线
W
i
( b )
第 9章 存储器和可编程逻辑器件
3) 可擦除的可编程 ROM(EPROM)
这类 ROM利用特殊结构的浮栅 MOS管进行编程,
ROM中存储的数据可以进行多次擦除和改写 。
最早出现的是用紫外线照射擦除的 EPROM(Ultra-
Violet Erasable Programmable Read-Only Memory,简称
UVEPROM)。 不久又出现了用电信号可擦除的可编程
ROM(Electrically Erasable Programmable Read-Only
Memory,简称 E2PROM)。 后来又研制成功的快闪存储器
(Flash Memory)也是一种用电信号擦除的可编程 ROM。
第 9章 存储器和可编程逻辑器件
① EPROM的存储单元采用浮栅雪崩注入 MOS管 (Floating-gate
Avalanche-Injuction Metal-Oxide-Semiconductor,简称 FAMOS管 )或叠栅注入 MOS管 (Stacked-gate Injuction Metal-Oxide-Semiconductor,简称
SIMOS管 )。 图 9-8是 SIMOS管的结构示意图和符号,它是一个 N沟道增强型的 MOS管,有 Gf和 Gc两个栅极 。 Gf栅没有引出线,而是被包围在二氧化硅 (SiO2)中,称之为浮栅,Gc为控制栅,它有引出线 。 若在漏极 D端加上约几十伏的脉冲电压,使得沟道中的电场足够强,则会造成雪崩,产生很多高能量的电子 。 此时若在 Gc上加高压正脉冲,形成方向与沟道垂直的电场,便可以使沟道中的电子穿过氧化层面注入到 Gf,于是 Gf栅上积累了负电荷 。 由于 Gf栅周围都是绝缘的二氧化硅,
泄漏电流很小,所以一旦电子注入到浮栅之后,就能保存相当长时间
(通常浮栅上的电荷 10年才损失 30%)。
第 9章 存储器和可编程逻辑器件图 9-8 SIMOS管的结构和符号
DS
G
c
G
f S i O
2
N

N

P
D
SG
f
G
c
第 9章 存储器和可编程逻辑器件如果浮栅 Gf上积累了电子,则使该 MOS管的开启电压变得很高 。 此时给控制栅 (接在地址选择线上 )加 +5V电压时,该
MOS管仍不能导通,相当于存储了,0”;反之,若浮栅 Gf上没有积累电子,MOS管的开启电压较低,因而当该管的控制栅被地址选中后,该管导通,相当于存储了,1”。 可见,
SIMOS管是利用浮栅是否积累负电荷来表示信息的 。 这种
EPROM出厂时为全,1”,即浮栅上无电子积累,用户可根据需要写,0”。
擦除 EPROM的方法是将器件放在紫外线下照射约 20分钟,
浮栅中的电子获得足够能量,从而穿过氧化层回到衬底中,
这样可以使浮栅上的电子消失,MOS管便回到了未编程时的状态,从而将编程信息全部擦去,相当于存储了全,1”。 对
EPROM的编程是在编程器上进行的,编程器通常与微机联用 。
第 9章 存储器和可编程逻辑器件
② E2PROM的存储单元如图 9-9 所示,图中 V2是选通管,V1是另一种叠栅 MOS管,称为浮栅隧道氧化层
MOS管 (Floating-gate Tunnel Oxide MOS,简称 Flotox),
其结构如图 9-10 所示 。 Flotox管也是一个 N沟道增强型的 MOS管,与 SIMOS管相似,它也有两个栅极 ——控制栅
Gc和浮栅 Gf,不同的是 Flotox管的浮栅与漏极区 (N+)之间有一小块面积极薄的二氧化硅绝缘层 (厚度在 2× 10-8m以下 )的区域,称为隧道区 。 当隧道区的电场强度大到一定程度 (> 107V/cm)时,漏区和浮栅之间出现导电隧道,电子可以双向通过,形成电流 。 这种现象称为隧道效应 。
第 9章 存储器和可编程逻辑器件图 9-9 E2PROM的存储单元
D
1
S
1
V
1
V
2
G
c
位线


W
i
( 字线)
D
i
第 9章 存储器和可编程逻辑器件图 9-10 Flotox管的结构和符号
D
S G cG f
N

N

P
隧道区
D
G
f
G
c
S
第 9章 存储器和可编程逻辑器件在图 9-9电路中,若使 Wi=1,Di接地,则 V2导通,V1漏极 (D1)接近地电位 。 此时若在 V1控制栅 Gc上加 21 V正脉冲,
通过隧道效应,电子由衬底注入到浮栅 Gf,脉冲过后,控制栅加 +3V电压,由于 V1浮栅上积存了负电荷,因此 V1截止,在位线 Di读出高电平,1”; 若 V1控制栅接地,Wi=1,
Di上加 21V正脉冲,使 V1漏极获得约 +20 V的高电压,则浮栅上的电子通过隧道返回衬底,脉冲过后,正常工作时 V1
导通,在位线上则读出,0”。 可见,Flotox管是利用隧道效应使浮栅俘获电子的 。 E2PROM的编程和擦除都是通过在漏极和控制栅上加一定幅度和极性的电脉冲实现的,虽然已改用电压信号擦除了,但 E2PROM仍然只能工作在它的读出状态,作 ROM使用 。
第 9章 存储器和可编程逻辑器件
③ 快闪存储器 (Flash Memory)是新一代电信号擦除的可编程 ROM。 它既吸收了 EPROM结构简单,编程可靠的优点,
又保留了 E2PROM用隧道效应擦除快捷的特性,而且集成度可以做得很高 。
图 9-11(a)是快闪存储器采用的叠栅 MOS管示意图 。 其结构与 EPROM中的 SIMOS管相似,两者区别在于浮栅与衬底间氧化层的厚度不同 。 在 EPROM中氧化层的厚度一般为
30~40 nm,在快闪存储器中仅为 10~15 nm,而且浮栅和源区重叠的部分是源区的横向扩散形成的,面积极小,因而浮栅 -
源区之间的电容很小,当 Gc和 S之间加电压时,大部分电压将降在浮栅 -源区之间的电容上 。 快闪存储器的存储单元就是用这样一只单管组成的,如图 9-11(b)所示 。
第 9章 存储器和可编程逻辑器件图 9-11
(a) 叠栅 MOS管; (b) 存储单元
DS
G
c
G
f
N

N

P
隧道区
D
G
c
S
G
c
位线字线
D
S
W
i
U
SS
D
i
( a ) ( b )
第 9章 存储器和可编程逻辑器件快闪存储器的写入方法和 EPROM相同,即利用雪崩注入的方法使浮栅充电 。
在读出状态下,字线加上 +5V,若浮栅上没有电荷,则叠栅 MOS管导通,位线输出低电平;如果浮栅上充有电荷,
则叠栅管截止,位线输出高电平 。
擦除方法是利用隧道效应进行的,类似于 E2PROM写 0
时的操作 。 在擦除状态下,控制栅处于 0电平,同时在源极加入幅度为 12 V左右,宽度为 100 ms的正脉冲,在浮栅和源区间极小的重叠部分产生隧道效应,使浮栅上的电荷经隧道释放 。 但由于片内所有叠栅 MOS管的源极连在一起,所以擦除时是将全部存储单元同时擦除,这是不同于 E2PROM
的一个特点 。
第 9章 存储器和可编程逻辑器件
9.1.2 随机存取存储器 (RAM)
随机存取存储器也称随机存储器或随机读 /写存储器,
简称 RAM。 RAM工作时可以随时从任何一个指定的地址写入 (存入 )或读出 (取出 )信息 。 根据存储单元的工作原理不同,
RAM分为静态 RAM和动态 RAM。
1,静态随机存储器 (SRAM)
1)
SRAM主要由存储矩阵,地址译码器和读 /写控制电路三部分组成,其框图如图 9-12 所示 。
第 9章 存储器和可编程逻辑器件图 9-12 SRAM的基本结构行地址译码器存储矩阵
A
0
A
1
A
i
D
m -1
D
0
列地址译码器读/ 写控制电路
A
i + 1
A
n - 1
CS
R / W
I / O
0
I / O
m - 1
第 9章 存储器和可编程逻辑器件存储矩阵由许多存储单元排列组成,每个存储单元能存放一位二值信息 (0或 1),在译码器和读 /写电路的控制下,进行读 /写操作 。
地址译码器一般都分成行地址译码器和列地址译码器两部分,行地址译码器将输入地址代码的若干位
A0~Ai译成某一条字线有效,从存储矩阵中选中一行存储单元;列地址译码器将输入地址代码的其余若干位
(Ai+1~An-1)译成某一根输出线有效,从字线选中的一行存储单元中再选一位 (或 n位 ),使这些被选中的单元与读 /
写电路和 I/O(输入 /输出端 )接通,以便对这些单元进行读
/写操作 。
第 9章 存储器和可编程逻辑器件读 /写控制电路用于对电路的工作状态进行控制 。 CS
称为片选信号,当 CS=0时,RAM工作,CS=1时,所有
I/O端均为高阻状态,不能对 RAM进行读 /写操作 。 称为读
/写控制信号 。 R/W=1 时,执行读操作,将存储单元中的信息送到 I/O端上;当 R/W=0时,执行写操作,加到 I/O端上的数据被写入存储单元中 。
第 9章 存储器和可编程逻辑器件
2) SRAM
静态 RAM的存储单元如图 9-13 所示,图 9-13(a)是由六个 NMOS管 (V1~V6)组成的存储单元 。 V1,V2构成的反相器与 V3,V4构成的反相器交叉耦合组成一个 RS触发器,可存储一位二进制信息 。 Q和 Q是 RS触发器的互补输出 。 V5,V6
是行选通管,受行选线 X(相当于字线 )控制,行选线 X为高电平时 Q和 Q的存储信息分别送至位线 D和位线 D。 V7,V8是列选通管,受列选线 Y控制,列选线 Y为高电平时,位线 D和 D
上的信息被分别送至输入输出线 I/O和 I/O,从而使位线上的信息同外部数据线相通 。
第 9章 存储器和可编程逻辑器件图 9-13 SRAM
(a) 六管 NMOS存储单元; (b)六管 CMOS存储单元
U
DD
V
4V
2
Q Q
V
1
V
3
V
5
V
6
V
7 V
8
I / O I / O
列选线 Y
行选线 X
存储单元位线
D
位线
D
( a )
( b )
U
DD
V
4
V
2
V
6
V
5
V
1
V
3
V
7
V
8
Y
I / O I / O
位线
D
位线
D
X
第 9章 存储器和可编程逻辑器件读出操作时,行选线 X和列选线 Y同时为,1”,则存储信息 Q和 Q被读到 I/O线和 I/O线上 。 写入信息时,X,Y线也必须都为,1”,同时要将写入的信息加在 I/O线上,经反相后 I/O线上有其相反的信息,信息经 V7,V8 和 V5,V6加到触发器的 Q
端和 Q端,也就是加在了 V3和 V1的栅极,从而使触发器触发,
即信息被写入 。
由于 CMOS电路具有微功耗的特点,目前大容量的静态
RAM中几乎都采用 CMOS存储单元,其电路如图 9-13(b)所示 。
CMOS存储单元结构形式和工作原理与图 9-13(a)相似,不同的是图 (b)中,两个负载管 V2,V4改用了 P沟道增强型 MOS管,
图中用栅极上的小圆圈表示 V2,V4为 P沟道 MOS管,栅极上没有小圆圈的为 N沟道 MOS管 。
第 9章 存储器和可编程逻辑器件
2,动态随机存储器 (DRAM)
动态 RAM的存储矩阵由动态 MOS存储单元组成 。 动态
MOS存储单元利用 MOS管的栅极电容来存储信息,但由于栅极电容的容量很小,而漏电流又不可能绝对等于 0,所以电荷保存的时间有限 。 为了避免存储信息的丢失,必须定时地给电容补充漏掉的电荷 。 通常把这种操作称为,刷新,
或,再生,,因此 DRAM内部要有刷新控制电路,其操作也比静态 RAM复杂 。 尽管如此,由于 DRAM存储单元的结构能做得非常简单,所用元件少,功耗低,所以目前已成为大容量 RAM的主流产品 。
第 9章 存储器和可编程逻辑器件动态 MOS存储单元有四管电路,三管电路和单管电路等 。 四管和三管电路比单管电路复杂,但外围电路简单,
一般容量在 4 K以下的 RAM多采用四管或三管电路 。 图 9-
14(a)为四管动态 MOS存储单元电路 。 图中,V1和 V2为两个 N沟道增强型 MOS管,它们的栅极和漏极交叉相连,信息以电荷的形式储存在电容 C1和 C2上,V5,V6 是同一列中各单元公用的预充管,φ是脉冲宽度为 1μs而周期一般不大于 2ms的预充电脉冲,CO1,CO2是位线上的分布电容,其容量比 C1,C2大得多 。
第 9章 存储器和可编程逻辑器件图 9-14 动态 MOS
(a) 四管动态 MOS存储单元; (b) 单管动态 MOS存储单元
( a )
V
4
V
3
V
1
V
2
V
7
V
8
Y
D D
位线
D
位线
D
C
1
C
2
C
O 1
C
O 2
QQ
预充脉冲
V
5 V
6
X
存储单元字选线位线 D
( 数据线)
C
O
输出电容
V
C
S
( b )
U
C 1
U
C 2
U
C C
第 9章 存储器和可编程逻辑器件若 C1被充电到高电位,C2上没有电荷,则 V1导通,V2
截止,此时 Q=0,Q=1这一状态称为存储单元的 0状态;反之,若 C2充电到高电位,C1上没有电荷,则 V2导通,V1截止,Q=1,Q=0,此时称为存储单元的 1 状态 。 当字选线
X为低电位时,门控管 V3,V4均截止 。 在 C1和 C2上电荷泄漏掉之前,存储单元的状态维持不变,因此存储的信息被记忆 。 实际上,由于 V3,V4存在着泄漏电流,电容 C1,C2
上存储的电荷将慢慢释放,因此每隔一定时间要对电容进行一次充电,即进行刷新 。 两次刷新之间的时间间隔一般不大于 20ms。
第 9章 存储器和可编程逻辑器件在读出信息之前,首先加预充电脉冲 φ,预充管 V5,V6导通,电源 UDD向位线上的分布电容 CO1,CO2充电,使 D和 D两条位线都充到 UDD。 预充脉冲消失后,V5,V6截止,CO1,CO2上的信息保持 。
要读出信息时,该单元被选中 (X,Y均为高电平 ),V3,V4
导通,若原来存储单元处于 0 状态 (Q=0,Q=1),即 C1上有电荷,V1导通,C2上无电荷,V2截止,这样 CO1经 V3,V1放电到
0,使位线 D为低电平,而 CO2因 V2截止无放电回路,所以经 V4
对 C1充电,补充了 C1漏掉的电荷,结果读出数据仍为 D=1,D=0;
反之,若原存储信息为 1(Q=1,Q=0),C2上有电荷,则预充电后 CO2经 V4,V2放电到 0,而 CO1经 V3对 C2补充充电,读出数据为 D=0,D=1,可见位线 D,D上读出的电位分别和 C2,C1上的电位相同 。 同时每进行一次读操作,实际上也进行了一次补充充电即刷新 。
第 9章 存储器和可编程逻辑器件写入信息时,首先该单元被选中,V3,V4导通,Q和 Q
分别与两条位线连通 。 若需要写 0,则在位线 D上加高电位,
D上加低电位 。 这样 D上的高电位经 V4向 C1充电,使 Q=1,
而 C2经 V3向 D放电,使 Q=0,于是该单元写入了 0 状态 。
图 9-14(b) 是单管动态 MOS存储单元,它只有一个
NMOS管和存储电容器 CS,CO是位线上的分布电容 (CO>>CS)。
显然,采用单管存储单元的 DRAM,其容量可以做得更大 。
写入信息时,字线为高电平,V导通,位线上的数据经过 V
存入 CS 。
第 9章 存储器和可编程逻辑器件读出信息时也使字线为高电平,V管导通,这时 CS经
V向 CO充电,使位线获得读出的信息 。 设位线上原来的电位 UO =0,CS原来存有正电荷,电压 US为高电平,因读出前后电荷总量相等,因此有 USCS=UO(CS+CO),因
CO>>CS,所以 UO<<US。 例如读出前 US=5V,CS/CO=1/50,
则位线上读出的电压将仅有 0.1V,而且读出后 CS上的电压也只剩下 0.1V,这是一种破坏性读出 。 因此每次读出后,要对该单元补充电荷进行刷新,同时还需要高灵敏度读出放大器对读出信号加以放大 。
第 9章 存储器和可编程逻辑器件
9.1.3 存储器容量的扩展
1.
存储器芯片的字长多数为一位,四位,八位等 。 当实际的存储系统的字长超过存储器芯片的字长时,需要进行位扩展 。
位扩展可以利用芯片的并联方式实现,图 9-15是用八片
1024× 1 位的 RAM扩展为 1024× 8 位 RAM的存储系统框图 。
图中八片 RAM的所有地址线,R/W,CS分别对应并接在一起,
而每一片的 I/O端作为整个 RAM的 I/O端的一位 。
ROM芯片上没有读 /写控制端 R/W,位扩展时其余引出端的连接方法与 RAM相同。
第 9章 存储器和可编程逻辑器件图 9-15 RAM的位扩展连接法
A
0
A
1
… A
9
R / W CS
1 0 2 4 × 1
R A M
I / O
A
0
A
1
… A
9
R / W CS
1 0 2 4 × 1
R A M
I / O

A
0
A
1
… A
9
R / W CS
1 0 2 4 × 1
R A M
I / O
I / O
1
I / O
2

I / O
7
… …
A
0
A
1

A
9
R / W
CS

第 9章 存储器和可编程逻辑器件
2,字数的扩展字数的扩展可以利用外加译码器控制芯片的片选 (CS)输入端来实现 。 图 9 -16 是用字扩展方式将四片 256× 8 位的
RAM扩展为 1024× 8 位 RAM的系统框图 。 图中,译码器的输入是系统的高位地址 A9,A8,其输出是各片 RAM的片选信号 。
若 A9A8=01,则 RAM(2)片的 CS=0,其余各片 RAM的 CS均为 1,
故选中第二片 。 只有该片的信息可以读出,送到位线上,读出的内容则由低位地址 A7~A0决定 。 显然,四片 RAM轮流工作,任何时候,只有一片 RAM处于工作状态,整个系统字数扩大了四倍,而字长仍为八位 。
ROM的字扩展方法与上述方法相同 。
第 9章 存储器和可编程逻辑器件图 9-16 RAM的字扩展
A
0
A
1
… A
7
R / W CS
2 5 6 × 8
R A M
I / O
0
I / O
7

( 1 )
A
0
A
1
… A
7
R / W CS
2 5 6 × 8
R A M
I / O
0
I / O
7

( 2 )
A
0
A
1
… A
7
R / W CS
2 5 6 × 8
R A M
I / O
0
I / O
7

( 3 )
A
0
A
1
… A
7
R / W CS
2 5 6 × 8
R A M
I / O
0
I / O
7

( 4 )
A
0
A
1


A
7
R / W
Y
0
… … …
A
8
A
9
2 —4 译码器
Y
1
Y
2
Y
3
I / O
0
I / O
7

A
0
A
1
第 9章 存储器和可编程逻辑器件
9.2 可编程逻辑器件
9.2.1 概述自 20世纪 60年代以来,数字集成电路已经历了从 SSI、
MSI,LSI到 VLSI的发展过程 。 数字集成电路按照芯片设计方法的不同大致可以分为三类,① 通用型中,小规模集成电路; ② 用软件组态的大规模,超大规模集成电路,
如微处理器,单片机等; ③ 专用集成电路 (ASIC-
Application Specific Integrated Circuit)。
ASIC是一种专门为某一应用领域或为专门用户需要而设计,制造的 LSI或 VLSI电路,它可以将某些专用电路或电子系统设计在一个芯片上,构成单片集成系统 。
第 9章 存储器和可编程逻辑器件
9.2.2 低密度可编程逻辑器件低密度可编程逻辑器件的集成密度约为每片 700 个等效门以下,它主要包括 PROM,FPLA,PAL和 GAL四种器件 。
1,PLD
1) PLD
由于 PLD内部电路的连接十分庞大,所以对其进行描述时采用了一种与传统方法不相同的简化方法 。
第 9章 存储器和可编程逻辑器件图 9-17 PLD缓冲器表示法
PLD的输入、输出缓冲器都采用了互补输出结构,其表示法如图 9-17 所示。
A
A
A
第 9章 存储器和可编程逻辑器件
PLD的与门表示法如图 9-18 所示 。 图中与门的输入线通常画成行 (横 )线,与门的所有输入变量都称为输入项,并画成与行线垂直的列线以表示与门的输入 。 列线与行线相交的交叉处若有,·”,表示有一个耦合元件固定连接;
,×,表示编程连接;交叉处若无标记则表示不连接 (被擦除 )。 与门的输出称为乘积项 P,图中与门的输出 P=A·B·D。
或门可以用类似的方法表示,也可以用传统的方法表示,如图 9-19 所示。
第 9章 存储器和可编程逻辑器件图 9-18 PLD与门表示法
A B C D
P ( 乘积项)
P
A
B
D
输入项第 9章 存储器和可编程逻辑器件图 9-19 PLD或门表示法
F ( 或项)
P
1
P
3
P
4
F
P
1
P
2
P
3
P
4
第 9章 存储器和可编程逻辑器件图 9-20 PLD与门简略表示法
A B
P
1
= 0
P
2
= 0
P
3
= 1
第 9章 存储器和可编程逻辑器件图 9-20是 PLD中与门的简略表示法 。 图中与门 P1的全部输入项接通,因此 P1=A·A·B·B=0,这种状态称为与门的缺省 (Default)状态 。 为简便起见,对于这种全部输入项都接通的缺省状态,可以用带有,×,的与门符号表示,如图中的 P2=P1=0 表示缺省状态 。 P3中任何输入项都不接通,即所有输入都悬空,因此 P3=1,也称为
,悬浮 1”状态 。
第 9章 存储器和可编程逻辑器件
2) PLD
图 9-21 PLD基本结构框图输入电路与阵列或阵列输出电路输入项 乘积项 或项
输出
输入第 9章 存储器和可编程逻辑器件表 9-3 四种 PLD的结构特点类型阵 列输 出 方 式与 或
PROM
FPLA
PAL
GAL
固定可编程可编程可编程可编程可编程固定固定
TS,OC
TS,OC,H,L
TS,I/O,寄存器用户定义第 9章 存储器和可编程逻辑器件图 9-22 PROM结构与门阵列
( 固定)
Q
2
Q
1
Q
0
或门阵列
( 可编程)
I
2
I
1
I
0
第 9章 存储器和可编程逻辑器件图 9-23 FPLA结构与门阵列
( 可编程)
I
2
I
1
I
0
Q
2
Q
1
Q
0
或门阵列
( 可编程)
第 9章 存储器和可编程逻辑器件图 9-24 PAL和 GAL基本门阵列
I
2
I
1
I
0
Q
0
Q
1
Q
2
或门阵列
(固定)
与门阵列
(可编程)
图9 - 2 4
第 9章 存储器和可编程逻辑器件
2,现场可编程逻辑阵列 (FPLA)
1970年制成的 PROM是最早出现的 PLD。 由前面分析可知,PROM由全译码的与阵列和可编程的或阵列组成,
由于其阵列规模大,速度低,因而它的基本用途是用作存储器,如软件固化,显示查寻等 。
FPLA是 20 世纪 70 年代中期在 PROM基础上发展起来的 PLD,它的与阵列和或阵列均可编程 。 采用 FPLA实现逻辑函数时只需要运用化简后的与或式,由与阵列产生与项,再由或阵列完成与项相或的运算后便得到输出函数 。
第 9章 存储器和可编程逻辑器件
【 例 9-2】 试用 FPLA实现例 9-1要求的四位二进制码转换为格雷码的代码转换电路 。
解,根据表 9-2所示的码组转换真值表,将多输出函数化简后得出最简输出表达式:
0
10
10
1
21
21
2
32
32
33
BBBBG
BBBBG
BBBBG
BG



第 9章 存储器和可编程逻辑器件图 9-25 例 9-2FPLA的阵列图与阵列或阵列
B
3
B
2
B
1
B
0
G
3
G
2
G
1
G
0
图9 - 2 5
第 9章 存储器和可编程逻辑器件图 9-26 时序型 FPLA结构图与阵列或阵列
·
·
·
·· ·
X
1
X
n
触发器
·
·
·
·
·
·
Z
1
Z
m
W
1
W
l
Q
k
Q
1
·
·
·
图9 - 2 6
·
·
·
第 9章 存储器和可编程逻辑器件
【 例 9-3 】 试用 FPLA和 JK触发器实现模 4 可逆计数器 。
当 X=0 时进行加法计数; X=1时进行减法计数 。
解,由给定的功能可画出模 4 可逆计数器的状态图如图 9-27(a)所示 。
根据状态图可求得时序电路的激励方程和输出方程为
1212
1122
11
1
QQXQQXZ
QXQXKJ
KJ



第 9章 存储器和可编程逻辑器件图 9-27 例 9-3模 4
(a) 状态图; (b) 阵列图
00
11 10
X / Z
Q
2
Q
1 0 / 0
1 / 0
1 / 1 1 / 0
1 / 0
0 / 0
1 / 1 0 / 0
Q
1
C 1
1 K
1 J
C 1
1 K
1 J
Q
1
Q
2
Q
2
Z
X
Q
2
Q
2
Q
1
Q
1
1
1
( a )
( b )
图9 - 2 7
01
CP
第 9章 存储器和可编程逻辑器件
3,可编程阵列逻辑 (PAL)
1) PAL
(1)
这种结构的输出端只能输出信号,不能兼做输入,例如四个乘积项的或非门输出结构如图 9-28(a)所示 。 输入信号I
经过输入缓冲器与,输入行,相连 。 图中的输出部分采用或非门,输出用 O标记,表示低电平有效 。 若输出部分采用或门,则为高电平有效 。 有的器件还用互补输出的或门,则称为互补型输出 。 这种输出结构只适用于实现组合逻辑函数 。
目前常用的产品有 PAL10H8(10输入,8 输出,高电平有效 )、
PAL10L8,PAL16C1(16输入,1 输出,互补型 )等 。
第 9章 存储器和可编程逻辑器件图 9-28 PAL
(a) 专用输出结构; (b) 可编程 I/O结构; (c) 寄存器输出结构; (d) 异或型输出结构输入行
O
I
( a )
输入、反馈及I / O
( b )
I
I / O
第 9章 存储器和可编程逻辑器件图 9-28 PAL
(a) 专用输出结构; (b) 可编程 I/O结构; (c) 寄存器输出结构; (d) 异或型输出结构输入、反馈及I / O
I
Q
Q
D
Q
( c )
输入、反馈及I / O
I
Q
Q
D( d )
时钟
EN
时钟
EN
P
1
P
2
F
Q
Q
第 9章 存储器和可编程逻辑器件
(2) 可编程 I/O
可编程 I/O结构如图 9-28(b)所示 。 图中,或门经三态缓冲器由 I/O端引出,三态门受最上面一个与门所对应的乘积项控制,I/O端的信号也可经过缓冲器反馈到与阵列的输入 。
当与门输出为,0”时,三态门禁止,输出呈高阻状态,
I/O引脚作输入使用;当与门输出为,1”时,三态门被选通,
I/O 引脚作输出使用 。 这种结构的产品有 PAL16L8,
PAL20L10等 。
第 9章 存储器和可编程逻辑器件
(3)
寄存器输出结构如图 9-28(c)所示 。 这种结构输出端有一个 D触发器,在时钟上升沿作用下先将或门的输出 (输入乘积项的和 )寄存在 D触发器的 Q端,当使能信号 EN有效时,
Q端的信号经三态缓冲器反相后输出,输出为低电平有效 。
触发器的 Q输出还可以通过反馈缓冲器送至与阵列的输入端,因而这种结构的 PAL能记忆原来的状态,从而实现时序逻辑功能 。 这种结构的 PAL产品有 PAL16R4,PAL16R8
等 。
第 9章 存储器和可编程逻辑器件
(4)
异或型输出结构如图 9-28(d)所示 。 其输出部分有两个或门,它们的输出经异或门进行异或运算后再经 D触发器和三态缓冲器输出 。 这种结构不仅便于对与 —或逻辑阵列输出的函数求反,还可以实现对寄存器状态进行保持操作 。 例如图
9-28(d)中,P1=I,P2=Q,F=P1 P2。 当 I=0时,D=F=0 Q=Q,
所以 Qn+1=Q,即时钟来到时触发器状态保持不变;当 I=1时,
D=F=1 Q=Q,所以 Qn+1=Q 。 这 种 结 构 的 PAL 产 品 有
PAL20X4,PAL20X8等 。
PAL器件除了以上几种结构外,还有算术选通反馈结构 。
另外,PAL产品有 20 多种不同的型号可供用户选用 。

第 9章 存储器和可编程逻辑器件
2) PAL
PAL器件是在 FPAL器件之后第一个具有典型实用意义的可编程逻辑器件 。
PAL和 SSI,MSI通用标准器件相比有许多优点,① 提高了功能密度,节省了空间 。 通常一片 PAL可以代替 4~12 片
SSI或 2~4 片 MSI。 同时 PAL只有 20 多种型号,但可以代替
90% 的通用 SSI,MSI器件,因而进行系统设计时,可以大大减少器件的种类 。 ② 提高了设计的灵活性,且编程和使用都比较方便 。 ③ 有上电复位功能和加密功能,可以防止非法复制 。
PAL的主要缺点是由于它采用了双极型熔丝工艺 (PROM
结构 ),只能一次性编程,因而使用者仍要承担一定的风险 。
另外 PAL器件输出电路结构的类型繁多,因此也给设计和使用带来一些不便 。
第 9章 存储器和可编程逻辑器件
4,通用阵列逻辑 (GAL)
GAL是 Lattice公司于 1985年首先推出的新型可编程逻辑器件 。 它采用了电擦除,电可编程的 E2CMOS工艺制作,可以用电信号擦除并反复编程上百次 。 GAL器件的输出端设置了可编程的输出逻辑宏单元 (OLMC-Output Logic Macro Cell),通过编程可以将 OLMC设置成不同的输出方式 。 这样同一型号的 GAL
器件可以实现 PAL器件所有的各种输出电路工作模式,即取代了大部分 PAL器件,因此称为通用可编程逻辑器件 。
GAL器件分两大类:一类为普通型 GAL,其与或阵列结构与 PAL相似,如 GAL16V8,ispGAL16Z8,GAL20V8都属于这一类;另一类为新型 GAL,其与或阵列均可编程,与 FPLA结构相似,主要有 GAL39V8。
第 9章 存储器和可编程逻辑器件
1) GAL的基本结构 图 9-29
GAL16V8
逻辑图及
(a) 逻辑图;
(b) (b) 引脚图
2
O LM C
( 19 )
CK
19
8
3
O LM C
( 18 )
18
16
4
O LM C
( 17 )
17
24
5
O LM C
( 16 )
16
32
6
O LM C
( 15 )
15
40
7
O LM C
( 14 )
14
48
8
O LM C
( 13 )
13
56
9
O LM C
( 12 )
12
63
11
OE
1
0
0 8 16 24 31
( a )
G A L
1 6 V 8
1
2
3
4
5
6
7
8
9
20
19
18
17
16
15
14
13
12
1110G N D
U
CC
( b )
图9 - 2 9
第 9章 存储器和可编程逻辑器件
① 8 个输入缓冲器和 8 个输出反馈 /输入缓冲器 。
② 8 个输出逻辑宏单元 OLMC,8 个三态缓冲器,每个 OLMC对应 1 个 I/O引脚 。
③ 由 8× 8 个与门构成的与阵列,共形成 64 个乘积项,
每个与门有 32 个输入项,由 8 个输入的原变量,反变量 (16)
和 8 个反馈信号的原变量,反变量 (16)组成,故可编程与阵列共有 32× 8× 8=2048 个可编程单元 。
④ 系统时钟 CK和三态输出选通信号 OE的输入缓冲器。
第 9章 存储器和可编程逻辑器件
2) 输出逻辑宏单元 (OLMC)
(1) OLMC的结构图 9-30 OLMC的内部结构来自与逻辑阵列
0
1
P
T
M
U
X
X O R (n )
Q
QD
AC
1
( n )
AC
0
反馈
F
M
U
X
10
11
01
00
AC
0
* AC
1
( m )*
AC
1
( n )
11
10
01
00
T
S
U
X
M
0
1
O
U
X
M
U
CC
G
2
来自邻级输出( m )
I / O ( n )
C L K OE
C L K OE
图9 - 3 0
G
1
第 9章 存储器和可编程逻辑器件每个 OLMC包含或门阵列中的一个或门 。 一个或门有 8
个输入端,和来自与阵列的 8 个乘积项 (PT)相对应 。 其中 7
个直接相连,第一个乘积项 (图中最上边的一项 )经 PTMUX
相连或门输出为有关乘积项之和 。
异或门的作用是选择输出信号的极性 。 当 XOR(n)为 1时,
异或门起反相器作用,否则起同相器作用 。 XOR(n)是控制字中的一位,n为引脚号 。
D触发器 (寄存器 )对异或门的输出状态起记忆 (存储 )作用,使 GAL适用于时序逻辑电路 。
4个多路开关 (MUX)在结构控制字段作用下设定输出逻辑宏单元的组态。
第 9章 存储器和可编程逻辑器件
PTMUX是乘积项选择器,在 AC1(n)·AC0控制下选择第一乘积项或地 (0)送至或门输入端 。
OMUX是输出类型选择器,在 AC1(n)+AC0控制下选择组合型 (异或门输出 )或寄存型 (经 D触发器存储后输出 )逻辑运算结果送到输出缓冲器 。
TSMUX是三态缓冲器的使能信号选择器,在 AC1(n)和
AC1控制下从 UCC,地,OE或第一乘积项中选择 1 个作为输出缓冲器的使能信号 。
FMUX是反馈源选择器 。 在 AC1(n),AC0控制下选择 D触发器的 Q,本级 OLMC输出,邻级 OLMC的输出或地电平作为反馈源送回与阵列作为输入信号 。
第 9章 存储器和可编程逻辑器件
(2)
GAL的结构控制字共 82 位,每位取值为,1”或,0”,
如图 9-31 所示 。 图中 XOR(n)和 AC1(n)字段下的数字对应各个 OLMC的引脚号 。
图 9-31 GAL的结构控制字图9 - 3 1
3 2 位乘积项禁止
4位
X O R (n )
1位
S Y N
8位
A C 1 (n )
1位
A C 0
4位
X O R ( n )
3 2 位乘积项禁止
12 15 ~12 19 16 ~ 19~
( n ) ( n )( n )
P T 6 3 P T 3 2~ P T 3 1 ~ P T 0
82 位第 9章 存储器和可编程逻辑器件
SYN 决定 GAL器件是具有寄存器型 (时序型 )输出能力
(SYN=0),还 是 纯 粹 组 合 型 输 出 能 力 (SYN=1) 。 在
OLMC(12)和 OLMC(19)中,SYN还替代 AC1(n),SYN替代
AC0作为 FMUX的选择输入,以维护与 PAL器件的兼容性 。
AC0,AC1(n) 方式控制位 。 8 个 OLMC公用 1位 AC0。
AC1(n)共 8 位,每个 OLMC(n)有 1位,n为引脚号 (12~19)。
AC0,AC1(n)两者配合控制各 MUX的工作 。
XOR(n) 极性控制位,共 8 位,每个 OLMC(n)有 1 位,
它通过异或门来控制输出极性 。 XOR(n)=0时,输出低有效;
XOR(n)=1 时,输出高有效 。
第 9章 存储器和可编程逻辑器件
PT(n) 积项禁止位,共 64 位,和与阵列中 64 个乘积项
(PT0~PT63)相对应,用以禁止 (屏蔽 )某些不用的乘积项 。 在
SYN,AC0,AC1(n)组合控制下,OLMC(n)可组态配置成 5 种工作模式,表 9-4 列出了各种模式下对控制位的配置和选择 。
图 9-32(a)~(e)分别表示不同配置模式下 OLMC的等效电路 。
OLMC组态的实现,即结构控制字各控制位的设定都是由开发软件和硬件自动完成的 。
从以上分析看出 GAL器件由于采用了 OLMC,所以使用更加灵活,只要写入不同的结构控制字,就可以得到不同类型的输出电路结构 。 这些电路结构完全可以取代 PAL器件的各种输出电路结构 。
第 9章 存储器和可编程逻辑器件表 9-4 OLMC工作模式的配置选择第 9章 存储器和可编程逻辑器件反馈
C L K OE
NC
I / O ( n )
OEC L K
O L M C (n )
X O R (n )
来自与逻辑阵列来自邻级输出( m )
Q
D
NC
( e )
反馈
C L K
NC
OE
NC
NC
NC
I / O ( n )
OE
NC
C L K
O L M C (n )
X O R (n )
来自与逻辑阵列来自邻级输出( m )
( c )
反馈
C L K
NC
OE
NC
NC
NC
I / O ( n )
OE
NC
C L K
O L M C (n )
X O R (n )
U
CC
来自与逻辑阵列来自邻级输出( m )
( b )
反馈
C L K OE
NC
NC
I / O ( n )
OEC L K
O L M C (n )
X O R (n )
来自与逻辑阵列来自邻级输出( m )
(至寄存器输出单元) (至寄存器输出单元)
本宏单元未连
( d )
反馈
C L K
NC
OE
NC
NC
NC
I / O ( n )
OE
NC
C L K
O L M C (n )
来自邻级输出( m )
( a )
至另一个邻级图9 - 3 2
图 9-32 OLMC 5 种工
(a) 专用输入模式;
(b) 专用组合输出模式;
(c) 反馈组合输出模式;
(d) 时序电路中的组合输出模式;
(e) 寄存器输出模式第 9章 存储器和可编程逻辑器件
3) 行地址映射图 9-33 GAL16V8 行地址映射图移位寄存器
S
CL K
S
D1
与阵列
P T 6 3
S
D0
32
或阵列
P T 031
电子标签 电子标签
0
31
结构控制字保留地址空间
32
33
59
60
61
62
63
加密单元保留整体擦除行地址图9 - 3 3
8 2 位
~
第 9章 存储器和可编程逻辑器件
GAL的逻辑功能,工作模式都是靠编程来实现的 。 编程时写入的数据按行安排,GAL16V8 共分 64 行,供用户使用的有 36 行 。 图 9-33 表示 GAL16V8 编程单元的地址分配和功能划分情况,因为它并不是实际的空间布局图,所以称为行地址映射图 。
第 0~31 行对应与逻辑阵列的编程单元,编程后可产生
0~63 共 64 个乘积项 。
第 32 行是电子标签 (ES),供用户存放各种备查的信息 。
如器件的编号,电路的名称,编程日期,编程次数等 。
第 33~59 行是制造厂家保留的地址空间,用户不能利用。
第 9章 存储器和可编程逻辑器件第 60 行是结构控制字,共有 82 位,用于设定 8 个
OLMC的工作模式和 64 个乘积项的禁止 。
第 61 行是一位加密单元 。 这一位被编程以后,将不能对与逻辑阵列作进一步的编程或读出验证,因此可以实现对电路设计结果的保密 。 只有在与逻辑阵列被整体擦除时,才能将加密单元同时擦除 。 但是电子标签的内容不受加密单元的影响,在加密单元被编程后电子标签的内容仍可读出 。
第 63 行只包含一位,用于整体擦除 。
对 GAL编程时是逐行进行的,被编程的数据从第 9 脚以串行方式送入 64 位移位寄存器,寄存器装满一次,就对
GAL阵列写一行 。
第 9章 存储器和可编程逻辑器件
4) GAL
GAL
① 采用电擦除工艺和高速编程方法,使编程改写变得方便,
快速,整个芯片改写只需数秒钟,一片可改写 100 次以上 。
② 采用高性能的 E2CMOS工艺,保证了 GAL的高速度和低功耗 。 存取速度为 12~40 ns,功耗仅为双极性 PAL器件的 1/2
或 1/4(90 mA或 45 mA),编程数据可保存 20 年以上 。
③ 采用可编程的输出逻辑宏单元 (OLMC),使得 GAL器件对复杂逻辑门设计具有极大的灵活性 。 GAL16V8 可以仿真或代替 20 脚的 PAL器件约 21 种 。
第 9章 存储器和可编程逻辑器件
④ 可预置和加电复位全部寄存器,具有 100%的功能可测试性 。
⑤ 备有加密单元,可防止他人抄袭设计电路 。
⑥ 备有电子标签 (ES),方便了文档管理,提高了生产效率。
GAL和 PAL一样都属于低密度 PLD,其共同缺点是规模小,
每片相当于几十个等效门电路,只能代替 2~4 片 MSI器件,远达不到 LSI和 VLSI专用集成电路的要求 。 另外,GAL在使用中还有许多局限性,如一般 GAL只能用于同步时序电路,各
OLMC中的触发器只能同时置位或清 0,每个 OLMC中的触发器和或门还不能充分发挥其作用,且应用灵活性差等 。 这些不足之处,都在高密度 PLD中得到了较好的解决 。
第 9章 存储器和可编程逻辑器件
9.2.3 高密度可编程逻辑器件
1,阵列型高密度可编程逻辑器件
1)
逻辑宏单元内部主要包括与阵列,或阵列,可编程触发器和多路选择器等电路,能独立地配置为时序或组合工作方式 。 EPLD与 GAL相似,其逻辑宏单元和 I/O做在一起,
因此称为输出逻辑宏单元; CPLD的宏单元在内部,称为内部逻辑宏单元 。 这些宏单元除了其密度比 PAL,GAL高以外,还有许多优点:
第 9章 存储器和可编程逻辑器件
(1) 多触发器结构和,隐埋,
GAL器件的每个 OLMC中只有一个触发器,而 EPLD、
CPLD的宏单元内通常含两个或两个以上触发器,其中一个触发器与输出端相连,其余触发器的输出不和输出相连,
但可以通过相应的缓冲电路反馈到与阵列,从而与其它触发器构成较复杂的时序电路 。 这些不与输出端相连的触发器称为,隐埋,触发器 。 图 9-34 是 EPLD ATV750 的 OLMC结构,
它有两个触发器都可直接反馈到与阵列 。 这种,隐埋,触发器结构对于引脚数有限的 PLD器件来说,可以增加触发器数目,即增加了内部资源 。
第 9章 存储器和可编程逻辑器件图 9-34 ATV750 OLMC电路结构图
SP
·
·
·
·
·
·
Q
Q
D
Q
Q
D
1
0
I / O
X O R
O L M C
M U X
FF
1
FF
2
至与逻辑阵列
(4 ~8 项)
来自与逻辑阵列图9 - 3 4
(4 ~8 项)
C L K 1
A R 1
C L K 2
A R 2
OE
第 9章 存储器和可编程逻辑器件
(2)
在 PAL和 GAL的与阵列中,每个或门的输入乘积项最多为 7 个或 8 个,当要实现多于 8 个乘积项的,与 -或,逻辑函数时,必须将,与 -或,函数表达式进行逻辑变换 。
在 EPLD和 CPLD的宏单元中,如果输出表达式的与项较多,
而对应的或门输入端不够用时,可以借助可编程开关将同一单元 (或其它单元 )中的其它或门与之联合起来使用,或者在每个宏单元中提供未使用的乘积项供其它宏单元使用和共享 。
第 9章 存储器和可编程逻辑器件图 9-35 MAX7128宏单元结构图
3 6 个可编程互连信号
1 6 个扩展乘积项
· ·· · ··
乘积项选择矩阵
·
·
·
·
·
·
共享逻辑扩展项清除选择全局清除全局时钟
U
CC
时钟/
使能选择
C L R N
E N A
P R N
D Q
到 I / O
控制块到 P IA
2
来自
I / O 引脚快速输入选择可编程寄存器寄存器旁路图9 - 3 5
逻辑阵列并联逻辑扩展项
(来自其它宏单元)
第 9章 存储器和可编程逻辑器件图 9-36 MAX7128的乘积项共享结构乘积项选择矩阵宏单元乘积项逻辑
·
·
·
来自上一个宏单元
P r e s e t
C l o c k
C l e a r
乘积项选择矩阵宏单元乘积项逻辑
·
·
·
P r e s e t
C l o c k
C l e a r
到下一个宏单元
( b )
图9 - 3 6
宏单元乘积项逻辑宏单元乘积项逻辑乘积项选择矩阵
( a )
第 9章 存储器和可编程逻辑器件
(3)
EPLD,CPLD中各触发器的时钟可以异步工作,通常时钟信号可以通过数据选择器或时钟网络进行选择,触发器的异步清 0 和异步置位信号也可以利用乘积项来控制 。 例如在图 9-35 中,7128 宏单元中的触发器可以单独地编程为具有可编程时钟控制的 D,T,JK或 SR触发器工作方式,每个可编程触发器可以按三种不同方式选择时钟,① 全局时钟信号;
② 全局时钟,同时由高电平有效的时钟信号所使能; ③ 用乘积项实现阵列的时钟 。 触发器的异步清 0 功能可以通过选择乘积项反相的低电平信号或全局清除信号来控制;异步置位功能也可通过乘积项反相后的低电平信号来控制 。
第 9章 存储器和可编程逻辑器件
2) 可编程 I/O
输入 /输出单元简称 I/O单元或 IOC,它是内部信号到
I/O引脚的接口部分 。 由于 CPLD通常只有少数几个专用输入端,大部分端口均为 I/O端,而且系统的输入信号常常需要锁存,因此 I/O常作为一个独立单元来处理 。 通过编程可以使每个 I/O引脚单独地配置为输入,输出和双向工作,
寄存器输入等各种不同的工作方式,因而使 I/O端的使用更为方便,灵活 。 图 9-37 示出了 Lattice公司 ispLSI 1016 的输入,输出单元 (IOC)的结构图 。 该单元有输入,输出和双向
I/O三类组态,靠控制输出三态门使能的 MUX来选择 。
MUX有两个可编程地址输入 A1A0( )。
第 9章 存储器和可编程逻辑器件当 A1A0=00时,三态缓冲器的输出使能为高电平,IOC
处于专用输出组态;若 A1A0=01或 10,则将由逻辑块 GLB送来的信号控制使能,处于双向 I/O组态或具有三态缓冲电路的输出组态;若 A1A0=11,则使能端接地,I/O处于专用输入组态 。 第二行 MUX用来选择输出极性和选择信号的输出途径 。 第三行 MUX用来选择输入组态用何种方式输入,即为寄存器输入还是锁存器输入,它靠 D触发器中的 R/L端编程来确定 。 以上各种 I/O组态可以用图 9-38 所示各电路表示 。
第 9章 存储器和可编程逻辑器件图 9-37 ispLSI 1016的 IOC结构图来自 G L B 的 OE
M U X
来自输出布线区来自输出布线区直通去集总布线区来自全局复位
M U X
1
0
3
2
A
1
A
0
M U X M U X
M U X
U
CC
有源上拉电阻
L O C L K 0
L O C L K 1
M U X M U X
D Q
R / L
R e s e t
I / O P i n
注,
表示一个 E
2
C O M S 单元图9 - 3 7
输出使能
U
CC
第 9章 存储器和可编程逻辑器件图 9-38 IOC的各种组态输入缓冲
P i n D Q
L E
I / O 单元时钟锁存器输入
P i n D Q
I / O 单元时钟寄存器输入
P i n P i n
输出缓冲
P i n
反向输出缓冲
P i n
有三态使能的输出缓冲输入单元 输出单元
I / O P i n
双向I / O 引脚
I / O P i n
双向I / O 引脚
D Q
I / O 单元时钟双向单元图9 - 3 8
有寄存器输入的第 9章 存储器和可编程逻辑器件
3)
可编程连线阵列的作用是在各逻辑宏单元之间以及各逻辑宏单元和 I/O单元之间提供互连网络 。 各逻辑宏单元通过可编程连线阵列接收来自专用输入或输入端的信号,并将宏单元的信号反馈到其需要到达的目的地 。 这种互连机制有很大的灵活性,
它允许在不影响引脚分配的情况下改变内部的设计 。 图 9-39是
Altera公司 MAX7000A器件的结构框图 。 MAX7000结构主要由高性能的逻辑阵列块 LAB,I/O控制块以及可编程连线阵列 PIA
组成 。 每个逻辑阵列块 LAB由 16 个宏单元组成,多个 LAB通过可编程连线阵 PIA和全局总线连接在一起,并构成所需要的逻辑 。 全局总线由所有的专用输入,I/O控制块和宏单元馈给信号送至 PIA,PIA再把这些信号再送到器件内各个地方 。
第 9章 存储器和可编程逻辑器件图 9-39 MAX7000A结构框图
I N P U T/ G C LK 1
I N P U T/ O E2 / G C L K 2
I N P U T/ O E1
I N P U T/ G C LR n
36
I / O
控制块宏单元
33 ~ 40
6 ~ 1 2个 I/ O 引脚
36
宏单元
41 ~ 48
LA B C
6 ~ 12
16
·
·
·
6 ~ 12
6
P I A
6 个 输 出使能
I / O
控制块宏单元
1 ~ 8
6 ~ 12 个 I/ O 引脚 宏单元
9 ~ 16
LA B A
6 ~ 12
16
·
·
·
6 ~ 12
6
6 ~ 12
I / O
控制块宏单元
17 ~ 24
6 ~ 12 个 I/ O 引脚宏单元
25 ~ 32
LA B B
6 ~ 12
6 ~ 12
16
·
·
·
6 ~ 12
6
6 个 输出使能
36
6 ~ 12
I / O
控制块宏单元
49 ~ 56
6 ~ 12 个 I/O 引脚宏单元
57 ~ 64
LA B D
6 ~ 12
6 ~ 12
16
·
·
·
6 ~ 12
6
36
·
·
·
·
·
·
图9 - 3 9
第 9章 存储器和可编程逻辑器件
2,现场可编程门阵列 FPGA
它由可配置逻辑块 (CLB-Confiqurable Logic Block),输入 /输出模块 (IOB-I/O Block)和互连资源 (IR-Interconnect
Resource)三部分组成 。 可配置逻辑块 CLB是实现用户功能的基本单元,它们通常规则地排列成一个阵列,散布于整个芯片;可编程输入 /输出模块 (IOB)主要完成芯片上逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源 (IR)包括各种长度的连线线段和一些可编程连接开关,它们将各个 CLB之间或 CLB,IOB之间以及 IOB之间连接起来,构成特定功能的电路 。
第 9章 存储器和可编程逻辑器件图 9-40 FPGA的基本结构可编程输入/ 输出
I / O
可编程逻辑单元
C
图9 - 4 0
可编程布线资源
C L B
第 9章 存储器和可编程逻辑器件
FPGA的功能由逻辑结构的配置数据决定 。 工作时,这些配置数据存放在片内的 SRAM或熔丝图上 。 基于 SRAM的
FPGA器件,在工作前需要从芯片外部加载配置数据 。 配置数据可以存储在片外的 EPROM,E2PROM或计算机软,硬盘中 。
人们可以控制加载过程,在现场修改器件的逻辑功能,即所谓现场编程 。
可配置逻辑块 (CLB)一般有三种结构形式,① 查找表结构; ② 多路开关结构; ③ 多级与非门结构 。 不同厂家生产的 FPGA,其 CLB,IOB等结构都存在较大的差异,下面以
Xilinx公司的产品为例,简要介绍 CLB,IOB及 IR的基本特点 。
第 9章 存储器和可编程逻辑器件
1) 可配置逻辑块 (CLB) 图 9-41 XC4000的 CLB结构图
G
1
~ G
4
逻辑 G
'
函数
G
4
G
3
G
2
G
1
G
F
1
~ F
4
逻辑 F
'
函数
F
4
F
3
F
2
F
1
F
F',G ',H
1
逻辑 H
'
函数
H
Q
D I N
F'
G
'
H
'
G
'
H
'
D I N
F
'
G
'
H
'
C 1
1 D
EC
R
D
S
D
YQ
R / S 控制
H 1 D I N S / R EC
Q
XQ
R / S 控制
Y
C 1
1 D
EC
R
D
S
D
F
'
H
'
X
1
1
时钟 CP
图9 - 4 1
C
1
C
2
C
3
C
4
信号变换电路第 9章 存储器和可编程逻辑器件图 9-42 CLB的配置
F' / G'
F / G
4 变量输入输出
( a )
5 变量输入
F' / G'
F / G
H'
H
输出
( b )
G'
F'
F
G
H'
9 变量输入
( c )
图9 - 4 2
H
输出第 9章 存储器和可编程逻辑器件两个 D触发器具有如下特点:每个触发器均通过编程确定为时钟上升沿触发或下降沿触发;每个触发器均有时钟使能信号 EC,它可通过信号变换电路受外部信号控制或固定逻辑 1电平;通过对 S/R控制逻辑的编程,每只 D触发器均可经信号变换电路,分别进行异步置位或异步清 0 操作,也可对一只触发器异步置位而另一只异步清 0。 CLB
的这种特殊结构,使触发器的时钟,时钟使能,置位和复位均可被独立设置,且可独立工作,彼此之间没有约束关系,从而为实现不同功能时序逻辑电路提供了可能性 。
第 9章 存储器和可编程逻辑器件
D触发器激励端的数据来源是由编程确定的,可以从
G′,F′,H′或者信号变换电路送来的 DIN这 4 个信号中选择一个 。 触发器的状态经 CLB的输出端 YQ和 XQ输出 。
CLB中有许多不同规格的数据选择器 (4 选 1,2 选 1
等 ),分别用来选择触发器激励输入信号,时钟有效边沿,
时钟使能信号以及输出信号 。 这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构 。
第 9章 存储器和可编程逻辑器件图 9-41 CLB中所示的 F和 G组合逻辑函数发生器还可作为器件内高速 RAM或小的可读 /写存储器使用,它由信号变换电路编程控制,当信号变换电路编程设置存储功能无效时,F和 G作为组合逻辑函数发生器使用,4 个控制信号
C1~C4分别将图 9-41 所示的 H1,DIN,S/R(异步置位 /复位 )
和 EC(使能 )信号接入 CLB中,作为函数发生器的输入可控制信号 。 当信号变换电路编程设置存储器功能有效时,F和 G
作为器件内部存储器使用,4 个控制信号 C1~C4分别将 WE、
D1/A4,D0和 EC(不用 )信号接入到 CLB中,作为存储器的写使能,数据信号或地址信号 。 此时,F1~F4和 G1~G4输入相当于地址输入信号 A0~A3,以选择存储器中的特定存储单元 。
第 9章 存储器和可编程逻辑器件
2) 输入 /输出模块 (IOB)
图 9-43 XC4000的 IOB结构图图9 - 4 3
摆率控制上拉/ 下拉电阻
U
CC
OE
输出
C 1
1 D
触发器
Q
输出时钟输出缓冲器
I
1
I
2
Q 延时输入缓冲器输入时钟
C 1
1 D
触发锁存器
I / O
第 9章 存储器和可编程逻辑器件
(1)
当 IOB控制的引脚被定义为输入时,通过该引脚的输入信号先送至输入缓冲器 。 缓冲器的输出分成两路:一路可以直接送到 MUX;另一路经延迟几纳秒 (或者不延迟 ),送到输入通路 D触发器,再送到数据选择器 。 通过编程给数据选择器不同的控制信号,确定送至 CLB阵列的 I1和 I2是来自输入缓冲器,还是来自触发器 。 D触发器可通过编程来确定是边沿触发还是电平触发,且配有独立的时钟 。 与前述
CLB中的触发器一样,也可任选上升沿或者下降沿作为有效作用沿 。
第 9章 存储器和可编程逻辑器件
(2)
当 IOB控制的引脚被定义为输出时,CLB阵列的输出信号
OUT(或 OUT)同样可以有两条传输途径:其一是直接经 MUX
送至输出缓冲器; 其二是先存入输出通路 D触发器,再送至输出缓冲器 。 输出通路 D触发器也有独立的时钟,且可任选触发边沿 。 输出缓冲器既受 CLB阵列送来的 OE(或 OE)信号控制,使输出引脚有高阻状态,还受转换速率控制电路的控制,
使它可高速或低速运行,后者有抑制噪声的作用 。
(3)
IOB的 B输出端配有两只 MOS管,它们的栅极均可编程,
使 MOS管导通或截止,分别经上拉电阻或下拉电阻接通 UCC、
地线或者不接通,用以改善输出波形和负载能力 。
第 9章 存储器和可编程逻辑器件
3) 可编程连线 (IR)
FPGA芯片内部单个 CLB输入输出之间,各个 CLB之间,
CLB和 I/OB之间的连线由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现所需功能的电路连接 。
连线通路的数量与器件内部阵列的规模有关,阵列规模越大,
连线数量越多 。
互连线按相对长度分为单线,双线和长线三种 。
单线和长线主要用于 CLB之间的连接 。 在这种结构中,
任意两点间的连接都要通过开关矩阵 。 它提供了相邻 CLB之间的快速互连和复杂互连的灵活性,但传输信号每通过一个可编程开关矩阵,就增加一次时延 。 因此,FPGA的内部时延与器件结构和逻辑布线等有关,它的信号传输时延不可确定 。
第 9章 存储器和可编程逻辑器件图 9-44
(a) 单长线; (b) 双长线; (c) 开关矩阵; (d) 长线第 9章 存储器和可编程逻辑器件
9.2.4 可编程逻辑器件的开发
1,可编程逻辑器件的设计过程图 9-45 PLD设计流程第 9章 存储器和可编程逻辑器件
1)
采用有效的设计方案是 PLD设计成功的关键,因此在设计输入之前首先要考虑两个问题,① 选择系统方案,进行抽象的逻辑设计; ② 选择合适的器件,满足设计的要求 。
对于低密度 PLD,一般可以进行书面逻辑设计,将电路的逻辑功能直接用逻辑方程,真值表状态图或原理图等方式进行描述,然后根据整个电路输入,输出端数以及所需要的资源 (门,触发器数目 )选择能满足设计要求的器件系列和型号 。 器件的选择除了应考虑器件的引脚数,资源外,
还要考虑其速度,功耗以及结构特点 。
第 9章 存储器和可编程逻辑器件对于高密度 PLD,系统方案的选择通常采用,自顶向下,
的设计方法 。 首先在顶层进行功能框图的划分和结构设计,
然后再逐级设计低层的结构 。 一般描述系统总功能的模块放在最上层称为顶层设计;描述系统某一部分功能的模块放在下层,称为底层设计 。 底层模块还可以再向下分层 。 这种
,自顶向下,和分层次的设计方法使整个系统设计变得简洁和方便,并且有利于提高设计的成功率 。 目前系统方案的设计工作和器件的选择都可以在计算机上完成,设计者可以采用国际标准的两种硬件描述语言 VHDL或 Verilog对系统级进行功能描述,并选用各种不同的芯片进行平衡,比较,选择最佳结果 。
第 9章 存储器和可编程逻辑器件
2)
设计者将所设计的系统或电路以开发软件要求的某种形式表示出来,
并送入计算机的过程称为设计输入 。 它通常有原理图输入,硬件描述语言输入和波形输入等多种方式 。
原理图输入是一种最直接的输入方式,它大多数用于对系统或电路结构很熟悉的场合,但系统较大时,这种方法的相对输入效率较低 。
硬件描述语言是用文本方式描述设计,它分为普通的硬件描述语言和行为描述语言 。 普通硬件描述语言有 ABEL-HDL,CUPL等,它们支持逻辑方程,真值表,状态机等逻辑表达方式 。 行为描述语言是指高层硬件描述语言 VHDL和 Verilog,它们有许多突出的优点:如语言的公开可利用性,便于组织大规模系统的设计,具有很强的逻辑描述和仿真功能,而且输入效率高,在不同的设计输入库之间转换也非常方便 。
第 9章 存储器和可编程逻辑器件
3)
从设计输入完成以后到编程文件产生的整个编译,适配过程通常称为设计处理或设计实现 。 它是器件设计中的核心环节,是由计算机自动完成的,设计者只能通过设置参数来控制其处理过程 。 在编译过程中,编译软件对设计输入文件进行逻辑化简,综合和优化,并适当地选用一个或多个器件自动进行适配和布局,布线,最后产生编程用的编程文件 。
编程文件是可供器件编程使用的数据文件 。 对于阵列型
PLD来说,是产生熔丝图文件即 JEDEC(简称 JED)文件,它是电子器件工程联合会制定的标准格式;对于 FPGA来说,是生成位流数据文件 (Bitstream Generation)。
第 9章 存储器和可编程逻辑器件
4)
设计校验过程包括功能仿真和时序仿真,这两项工作是在设计输入和设计处理过程中同时进行的 。
功能仿真是在设计输入完成以后的逻辑功能检证,又称前仿真 。 它没有延时信息,对于初步功能检测非常方便 。
时序仿真在选择好器件并完成布局,布线之后进行,又称后仿真或定时仿真 。 时序仿真可以用来分析系统中各部分的时序关系以及仿真设计性能 。
第 9章 存储器和可编程逻辑器件
5)
编程是指将编程数据放到具体的 PLD中去 。
对阵列型 PLD来说,是将 JED文件,下载 (Down Load)”
到 PLD中去;对 FPGA来说,是将位流数据文件,配置,到器件中去 。
器件编程需要满足一定的条件,如编程电压,编程时序和编程算法等 。 普通的 PLD和一次性编程的 FPGA需要专用的编程器完成器件的编程工作 。 基于 SRAM的 FPGA可以由 EPROM或微处理器进行配置 。 ISP在系统编程器件则不需要专门的编程器,只要一根下载编程电缆就可以了 。
第 9章 存储器和可编程逻辑器件
2,在系统可编程技术和边界扫描技术
1)
在系统可编程 (In-System Programmabile,简称 ISP)技术是
20 世纪 80 年代末 Lattice公司首先提出的一种先进的编程技术 。
所谓,在系统编程,是指对器件,电路板或整个电子系统的逻辑功能可随时进行修改或重构 。 这种重构或修改可以在产品设计,制造过程中的每个环节,甚至在交付用户之后进行 。 支持
ISP 技术的可编程逻辑器件称为在系统可编程逻辑器件
(ispPLD)。
ispPLD不需要使用编程器,只需要通过计算机接口和编程电缆,直接在目标系统或印刷线路板上进行编程 。 ispPLD可以先装配,后编程 。 因此 ISP技术有利于提高系统的可靠性,便于系统板的调试和维修 。
第 9章 存储器和可编程逻辑器件
ISP技术是一种串行编程技术,其编程接口非常简单 。
例如,Lattice公司的 ispLSI,ispGAL和 ispGDS等 ISP器件,
它们只有五根信号线,模式控制输入 MODE,串行数据输入 SDI,串行数据输出 SDO,串行时钟输入 SCLK和在系统编程使能输入 ispEN。 PC机可以通过这五根信号线完成编程数据传递和编程操作 。 其中编程使能信号 ispEN=1时,ISP器件为正常工作状态; ispEN=0 时,所有 IOC的输出均被置为高阻,与外界系统隔离,这时才允许器件进入编程状态 。 当系统具备多个 ispPLD时,还可以采用菊花链形式编程,如图
9-46 所示 。 图中,多个器件进行串联编程,从而可以实现用一个接口完成多芯片的编程工作,达到高效率 。
第 9章 存储器和可编程逻辑器件图 9-46 多个 ispPLD的编程
i s p L S I
1 0 3 2 i s p G D S
22
i s p G A L
2 2 V 1 0
图9 - 4 6
五线 I S P 编程接口
S D O
S D I
M O D E
S C L K
i s p E N
i s p L S I
2 0 3 2
第 9章 存储器和可编程逻辑器件
2)
边界扫描测试技术主要解决芯片的测试问题 。
20 世纪 80 年代后期,对电路板和芯片的测试出现了困难 。 以往,在生产过程中对电路板的检验是由人工或测试设备进行的,但随着集成电路密度的提高,集成电路的引脚也变得越来越密,测试变得很困难 。 例如,TQFP封装器件,管脚的间距仅有 0.6 mm,这样小的空间内几乎放不下一根探针 。
同时,由于国际技术的交流和降低产品成本的需要,
也要求为集成电路和电路板的测试制订统一的规范 。
第 9章 存储器和可编程逻辑器件边界扫描技术正是在这种背景下产生的 。 IEEE1149.1
协议是由 IEEE组织联合测试行动组 (JTAG)在 20 世纪 80
年代提出的边界扫描测试技术标准,用来解决高密度引线器件和高密度电路板上的元件的测试问题 。
标准的边界扫描测试只需要四根信号线,能够对电路板上所有支持边界扫描的芯片内部逻辑和边界管脚进行测试 。 应用边界扫描技术能增强芯片,电路板甚至系统的可测试性 。