第 八 章第八章 可编程逻辑器件可 编 程 逻 辑 器 件第八章 可编程逻辑器件目前在数字系统设计中广泛使用的可编程逻辑器件 (Prog-
rammable Logic Device,简称 PLD) 属于 LSI中的半用户定制电路。由于 PLD具有结构灵活、性能优越、设计简单等特点,
因而在不同应用领域中受到广泛重视,是构成数字系统的理想器件。
数字系统中常用的大规模集成电路可分为三大类。
非用户定制电路 (Non custom design IC)
全用户定制电路 (Full custom design IC)
半用户定制电路 (Semicustom design IC)
第八章 可编程逻辑器件本章知识要点:
☆ PLD的基本概念
☆ 低密度可编程逻辑器件
☆ 复杂可编程逻辑器件
☆ 现场可编程门阵列
☆ 在系统编程技术简介第八章 可编程逻辑器件
8,1 P L D 概 述
PLD是 20世纪 70年代开始发展起来的一种新型大规模集成电路 。 一片 PLD所容纳的逻辑门可达数百,数千甚至更多,其逻辑功能可由用户编程指定 。
PLD特别适宜于构造小批量生产的系统,或在系统开发研制过程中使用 。
第八章 可编程逻辑器件
8.1.1 PLD的发展
20世纪 70年代初期,第一种 PLD器件 -----可编程只读存储器
(PROM)问世 。 PROM由一个,与,阵列和一个,或,阵列组成,
,与,阵列是固定的,,或,阵列是可编程的;
20世纪 70年代中期,出现了可编程逻辑阵列 (PLA),PLA同样由一个,与,阵列和一个,或,阵列组成,但其,与,阵列和
,或,阵列都是可编程的;
20世纪 70年代末期,出现了可编程阵列逻辑 (PAL)。 PAL器件的,与,阵列是可编程的,而,或,阵列是固定的,它有多种输出和反馈结构,因而给逻辑设计带来了很大的灵活性 。 但 PAL
器件一般采用熔丝工艺,一旦编程后便不能改写 。
第八章 可编程逻辑器件
20世纪 80年代中期,先后出现了通用阵列逻辑 (GAL),复杂可编程逻辑器件 ( CPLD) 和现场可编程门阵列 (FPGA)等可编程器件 。
20世纪 90年代,产生了在系统编程 (ISP)器件。在系统编程是指用户具有在自己设计的目标系统中或线路板上为重构逻辑而对逻辑器件进行编程或反复改写的能力。 ISP器件为用户提供了传统的 PLD技术无法达到的灵活性,使可编程逻辑技术发生第八章 可编程逻辑器件
8.1.2 PLD的基本结构
PLD的基本组成为一个“与”阵列和一个“或”阵列。 阵列中输入线和输出线的交 点通过逻辑元件相连接。这些元件是接通还是断开,可由厂家根据器件的结构特征决定或由用户根据要求编程决定。基本结构如下图所示。
I0 In
P0
Pm
“与”项 O0
Or
输出“与”阵列,或”阵列在基本结构的基础上,附加一些其他逻辑元件,如输入缓冲器,输出寄存器,内部反馈,输出宏单元等,便可构成各种不同的 PLD。
第八章 可编程逻辑器件
8.1.3 PLD的电路表示法对于 PLD器件,用逻辑电路的一般表示法很难描述其内部电路,这给 PLD的生产和应用带来诸多不便 。 为此,对描述
PLD基本结构的有关逻辑符号和规则作出了某些约定 。
一,与门和或门下图给出了 3输入与门的两种表示法 。 传统表示法 (图 (a))中与门的 3个输入 A,B,C在 PLD表示法 (图 (b))中称为 3个输入项,
而输出 D称为,与,项 。 同样,或门也采用类似方法表示 。
&
D
A
B
C
(a)
&
A B C
D
(b)
第八章 可编程逻辑器件二,输入缓冲器典型输入缓冲器的 PLD表示法如右图所示 。 它的两个输出 B,C是其输入 A的原和反
( 见图中真值表 ) 。
1A B
C
A B C
1 1
10 0
0
三,连接方式
PLD阵列交叉点上的三种连接方式如图 (a)所示 。 实点,·”表示硬线连接,即固定连接;,×,表示可编程连接;没有,×,和,·”
的表示两线不连接 。 如图 (b)中的输出 F=A·C。
固定连接可编程连接不连接
&
A B C
F
(a)
(b)
第八章 可编程逻辑器件四、与门不执行任何功能时的连接表示
&
&
D
E
F
A B
1 1
0 0 0 0
0 0 0
0 0 0
00
1
1
1
1 1
1 1 1
A B D E F
图中,输出为 D的与门连接了所有的输入项,其输出方程为方便起见,用标有,×,标记的与门输出来表示所 有输入缓冲器输出全部连到某一,与,
项的情况,如图中输出 E。
与上述相反,图中输出 F表示无任何输出项与其相连,因此,
该,与,项总是处于,浮动,
的逻辑,1”。
第八章 可编程逻辑器件根据 PLD中阵列和输出结构的不同,目前常用的 PLD有
4
● 可编程只读存储器 PROM
● 可编程逻辑阵列 PLA
● 可编程阵列逻辑 PAL
● 通用阵列逻辑 GAL
8,2 低密度可编程逻辑器件第八章 可编程逻辑器件
8,2,1 可编程只读存储器 PROM
一,半导体存储器的分类存储器 (Memory)是数字计算机和其他数字系统中存放信息的重要部件 。 随着大规模集成电路的发展,半导体存储器因其具有集成度高,速度快,功耗小,价格低等优点而被广泛应用于各种数字系统中 。
半导体存储器按功能可分为两大类 。
随机存取存储器 RAM(Random Access Memory)
只读存储器 ROM(Read Only Memory)
第八章 可编程逻辑器件
1,随机存取存储器 RAM
RAM是一种既可读又可写的存储器,故又称为读写存储器 。
根据制造工艺的不同,RAM又可分为双极型和 MOS型两种类型 。
MOS型 RAM又可进一步分为静态 RAM(SRAM)和动态 RAM(DRAM)两种,相比之下 DRAM的集成度更高 。
RAM的优点是读写方便,使用灵活;缺点是一旦断电,
所存储的信息便会丢失,它属于易失性存储器 。
双极型 RAM,工作速度高,但成本高,功耗大,集成度低,主要用作高速小容量存储器 。
MOS型 RAM,功耗小,集成度高,成本低,但速度比双极型 RAM低,适宜于构造大容量存储器 。
第八章 可编程逻辑器件
2,只读存储器 ROM
只读存储器 ROM是一种在正常工作时只能读出,不能写入的存储器 。 通常用来存放那些固定不变的信息 。 只读存储器存入数据的过程通常称为编程 。
只读存储器 ROM属于非易失性存储器,即使切断电源,
ROM中的信息也不会丢失,因而在数字系统中获得广泛应用 。
根据编程方法的不同,可分为两类 。
掩膜编程 ROM( 简称 MROM),存放的内容是由生产厂家在芯片制造时利用掩膜技术写入的 。 优点是可靠性高,集成度高,批量生产时价格便宜;缺点是用户不能重写或改写,不灵活 。
用户可编程 ROM( 简称 PROM),存放的内容是由用户根据需要在编程设备上写入的 。 优点是使用灵活方便,适宜于用来实现各种逻辑功能 。
第八章 可编程逻辑器件二,可编程 ROM的结构与类型
1,PROM的逻辑结构
PROM的结构框图如下图所示,它主要由地址译码器和存储体两大部分组成 。
地址译码器存储体
W0 W1 W2n-1
A0
An-1
D0
D1
Dm-1
第八章 可编程逻辑器件图中,A0~ An-1为地址输入线; W0~ W2n-1为地址译码输出线,又称为 字线 ; D0~ Dm-1为数据输出线,又称为 位线 。 通常,
将一个 n位地址输入和 m位数据输出的 PROM的存储容量表示为 2n× m(位 ),意味着存储体中有 2n× m个存储元,每个存储元的状态代表一位二进制代码 。
地址译码器存储体
W0 W1 W2n-1
A0
An-1
D0
D1
Dm-1
第八章 可编程逻辑器件存储体的结构示意图如下:
0,0 1,0
0,1 1,1
W0 W1
2n-1,0
2n-1,1
W2n-1
D0
D1
0,m-1 1,m-1 2n-1,m-1
Dm-1
存储元第八章 可编程逻辑器件从逻辑器件的角度理解,PROM是由一个固定连接的与门阵列和一个可编程连接的或门阵列所构成的组合逻辑电路 。 例如,
一个 8× 3(8与门 × 3或门 )PROM的逻辑结构图如下 。
& & & & & & & &
m0 m1 m2 m3 m4 m5 m6 m7
≥1
≥1
≥1
D2
D1
D0
1
1
1
A
B
C
第八章 可编程逻辑器件为了 PROM设计的方便,通常将逻辑结构图简化为阵列逻辑图,简称阵列图 。 画阵列图时,将 PROM中的每个与门和或门都简化成一根线 。 上图的阵列逻辑图如下图所示 。
图中虚线上面 6
根水平线分别表示输入线 A、,B、,
C,。 与门阵列的 8
根垂直线代表 8个与门,
或门阵列中标有 D2、
D1,D0 的 3根水平线表示 3个或门 。
A
B
C
,或,
阵列
D2
D1
D0
,与,
阵列
m0 m1 m2 m3 m4 m5 m6 m7
第八章 可编程逻辑器件
2,PROM的类型根据存储元电路构造的不同,PROM有 3种常用的类型 。
(1) 一次编程的 ROM(PROM)
所有存储元均被加工成同一状态,0”(或,1”),用户可通过编程将某些存储元的状态改变成另一状态,1”(或,0”)。
这种编程只能进行一次,一旦编程完毕,其内容便不能再改变 。
PROM与固定 ROM相比,增加了灵活性 。 但因其可靠性较差,加之只能一次性编程,故目前很少使用 。
第八章 可编程逻辑器件
(2) 可抹可编程 ROM(EPROM)
EPROM不仅可由用户编程存放指定的信息,而且可由用户通过专用的紫外线灯照射芯片上的受光窗口,将原存储内容抹去,再写入新的内容 。 这一特性是由 EPROM中存储元的电路结构决定的 。
(3) 电可抹可编程 ROM(EEPROM)
EEPROM的结构与 EPROM相似,但 EEPROM在浮栅上增加了一个遂道二极管,编程时可使电荷通过它流向浮栅,而擦除时可使电荷通过它流走,即擦除和编程均用电完成 。 这种器件不仅工作电流小,擦除速度快,而且允许改写的次数大大高于 EPROM,一般允许改写 100次~ 1000次 。 目前,EPROM和
EEPROM的应用均十分广泛 。
第八章 可编程逻辑器件三,PROM应用举例由于 PROM是由一个固定连接的,与,阵列和一个可编程连接的,或,阵列组成,所以,用户只要改变,或,阵列上连接点的数量和位置,就可以在输出端形成由输入变量,最小项之和,表示的任何一种逻辑函数 。
采用 PROM进行逻辑设计时,只需首先根据逻辑要求列出真值表,把真值表的输入作为 PROM的输入,然后根据逻辑函数值确定对 PROM“或,阵列进行编程的代码,画出相应的阵列图即可 。
第八章 可编程逻辑器件例 用 PROM设计一个代码转换电路,将 4位二进制码转换为 Gray码 。
解 设 4位二进制码为 B3,B2,B1,B0,4位 Gray码为
G3,G2,G1,G0,其真值表如下表所示 。
二进制码
B3 B2 B1 B0 G3 G2 G1 G0 B3 B2 B1 B0 G3 G2 G1 G0
Gray码 二进制码 Gray码
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
0 0 0 0
0 0 0 1
0 0 1 1
0 0 1 0
0 1 1 0
0 1 1 1
0 1 0 1
0 1 0 0
1 1 0 0
1 1 0 1
1 1 1 1
1 1 1 0
1 0 1 0
1 0 1 1
1 0 0 1
1 0 0 0
第八章 可编程逻辑器件将 4位二进制码作为 PROM的输入,Gray码作为 PROM的输出,可选容量为 24× 4的 PROM实现给定功能 。 根据真值表可画出该电路的阵列图如下图所示 。
G0
G1
G2
G3
“或,阵列
“与,阵列
B0
B1
B2
B3
m0 m1 m2 m3 m4 m5 m6 m7 m8 m9 m 10 m 11 m 12 m 13 m 14 m 15
注,图中标,×,处代表,1”,否则代表,0”。
第八章 可编程逻辑器件
8.2.2 可编程逻辑阵列 PLA
PLA是一种,与,阵列和,或,阵列均可编程的逻辑器件,
即可编程逻辑阵列 PLA(ProgrammableLogic Array)。
PLA可分为组合 PLA和时序 PLA两种类型 。
一,组合 PLA
1,组合 PLA的逻辑结构逻辑结构,由一个,与,阵列和一个,或,阵列构成,“与,
阵列和,或,阵列都是可编程的 。
第八章 可编程逻辑器件一个具有 3个输入变量,可提供 6个,与,项,产生 3个输出函数的 PLA逻辑结构图及其相应阵列图如下图所示 。
1
1
1
A
B
C
& & & & & &
≥1
≥1
≥1
Q2
Q1
Q0
Q2
Q1
Q0
A
B
C
“与,
阵列
“或,
阵列第八章 可编程逻辑器件
PLA的存储容量 用输入变量数 (n),与项数 (p),输出端数 (m)
来表示 。
前面所示 PLA的容量为 3—6—3。 目前常见的有容量为
16—48—8和 14—96—8等 PLA器件 。
2,应用举例采用 PLA进行逻辑设计,可以十分有效地实现各种逻辑功能 。
相对 PROM而言,PLA更灵活,更经济,结构更简单 。
用 PLA设计组合逻辑电路时,一般分为两步:
● 将给定问题的逻辑函数按多输出逻辑函数的化简方法简化成最简,与 -或,表达式;
● 根据最简表达式中的不同,与项,以及各函数最简,与 -
或,表达式确定,与,阵列和,或,阵列,并画出阵列逻辑图 。
第八章 可编程逻辑器件例 用 PLA设计一个代码转换电路,将一位十进制数的
8421码转换成余 3码 。
解 设 ABCD-------表示 8421码,WXYZ-------表示余
3码,可列出转换电路的真值表如下表所示 。
A B C D W X Y Z
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
d d d d
d d d d
d d d d
d d d d
d d d d
d d d d
A B C D W X Y Z
第八章 可编程逻辑器件根据真值表写出函数表达式,并按照多输出函数化简法则用卡诺图进行化简,可得到最简,与 -或,表达式如下:
DZ
DCCDY
DCBDBCBX
BDBCAW
由此可见,全部输出函数只包含 9个不同
,与,项,所以,该代码转换电路可用一个容量为 4 —9—4的 PLA实现,其阵列图如图所示 。
第八章 可编程逻辑器件二,时序 PLA
逻辑结构,由,与,阵列,,或,阵列和一个用于存储过去输入状态的触发器网络构成 。
“与”
门阵列
“或”
门阵列触发器组
y1
yr
x1
xn
Y1
Yr
Zr
Z1
时钟 复位触发器网络中包含若干触发器,它们的输入接受,或,阵列输出及时钟脉冲,复位信号的控制,
其输出反馈到,与,阵列,
用来和当前输入一起产生
,与,项输出 。 时序 PLA的结构框图如右图所示 。
31
第八章 可编程逻辑器件
8.2.3 可编程阵列逻辑 PAL
PAL(Programmable Array Logic)是在 PROM和 PLA的基础上发展起来的一种可编程逻辑器件 。 它相对于 PROM而言,
使用更灵活,且易于完成多种逻辑功能,同时又比 PLA工艺简单,易于实现 。
32
第八章 可编程逻辑器件一,PAL的逻辑结构
PAL由一个可编程的,与,阵列和一个固定连接的,或,
阵列组成 。 图 (a)给出了一个三输入三输出 PAL的逻辑结构图,
通常将其表示成图 (b)所示形式 。
33
第八章 可编程逻辑器件
PAL每个输出包含的,与,项数目是由固定连接的,或,
阵列提供的 。 在典型逻辑设计中,一般函数约包含 3个~ 4个
,与,项,而现有 PAL器件最多可为每个输出提供 8个,与,项,
因 此,使用这种器件能很好地完成各种常用逻辑电路的设计 。
PAL器件的结构 (包括输入,输出,,与,项数目 )是由生产厂家固定的 。
从 PAL问世至今,大约已生产出几十种不同的产品,按其输出和反馈结构,大致可将其分为 5种基本类型 。
(1) 专用输出的基本门阵列结构这种结构类型适用于实现组合逻辑函数 。 常见产品有
PAL10H8(10 个 输 入,8 个 输 出,输 出 高 电 平 有 效 ),
PAL12L6(12个输入,6个输出,输出低电平有效 )等 。
34
第八章 可编程逻辑器件
(2) 带反馈的可编程 I/O结构带反馈的可编程 I/O结构通常又称为异步可编程 I/O结构 。
该类 PAL器件常见产品有 PAL16L8(10 个输入,8个输出,6个反馈输入 )以及 PAL20L10(12个输入,10个输出,8个反馈输入 )。
(3) 带反馈的寄存器输出结构带反馈的寄存器输出结构使 PAL构成了典型的时序网络结构 。 该类器件的典型产品有 PAL16R8(8个输入,8个寄存器输出,8个反馈输入,1个公共时钟和 1个公共选通 )。
35
第八章 可编程逻辑器件
(4) 加,异或,,带反馈的寄存器输出结构 这种结构是在带反馈寄存器输出结构的基础上增加了一个异或门,该类电路的典型产品有 PAL16RP8 (8个输入,8个寄存器输出,8个反馈输入 )。
(5) 算术选通反馈结构算术 PAL是在综合前几种 PAL结构特点的基础上,增加了反馈选通电路,使之能实现多种算术运算功能 。 算术 PAL的典型产品有 PAL16A4(8个输入,4个寄存器输出,4个可编程 I/O输出,
4个反馈输入,4个算术选通反馈输入 )。
36
第八章 可编程逻辑器件二,PAL应用举例设计的一般步骤用 PAL进行逻辑设计的一般步骤如下:
(1) 建立对给定问题的逻辑描述;
(2) 写出相应的函数表达式;
(3) 选择合适的器件;
(4) 编程实现 。
第八章 可编程逻辑器件
8.2.4 通用阵列逻辑 GAL
GAL(Generic Array Logic)器件 是 1985年由美国
LATTICE公司开发并商品化的一种新的 PLD器件。它是在
PAL器件的基础上综合了 E2PROM和 CMOS技术发展起来的一种新型技术。
GAL器件具有 PAL器件所没有的可擦除、可重写及结构可组态等特点。这些特点形成了器件的可测试性和高可靠性,
且具有更大的灵活性。
第八章 可编程逻辑器件一,GAL的基本逻辑结构
1,GAL16V8的基本组成
GAL16V8芯片是一种具有 8个固定输入引脚,最多可达 16
个输入引脚,8个输出引脚,输出可编程的普通型 GAL。
组成,由 8个输入缓冲器,8个反馈输入缓冲器,8个输出逻辑宏单元 OLMC,8个输出三态缓冲器,,与,阵列以及系统时钟,输出选通信号等组成 。
第八章 可编程逻辑器件
2,输出逻辑宏单元 OLMC
OLMC由一个 8输入或门,极性选择异或门,D触发器,4个多路选择器等组成 。 其结构如下图所示 。
第八章 可编程逻辑器件
3,结构控制字
(1) 结构控制字的组成
GAL16V8由一个 82位的结构控制字控制着器件的各种功能组合状态 。 该控制字各位功能如下 。
“与”项禁止位
32位
XOR(n)
4位
SYN
1位
AC1(n)
8位
ACO
1位
XOR(n)
4位
“与”项禁止位
32位
PT63 PT32 PT0PT31
82位
12 15 12 19 16 19
图中,XOR(n)和 AC1(n)字段下面的数字分别对应器件的引脚号 。
第八章 可编程逻辑器件结构控制字各位的功能如下:
同步位 SYN———确定器件是寄存器输出或是纯粹的组合输出。
SYN=0时,GAL器件有寄存器输出能力;
SYN=1时,GAL为一个纯粹组合逻辑器件。
结构控制位 AC0—该位对于 8个 OLMC是公共的,它与 AC1(n)
配合控制各个 OLMC(n)中 的多路选择器 。
结构控制位 AC1—共有 8位,每个 OLMC(n)有单独的 AC1(n)。
极性控制位 XOR(n)—它通过 OLMC(n)中的异或门控制逻辑操作结果的输出极性 。
XOR(n)=0时,输出信号 O(n)低电平有效;
XOR(n)=1时,输出信号 O(n)高电平有效 。
“与,项 (PT)禁止位 —共 64位,分别控制,与,阵列的 64行 (PT0~
PT63),以便屏蔽某些不用的,与,项 。
第八章 可编程逻辑器件
(2) OLMC(n)的 5种组态通过编程结构控制字中的 SYN,AC0和 AC1(n),输出逻辑宏单元 OLMC(n)可以组成以下 5种组态 。
① 专用输入方式 (SYN·AC0·AC1(n)=101)
② 专用组合型输出方式 (SYN·AC0·AC1(n)=100)
③ 组合型输出方式 (SYN·AC0·AC1(n)=111)
④ 寄存器型器件中的组合逻辑输出方式
(SYN·AC0·AC1(n)=011)
⑤ 寄存器型输出方式 (SYN·AC0·AC1(n)=010)
第八章 可编程逻辑器件
4.行地址布局
(1) 行地址布局图
GAL器件的可编程阵列包括,与,阵列,结构控制字,
保密位及整体擦除位等 。 对其进行编程时是由行地址进行映射的 。 GAL16V8的行地址布局图如图所示 。
SRL(82位 )
PT63 PT32 PT31 PT00
门 阵 列 门 阵 列电子标签 电子标签保留地址空间结构控制字 (82位 )
SDIN
SDOUT
0
31
32
33
59
60
加密单元备用整体擦除第八章 可编程逻辑器件
(2) 供用户使用的行地址当对 GAL16V8进行编程实现某个设计方案时,可供用户使用的行地址总共有 36个,
① 行地址 0~ 31,用户用来编程制定逻辑模式的阵列 。
32个行地址对应逻辑结构图上,与,阵列的 32个输入,每个行地址可写入 64位数据,对应于 64个,与,项 。
② 行地址 32,器件的电子标签 (ES)。 它提供 64位供用户定义 。 例如,用来识别用户身份的代码,版本号,编目管理等,这个标签中的数据与下述保密单元的状态无关,用户始终可以使用 。
③ 行地址 60,82位的结构控制字,用于设计所需用途的器件 。
第八章 可编程逻辑器件
④ 行地址 61,仅 1位的保密位,用于防止复制阵列的逻辑点阵 。 该位一旦被编程,存取阵列的电路就不能工作,从而防止了对 32位的,与,阵列再次编程或读出 。
该单元只能在整体擦除时和阵列一起被擦除,所以,一旦保密位被编程,就绝对不能检查阵列的原始配置,仅电子标签除外 。
⑤ 行地址 63,仅含 1位,用于器件整体擦除 。 在器件编程期间访问该行时,执行清除功能,整个,与,阵列,结构控制字,电子标签以及保密单元统统被擦除,使编程的器件恢复到未使用的状态 。
第八章 可编程逻辑器件二,GAL的应用
1,用 GAL进行逻辑设计的一般步骤一般步骤如下:
(1) 分析设计要求,确定描述给定功能的逻辑表达式 。
这是关键的一步,设计者可综合运用逻辑设计技术,完成有关逻辑设计 。
(2) 根据逻辑设计结果,选择 GAL器件并对器件进行引脚分配 。
在器件选择时,一般首先应满足输入,输出端数目的要求,其次考虑速度,功率等因素 。 器件确定后,根据要求给各引脚赋予变量名 。
第八章 可编程逻辑器件
(3) 编写 GAL设计说明书在调用编程软件前,首先要根据规定的语法格式和逻辑设计结果编写设计说明书 (又称为 GAL源程序 )。
说明书中通常包括器件型号,实现的功能,设计者姓名和设计日期,电子标签,GAL引脚表以及逻辑表达式等 。
(4) 建立有关文件建立文本文件 (LST文件 ),熔丝图文件 (PLT文件 ),标准装载文件 (JE D文件 )等 。
(5) 硬件编程包括连接编程器,建立 GAL编程系统,编程后写保密位等 。
48
第八章 可编程逻辑器件
8.3 复杂可编程逻辑器件复杂可编程逻辑器件 ( complex programmable logic device,
简称 CPLD) 是从简单 PLD发展而来的高密度 PLD器件 。 一般由逻辑块,可编程内部连线区和 I/O单元组成 。 常见 CPLD的结构示意图如下:
49
第八章 可编程逻辑器件一,CPLD的结构根据集成规模和设计方法的不同,各生产厂家提供的 CPLD
在结构上具有各自的特色。目前,常用的 CPLD结构有通用互连阵列结构、大块结构和灵活逻辑单元阵列结构等不同类型。
(有关 CPLD的介绍见教材中相关部分 )
二,典型器件最常用的 CPLD有 Altera公司生产的 FLEX 10K系列器件。
FLEX 10K 是 一种嵌入式的 PLD。它采用灵活逻辑单元阵列结构和重复可构造的 CMOS SRAM工艺,具有高密度、低成本、低功率等特点,现已成为 ALTERA CPLD中应用前景最好的器件系列。
50
第八章 可编程逻辑器件
8.4 现场可编程门阵列现场可编程门阵列 FPGA( Field Programmable Gate Array) 是 20世纪
80年代中后期发展起来的一种高密度可编程逻辑器件,它由世界著名的可编程逻辑器件供应商 Xilinx公司最初提出 。 不同公司生产的 FPGA器件在结构和性能上不尽相同,Xilinx公司的 XC4000系列 FPGA器件的结构示意图如下:
51
第八章 可编程逻辑器件有关 FPGA的典型器件见教材中相关部分!
第八章 可编程逻辑器件
8.5 在系统编程技术简介在系统编程 (In System Programmable,简称 ISP)技术是
20世纪 90年代发展起来的一种 PLD技术 。
所谓在系统编程,是指可以在用户自己设计的目标系统上,为实现预定逻辑功能而对逻辑器件进行编程或改写 。
ISP器件的出现,使数字系统设计更加灵活,方便,为用户带来了显著的经济效益和时间效益 。 可以说,ISP技术是
PLD设计技术发展中的一次重要变革 。
第八章 可编程逻辑器件
8.5.1 ISP技术的主要特点
ISP技术的应用,对数字系统硬件设计方法,设计环境,
系统调试周期,测试与维护,系统的升级以及器件的充分利用等均产生了重要影响 。 主要特点如下:
一,全面实现了硬件设计与修改的软件化二,简化了设计与调试过程三,容易实现系统硬件的现场升级四,可降低系统成本,提高系统可靠性五,器件制造工艺先进,性能参数好第八章 可编程逻辑器件
8.5.2 ISP逻辑器件一,ISP逻辑器件的类型目前,市场上提供的 ISP逻辑器件可分为 ispLSI,ispGAL
和 ispGDS三种类型 。
1,ispLSI逻辑器件
ispLSI(在系统编程大规模集成 )逻辑器件具有集成度高,速度快,可靠性好,灵活方便等优点,能满足在高性能系统中实现各种复杂逻辑功能的需要,被广泛应用于数据处理,图形处理,空间技术,军事装备及通信,自动控制等领域 。
第八章 可编程逻辑器件
ISP技术是美国 Lattice公司率先推出的,该公司将 ISP技术应用到高密度可编程逻辑器件 (HDPLD)中,形成了 ispLSI系列高密度在系统可编程逻辑器件 。 常用 ispLSI器件有 4个系列,
① 基本系列 ispLSI1000,适用于高速编码,总线管理等;
② 高速系列 ispLSI2000,I/O端口数较多,适用于高速 计 数、定时等场合,并可用作高速 RISC/CISC微处理器的接口;
③ 高密系列 ispLSI3000,集成密度高,能实现非常复杂的逻辑功能,适用于数字信号处理、图形处理、数据压缩等;
④ 模块化系列 ispLSI6000,带有存储器和寄存器 /计数器,适用于数据处理、数据通信等。
2,ispGAL器件
ispGAL系列器件,是把 ISP技术引入到标准的低密度系列可编程逻辑器件中形成的 ISP器件 。
典型产品,ispGAL22V10
ispGAL22V10是把流行的 GAL22V10与 ISP技术相结合形成的产品,在功能和结构上与 GAL22V10完全相同 。
适应范围,高速图形处理和高速总线管理,状态控制,
数据处理,通信工程,测量仪器以及实现诸如地址译码器之类的基本逻辑功能 。
第八章 可编程逻辑器件第八章 可编程逻辑器件
3,ispGDS器件
ispGDS(在系统可编程数字开关 )是 ISP技术与开关矩阵相结合的产物 。 它标志着 ISP技术已从系统逻辑领域扩展到系统互连领域 。
ispGDS器件能提供的一种独特功能是,在不拨动机械开关或不改变系统硬件的情况下,快速地改变或重构印制电路板的连接关系 。
ispGDS系列器件非常适合于重构目标系统的连接关系,它使系统硬件可以通过软件控制进行重构而无需人工干预 。
第八章 可编程逻辑器件二,ispLSI 逻辑器件的结构
ispLSI是 ISP逻辑器件中最早问世,最具代表性的逻辑器件 。
该 系 列器 件是 基 于与,或 阵列 结构 的 复杂 PLD 产品 。
ispLSI芯片由若干巨块组成,巨块之间通过全局布线区 GRP
连接起来,每个巨块包括若干个通用逻辑块 GLB,输出布线区
ORP,若干输入输出引脚和专用输入引脚等 。
1,ispLSI1016的特性
ispLSI1016是采用 E2CMOS工艺制造,PLCC(塑料有引脚芯片载体 )封装的器件 。 芯片共有 44个引脚,其中 38个 I/O引脚;
集成密度为 2000等效门,每片含 64个触发器和 32个锁存器;最 高工作频率为 110MHz。
典型产品,ispLSI1016
第八章 可编程逻辑器件
2,组成该器件由两个巨块,
一个全局布线区和一个时钟分配网络构成 。 如右图所示 。
每个巨块包括,8个通用逻辑单元 GLB,16个 I/O
单元,两只专用输入引脚
(IN0,IN1或 IN2,IN3 ),一个输出布线区 ORP及 16位输入总线 。
器件型号 ispLSI1016
中的,16”表示器件含有 16
个 GLB。
第八章 可编程逻辑器件
3,主要模块功能
(1) 全局布线区 GRP
GRP位于两个巨块之间 。 除了经过各个 I/O单元的输入信号由 16位输入总线送至 GRP之外,各 GLB的输出在送往输出布线区的同时也送往 GRP。 GRP实现上述信号和各个 GLB输入之间的灵活互连,将所有片内逻辑联系在一起,供设计者使用,设计者可以根据需要方便地实现各种复杂的逻辑功能 。
ispLSI1016 的引脚排列图如右图所示 。
第八章 可编程逻辑器件
(2) 通用逻辑块 GLB
通用逻辑块 GLB是 ispLSI器件最基本的逻辑单元,由与阵列,乘积项共享阵列,输出逻辑宏单元和控制逻辑电路组成 。
与阵列,共有 18个输入,18个输入经过输入缓冲器后形成 18个输入信号的原信号和非信号,送至 20个与门的输入端,
通过编程可形成 20个与项 (又称乘积项 PT)。
乘积项共享阵列,乘积项共享阵列将 20个与项 PT0~ PT19
分组送到 4个或门的输入端,对 4个或门的输出进行可编程,线或,后,再送到输出逻辑宏单元中的可重构触发器 。
输出宏单元,输出逻辑宏单元中有 4个可重构触发器,由
4个数据选择器 MUX分别选择 GLB的 4个输出 O3~ O0为组合输出或者寄存器输出 。 组合电路可有,与或,和,异或,两种方式,触发器可组态为 D,T,JK等形式 。
第八章 可编程逻辑器件
(3)输出布线区 ORP
输出布线区 ORP是介于 GLB和输入输出单元 IOC之间的可编程互连阵列 。
阵列的输入是 8个 GLB的 32个输出端,阵列有 16个输出端,
分别与该侧的 16个 IOC相连 。 通过对 ORP编程,可以将任何一个
GLB的输出灵活地送到 16个 IOC中的任何一个 (每个 GLB有 4个输出,每个输出通往 4个 IOC中的一个 )。
特点,GLB与 IOC之间没有一一对应的关系,可将对 GLB
的编程和对外部引脚的连接分开进行,从而可以在不改变外部引脚排列的情况下,修改芯片内部的逻辑设计 。
为了减少传输延迟,提高工作速度,每个 GLB的 4个输出中有两个输出可以跨过 ORP直接通向固定的 IOC,这种方式称为旁路连接 。
第八章 可编程逻辑器件
(4)输入输出单元 IOC
输入输出单元 IOC用于将输入信号,输出信号或输入输出双向信号与具体的 I/O管脚相连接形成输入,输出,三态输出的双向 I/O口,具体由控制输出三态缓冲器使能端的 MUX
来选择 。
IOC工作于输入状态,包括有输入缓冲,锁存输入及寄存器输入;
IOC工作于输出状态,包括有输出缓冲,反向输出缓冲及三态输出缓冲;
IOC工作于双向状态,有双向 I/O及带有寄存器的双向
I/O。
各种 I/O组态与 GLB组态相组合,可构成几十种电路方式 。
第八章 可编程逻辑器件
(5) 巨块的输出使能控制电路巨块内 8个 GLB中的与项 PT19都能用作输出使能控制 。 8个
PT19接到一个 8选 1输出使能数据选择器 OEMUX的数据输入端,
通过对三个选择输入的,熔丝,值编程,可选择其中一个 PT19
作为巨块内 16个 IOC的公共输出使能控制信号 。
(6) 时钟分配网络
GLB B0的 4个输出 O0~ O3能分别作为用户定义的内部时钟 CLK1,CLK2,IOCLK0及 IOCLK1时钟,另有 CLK0
是外部时钟 。
第八章 可编程逻辑器件
8.5.3 ISP器件的开发软件与设计流程一,ISP器件的开发软件目前,常用的 ISP器件开发软件有 PDS软件,Synario软件,ISP Synario System软件等 。
第八章 可编程逻辑器件二,设计流程利用 ISP器件开发软件进行设计一般步骤为:
逻辑设计规划
↓
设计输入
↓
设计检验
↓
布局布线
↓
逻辑功能仿真
↓
熔丝图生成
↓
下载编程第八章 可编程逻辑器件
1,逻辑设计规划目的,选择合适的 ispLSI器件实现预定功能 。
进行设计规划时,首先定义 I/O端口,以便考虑器件的 I/O
单元是否够用 。 然后进行任务划分,即将要求完成的设计任务分配到各个通用逻辑块 GLB中 。 最后统计出所需要的 GLB数目和 I/O单元数目,作为器件型号选择的依据 。 确定了 I/O单元数和 GLB数之后,便可选择合适的 ispLSI器件 。
第八章 可编程逻辑器件
2,设计输入所谓设计输入就是将设计者所设计的电路,按照开发软件要求的某种形式表达出来,并输入计算机中 。
3,设计检验
①
② 设计规划检验
③ 逻辑最小化
④ 逻辑适配
⑤ 全局设计规划检验第八章 可编程逻辑器件
4,布局布线布局布线工作是由软件自动完成的,它能以最优方式对逻辑元件布局和准确地实现元件间的互连 。
5,逻辑模拟逻辑模拟又称为逻辑功能仿真,它包括功能模拟和定时模拟 。
第八章 可编程逻辑器件
6,熔丝图生成熔丝图生成是指生成 JEDEC文件 (熔丝图 ),它是设计过程的重要目标。
7,下载编程下载编程就是将设计生成的熔丝图文件 JEDEC装入 ispLSI
器件中 。
有关 ISP器件的编程原理和开发软件的使用等请参考相关书籍 。
rammable Logic Device,简称 PLD) 属于 LSI中的半用户定制电路。由于 PLD具有结构灵活、性能优越、设计简单等特点,
因而在不同应用领域中受到广泛重视,是构成数字系统的理想器件。
数字系统中常用的大规模集成电路可分为三大类。
非用户定制电路 (Non custom design IC)
全用户定制电路 (Full custom design IC)
半用户定制电路 (Semicustom design IC)
第八章 可编程逻辑器件本章知识要点:
☆ PLD的基本概念
☆ 低密度可编程逻辑器件
☆ 复杂可编程逻辑器件
☆ 现场可编程门阵列
☆ 在系统编程技术简介第八章 可编程逻辑器件
8,1 P L D 概 述
PLD是 20世纪 70年代开始发展起来的一种新型大规模集成电路 。 一片 PLD所容纳的逻辑门可达数百,数千甚至更多,其逻辑功能可由用户编程指定 。
PLD特别适宜于构造小批量生产的系统,或在系统开发研制过程中使用 。
第八章 可编程逻辑器件
8.1.1 PLD的发展
20世纪 70年代初期,第一种 PLD器件 -----可编程只读存储器
(PROM)问世 。 PROM由一个,与,阵列和一个,或,阵列组成,
,与,阵列是固定的,,或,阵列是可编程的;
20世纪 70年代中期,出现了可编程逻辑阵列 (PLA),PLA同样由一个,与,阵列和一个,或,阵列组成,但其,与,阵列和
,或,阵列都是可编程的;
20世纪 70年代末期,出现了可编程阵列逻辑 (PAL)。 PAL器件的,与,阵列是可编程的,而,或,阵列是固定的,它有多种输出和反馈结构,因而给逻辑设计带来了很大的灵活性 。 但 PAL
器件一般采用熔丝工艺,一旦编程后便不能改写 。
第八章 可编程逻辑器件
20世纪 80年代中期,先后出现了通用阵列逻辑 (GAL),复杂可编程逻辑器件 ( CPLD) 和现场可编程门阵列 (FPGA)等可编程器件 。
20世纪 90年代,产生了在系统编程 (ISP)器件。在系统编程是指用户具有在自己设计的目标系统中或线路板上为重构逻辑而对逻辑器件进行编程或反复改写的能力。 ISP器件为用户提供了传统的 PLD技术无法达到的灵活性,使可编程逻辑技术发生第八章 可编程逻辑器件
8.1.2 PLD的基本结构
PLD的基本组成为一个“与”阵列和一个“或”阵列。 阵列中输入线和输出线的交 点通过逻辑元件相连接。这些元件是接通还是断开,可由厂家根据器件的结构特征决定或由用户根据要求编程决定。基本结构如下图所示。
I0 In
P0
Pm
“与”项 O0
Or
输出“与”阵列,或”阵列在基本结构的基础上,附加一些其他逻辑元件,如输入缓冲器,输出寄存器,内部反馈,输出宏单元等,便可构成各种不同的 PLD。
第八章 可编程逻辑器件
8.1.3 PLD的电路表示法对于 PLD器件,用逻辑电路的一般表示法很难描述其内部电路,这给 PLD的生产和应用带来诸多不便 。 为此,对描述
PLD基本结构的有关逻辑符号和规则作出了某些约定 。
一,与门和或门下图给出了 3输入与门的两种表示法 。 传统表示法 (图 (a))中与门的 3个输入 A,B,C在 PLD表示法 (图 (b))中称为 3个输入项,
而输出 D称为,与,项 。 同样,或门也采用类似方法表示 。
&
D
A
B
C
(a)
&
A B C
D
(b)
第八章 可编程逻辑器件二,输入缓冲器典型输入缓冲器的 PLD表示法如右图所示 。 它的两个输出 B,C是其输入 A的原和反
( 见图中真值表 ) 。
1A B
C
A B C
1 1
10 0
0
三,连接方式
PLD阵列交叉点上的三种连接方式如图 (a)所示 。 实点,·”表示硬线连接,即固定连接;,×,表示可编程连接;没有,×,和,·”
的表示两线不连接 。 如图 (b)中的输出 F=A·C。
固定连接可编程连接不连接
&
A B C
F
(a)
(b)
第八章 可编程逻辑器件四、与门不执行任何功能时的连接表示
&
&
D
E
F
A B
1 1
0 0 0 0
0 0 0
0 0 0
00
1
1
1
1 1
1 1 1
A B D E F
图中,输出为 D的与门连接了所有的输入项,其输出方程为方便起见,用标有,×,标记的与门输出来表示所 有输入缓冲器输出全部连到某一,与,
项的情况,如图中输出 E。
与上述相反,图中输出 F表示无任何输出项与其相连,因此,
该,与,项总是处于,浮动,
的逻辑,1”。
第八章 可编程逻辑器件根据 PLD中阵列和输出结构的不同,目前常用的 PLD有
4
● 可编程只读存储器 PROM
● 可编程逻辑阵列 PLA
● 可编程阵列逻辑 PAL
● 通用阵列逻辑 GAL
8,2 低密度可编程逻辑器件第八章 可编程逻辑器件
8,2,1 可编程只读存储器 PROM
一,半导体存储器的分类存储器 (Memory)是数字计算机和其他数字系统中存放信息的重要部件 。 随着大规模集成电路的发展,半导体存储器因其具有集成度高,速度快,功耗小,价格低等优点而被广泛应用于各种数字系统中 。
半导体存储器按功能可分为两大类 。
随机存取存储器 RAM(Random Access Memory)
只读存储器 ROM(Read Only Memory)
第八章 可编程逻辑器件
1,随机存取存储器 RAM
RAM是一种既可读又可写的存储器,故又称为读写存储器 。
根据制造工艺的不同,RAM又可分为双极型和 MOS型两种类型 。
MOS型 RAM又可进一步分为静态 RAM(SRAM)和动态 RAM(DRAM)两种,相比之下 DRAM的集成度更高 。
RAM的优点是读写方便,使用灵活;缺点是一旦断电,
所存储的信息便会丢失,它属于易失性存储器 。
双极型 RAM,工作速度高,但成本高,功耗大,集成度低,主要用作高速小容量存储器 。
MOS型 RAM,功耗小,集成度高,成本低,但速度比双极型 RAM低,适宜于构造大容量存储器 。
第八章 可编程逻辑器件
2,只读存储器 ROM
只读存储器 ROM是一种在正常工作时只能读出,不能写入的存储器 。 通常用来存放那些固定不变的信息 。 只读存储器存入数据的过程通常称为编程 。
只读存储器 ROM属于非易失性存储器,即使切断电源,
ROM中的信息也不会丢失,因而在数字系统中获得广泛应用 。
根据编程方法的不同,可分为两类 。
掩膜编程 ROM( 简称 MROM),存放的内容是由生产厂家在芯片制造时利用掩膜技术写入的 。 优点是可靠性高,集成度高,批量生产时价格便宜;缺点是用户不能重写或改写,不灵活 。
用户可编程 ROM( 简称 PROM),存放的内容是由用户根据需要在编程设备上写入的 。 优点是使用灵活方便,适宜于用来实现各种逻辑功能 。
第八章 可编程逻辑器件二,可编程 ROM的结构与类型
1,PROM的逻辑结构
PROM的结构框图如下图所示,它主要由地址译码器和存储体两大部分组成 。
地址译码器存储体
W0 W1 W2n-1
A0
An-1
D0
D1
Dm-1
第八章 可编程逻辑器件图中,A0~ An-1为地址输入线; W0~ W2n-1为地址译码输出线,又称为 字线 ; D0~ Dm-1为数据输出线,又称为 位线 。 通常,
将一个 n位地址输入和 m位数据输出的 PROM的存储容量表示为 2n× m(位 ),意味着存储体中有 2n× m个存储元,每个存储元的状态代表一位二进制代码 。
地址译码器存储体
W0 W1 W2n-1
A0
An-1
D0
D1
Dm-1
第八章 可编程逻辑器件存储体的结构示意图如下:
0,0 1,0
0,1 1,1
W0 W1
2n-1,0
2n-1,1
W2n-1
D0
D1
0,m-1 1,m-1 2n-1,m-1
Dm-1
存储元第八章 可编程逻辑器件从逻辑器件的角度理解,PROM是由一个固定连接的与门阵列和一个可编程连接的或门阵列所构成的组合逻辑电路 。 例如,
一个 8× 3(8与门 × 3或门 )PROM的逻辑结构图如下 。
& & & & & & & &
m0 m1 m2 m3 m4 m5 m6 m7
≥1
≥1
≥1
D2
D1
D0
1
1
1
A
B
C
第八章 可编程逻辑器件为了 PROM设计的方便,通常将逻辑结构图简化为阵列逻辑图,简称阵列图 。 画阵列图时,将 PROM中的每个与门和或门都简化成一根线 。 上图的阵列逻辑图如下图所示 。
图中虚线上面 6
根水平线分别表示输入线 A、,B、,
C,。 与门阵列的 8
根垂直线代表 8个与门,
或门阵列中标有 D2、
D1,D0 的 3根水平线表示 3个或门 。
A
B
C
,或,
阵列
D2
D1
D0
,与,
阵列
m0 m1 m2 m3 m4 m5 m6 m7
第八章 可编程逻辑器件
2,PROM的类型根据存储元电路构造的不同,PROM有 3种常用的类型 。
(1) 一次编程的 ROM(PROM)
所有存储元均被加工成同一状态,0”(或,1”),用户可通过编程将某些存储元的状态改变成另一状态,1”(或,0”)。
这种编程只能进行一次,一旦编程完毕,其内容便不能再改变 。
PROM与固定 ROM相比,增加了灵活性 。 但因其可靠性较差,加之只能一次性编程,故目前很少使用 。
第八章 可编程逻辑器件
(2) 可抹可编程 ROM(EPROM)
EPROM不仅可由用户编程存放指定的信息,而且可由用户通过专用的紫外线灯照射芯片上的受光窗口,将原存储内容抹去,再写入新的内容 。 这一特性是由 EPROM中存储元的电路结构决定的 。
(3) 电可抹可编程 ROM(EEPROM)
EEPROM的结构与 EPROM相似,但 EEPROM在浮栅上增加了一个遂道二极管,编程时可使电荷通过它流向浮栅,而擦除时可使电荷通过它流走,即擦除和编程均用电完成 。 这种器件不仅工作电流小,擦除速度快,而且允许改写的次数大大高于 EPROM,一般允许改写 100次~ 1000次 。 目前,EPROM和
EEPROM的应用均十分广泛 。
第八章 可编程逻辑器件三,PROM应用举例由于 PROM是由一个固定连接的,与,阵列和一个可编程连接的,或,阵列组成,所以,用户只要改变,或,阵列上连接点的数量和位置,就可以在输出端形成由输入变量,最小项之和,表示的任何一种逻辑函数 。
采用 PROM进行逻辑设计时,只需首先根据逻辑要求列出真值表,把真值表的输入作为 PROM的输入,然后根据逻辑函数值确定对 PROM“或,阵列进行编程的代码,画出相应的阵列图即可 。
第八章 可编程逻辑器件例 用 PROM设计一个代码转换电路,将 4位二进制码转换为 Gray码 。
解 设 4位二进制码为 B3,B2,B1,B0,4位 Gray码为
G3,G2,G1,G0,其真值表如下表所示 。
二进制码
B3 B2 B1 B0 G3 G2 G1 G0 B3 B2 B1 B0 G3 G2 G1 G0
Gray码 二进制码 Gray码
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
0 0 0 0
0 0 0 1
0 0 1 1
0 0 1 0
0 1 1 0
0 1 1 1
0 1 0 1
0 1 0 0
1 1 0 0
1 1 0 1
1 1 1 1
1 1 1 0
1 0 1 0
1 0 1 1
1 0 0 1
1 0 0 0
第八章 可编程逻辑器件将 4位二进制码作为 PROM的输入,Gray码作为 PROM的输出,可选容量为 24× 4的 PROM实现给定功能 。 根据真值表可画出该电路的阵列图如下图所示 。
G0
G1
G2
G3
“或,阵列
“与,阵列
B0
B1
B2
B3
m0 m1 m2 m3 m4 m5 m6 m7 m8 m9 m 10 m 11 m 12 m 13 m 14 m 15
注,图中标,×,处代表,1”,否则代表,0”。
第八章 可编程逻辑器件
8.2.2 可编程逻辑阵列 PLA
PLA是一种,与,阵列和,或,阵列均可编程的逻辑器件,
即可编程逻辑阵列 PLA(ProgrammableLogic Array)。
PLA可分为组合 PLA和时序 PLA两种类型 。
一,组合 PLA
1,组合 PLA的逻辑结构逻辑结构,由一个,与,阵列和一个,或,阵列构成,“与,
阵列和,或,阵列都是可编程的 。
第八章 可编程逻辑器件一个具有 3个输入变量,可提供 6个,与,项,产生 3个输出函数的 PLA逻辑结构图及其相应阵列图如下图所示 。
1
1
1
A
B
C
& & & & & &
≥1
≥1
≥1
Q2
Q1
Q0
Q2
Q1
Q0
A
B
C
“与,
阵列
“或,
阵列第八章 可编程逻辑器件
PLA的存储容量 用输入变量数 (n),与项数 (p),输出端数 (m)
来表示 。
前面所示 PLA的容量为 3—6—3。 目前常见的有容量为
16—48—8和 14—96—8等 PLA器件 。
2,应用举例采用 PLA进行逻辑设计,可以十分有效地实现各种逻辑功能 。
相对 PROM而言,PLA更灵活,更经济,结构更简单 。
用 PLA设计组合逻辑电路时,一般分为两步:
● 将给定问题的逻辑函数按多输出逻辑函数的化简方法简化成最简,与 -或,表达式;
● 根据最简表达式中的不同,与项,以及各函数最简,与 -
或,表达式确定,与,阵列和,或,阵列,并画出阵列逻辑图 。
第八章 可编程逻辑器件例 用 PLA设计一个代码转换电路,将一位十进制数的
8421码转换成余 3码 。
解 设 ABCD-------表示 8421码,WXYZ-------表示余
3码,可列出转换电路的真值表如下表所示 。
A B C D W X Y Z
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
d d d d
d d d d
d d d d
d d d d
d d d d
d d d d
A B C D W X Y Z
第八章 可编程逻辑器件根据真值表写出函数表达式,并按照多输出函数化简法则用卡诺图进行化简,可得到最简,与 -或,表达式如下:
DZ
DCCDY
DCBDBCBX
BDBCAW
由此可见,全部输出函数只包含 9个不同
,与,项,所以,该代码转换电路可用一个容量为 4 —9—4的 PLA实现,其阵列图如图所示 。
第八章 可编程逻辑器件二,时序 PLA
逻辑结构,由,与,阵列,,或,阵列和一个用于存储过去输入状态的触发器网络构成 。
“与”
门阵列
“或”
门阵列触发器组
y1
yr
x1
xn
Y1
Yr
Zr
Z1
时钟 复位触发器网络中包含若干触发器,它们的输入接受,或,阵列输出及时钟脉冲,复位信号的控制,
其输出反馈到,与,阵列,
用来和当前输入一起产生
,与,项输出 。 时序 PLA的结构框图如右图所示 。
31
第八章 可编程逻辑器件
8.2.3 可编程阵列逻辑 PAL
PAL(Programmable Array Logic)是在 PROM和 PLA的基础上发展起来的一种可编程逻辑器件 。 它相对于 PROM而言,
使用更灵活,且易于完成多种逻辑功能,同时又比 PLA工艺简单,易于实现 。
32
第八章 可编程逻辑器件一,PAL的逻辑结构
PAL由一个可编程的,与,阵列和一个固定连接的,或,
阵列组成 。 图 (a)给出了一个三输入三输出 PAL的逻辑结构图,
通常将其表示成图 (b)所示形式 。
33
第八章 可编程逻辑器件
PAL每个输出包含的,与,项数目是由固定连接的,或,
阵列提供的 。 在典型逻辑设计中,一般函数约包含 3个~ 4个
,与,项,而现有 PAL器件最多可为每个输出提供 8个,与,项,
因 此,使用这种器件能很好地完成各种常用逻辑电路的设计 。
PAL器件的结构 (包括输入,输出,,与,项数目 )是由生产厂家固定的 。
从 PAL问世至今,大约已生产出几十种不同的产品,按其输出和反馈结构,大致可将其分为 5种基本类型 。
(1) 专用输出的基本门阵列结构这种结构类型适用于实现组合逻辑函数 。 常见产品有
PAL10H8(10 个 输 入,8 个 输 出,输 出 高 电 平 有 效 ),
PAL12L6(12个输入,6个输出,输出低电平有效 )等 。
34
第八章 可编程逻辑器件
(2) 带反馈的可编程 I/O结构带反馈的可编程 I/O结构通常又称为异步可编程 I/O结构 。
该类 PAL器件常见产品有 PAL16L8(10 个输入,8个输出,6个反馈输入 )以及 PAL20L10(12个输入,10个输出,8个反馈输入 )。
(3) 带反馈的寄存器输出结构带反馈的寄存器输出结构使 PAL构成了典型的时序网络结构 。 该类器件的典型产品有 PAL16R8(8个输入,8个寄存器输出,8个反馈输入,1个公共时钟和 1个公共选通 )。
35
第八章 可编程逻辑器件
(4) 加,异或,,带反馈的寄存器输出结构 这种结构是在带反馈寄存器输出结构的基础上增加了一个异或门,该类电路的典型产品有 PAL16RP8 (8个输入,8个寄存器输出,8个反馈输入 )。
(5) 算术选通反馈结构算术 PAL是在综合前几种 PAL结构特点的基础上,增加了反馈选通电路,使之能实现多种算术运算功能 。 算术 PAL的典型产品有 PAL16A4(8个输入,4个寄存器输出,4个可编程 I/O输出,
4个反馈输入,4个算术选通反馈输入 )。
36
第八章 可编程逻辑器件二,PAL应用举例设计的一般步骤用 PAL进行逻辑设计的一般步骤如下:
(1) 建立对给定问题的逻辑描述;
(2) 写出相应的函数表达式;
(3) 选择合适的器件;
(4) 编程实现 。
第八章 可编程逻辑器件
8.2.4 通用阵列逻辑 GAL
GAL(Generic Array Logic)器件 是 1985年由美国
LATTICE公司开发并商品化的一种新的 PLD器件。它是在
PAL器件的基础上综合了 E2PROM和 CMOS技术发展起来的一种新型技术。
GAL器件具有 PAL器件所没有的可擦除、可重写及结构可组态等特点。这些特点形成了器件的可测试性和高可靠性,
且具有更大的灵活性。
第八章 可编程逻辑器件一,GAL的基本逻辑结构
1,GAL16V8的基本组成
GAL16V8芯片是一种具有 8个固定输入引脚,最多可达 16
个输入引脚,8个输出引脚,输出可编程的普通型 GAL。
组成,由 8个输入缓冲器,8个反馈输入缓冲器,8个输出逻辑宏单元 OLMC,8个输出三态缓冲器,,与,阵列以及系统时钟,输出选通信号等组成 。
第八章 可编程逻辑器件
2,输出逻辑宏单元 OLMC
OLMC由一个 8输入或门,极性选择异或门,D触发器,4个多路选择器等组成 。 其结构如下图所示 。
第八章 可编程逻辑器件
3,结构控制字
(1) 结构控制字的组成
GAL16V8由一个 82位的结构控制字控制着器件的各种功能组合状态 。 该控制字各位功能如下 。
“与”项禁止位
32位
XOR(n)
4位
SYN
1位
AC1(n)
8位
ACO
1位
XOR(n)
4位
“与”项禁止位
32位
PT63 PT32 PT0PT31
82位
12 15 12 19 16 19
图中,XOR(n)和 AC1(n)字段下面的数字分别对应器件的引脚号 。
第八章 可编程逻辑器件结构控制字各位的功能如下:
同步位 SYN———确定器件是寄存器输出或是纯粹的组合输出。
SYN=0时,GAL器件有寄存器输出能力;
SYN=1时,GAL为一个纯粹组合逻辑器件。
结构控制位 AC0—该位对于 8个 OLMC是公共的,它与 AC1(n)
配合控制各个 OLMC(n)中 的多路选择器 。
结构控制位 AC1—共有 8位,每个 OLMC(n)有单独的 AC1(n)。
极性控制位 XOR(n)—它通过 OLMC(n)中的异或门控制逻辑操作结果的输出极性 。
XOR(n)=0时,输出信号 O(n)低电平有效;
XOR(n)=1时,输出信号 O(n)高电平有效 。
“与,项 (PT)禁止位 —共 64位,分别控制,与,阵列的 64行 (PT0~
PT63),以便屏蔽某些不用的,与,项 。
第八章 可编程逻辑器件
(2) OLMC(n)的 5种组态通过编程结构控制字中的 SYN,AC0和 AC1(n),输出逻辑宏单元 OLMC(n)可以组成以下 5种组态 。
① 专用输入方式 (SYN·AC0·AC1(n)=101)
② 专用组合型输出方式 (SYN·AC0·AC1(n)=100)
③ 组合型输出方式 (SYN·AC0·AC1(n)=111)
④ 寄存器型器件中的组合逻辑输出方式
(SYN·AC0·AC1(n)=011)
⑤ 寄存器型输出方式 (SYN·AC0·AC1(n)=010)
第八章 可编程逻辑器件
4.行地址布局
(1) 行地址布局图
GAL器件的可编程阵列包括,与,阵列,结构控制字,
保密位及整体擦除位等 。 对其进行编程时是由行地址进行映射的 。 GAL16V8的行地址布局图如图所示 。
SRL(82位 )
PT63 PT32 PT31 PT00
门 阵 列 门 阵 列电子标签 电子标签保留地址空间结构控制字 (82位 )
SDIN
SDOUT
0
31
32
33
59
60
加密单元备用整体擦除第八章 可编程逻辑器件
(2) 供用户使用的行地址当对 GAL16V8进行编程实现某个设计方案时,可供用户使用的行地址总共有 36个,
① 行地址 0~ 31,用户用来编程制定逻辑模式的阵列 。
32个行地址对应逻辑结构图上,与,阵列的 32个输入,每个行地址可写入 64位数据,对应于 64个,与,项 。
② 行地址 32,器件的电子标签 (ES)。 它提供 64位供用户定义 。 例如,用来识别用户身份的代码,版本号,编目管理等,这个标签中的数据与下述保密单元的状态无关,用户始终可以使用 。
③ 行地址 60,82位的结构控制字,用于设计所需用途的器件 。
第八章 可编程逻辑器件
④ 行地址 61,仅 1位的保密位,用于防止复制阵列的逻辑点阵 。 该位一旦被编程,存取阵列的电路就不能工作,从而防止了对 32位的,与,阵列再次编程或读出 。
该单元只能在整体擦除时和阵列一起被擦除,所以,一旦保密位被编程,就绝对不能检查阵列的原始配置,仅电子标签除外 。
⑤ 行地址 63,仅含 1位,用于器件整体擦除 。 在器件编程期间访问该行时,执行清除功能,整个,与,阵列,结构控制字,电子标签以及保密单元统统被擦除,使编程的器件恢复到未使用的状态 。
第八章 可编程逻辑器件二,GAL的应用
1,用 GAL进行逻辑设计的一般步骤一般步骤如下:
(1) 分析设计要求,确定描述给定功能的逻辑表达式 。
这是关键的一步,设计者可综合运用逻辑设计技术,完成有关逻辑设计 。
(2) 根据逻辑设计结果,选择 GAL器件并对器件进行引脚分配 。
在器件选择时,一般首先应满足输入,输出端数目的要求,其次考虑速度,功率等因素 。 器件确定后,根据要求给各引脚赋予变量名 。
第八章 可编程逻辑器件
(3) 编写 GAL设计说明书在调用编程软件前,首先要根据规定的语法格式和逻辑设计结果编写设计说明书 (又称为 GAL源程序 )。
说明书中通常包括器件型号,实现的功能,设计者姓名和设计日期,电子标签,GAL引脚表以及逻辑表达式等 。
(4) 建立有关文件建立文本文件 (LST文件 ),熔丝图文件 (PLT文件 ),标准装载文件 (JE D文件 )等 。
(5) 硬件编程包括连接编程器,建立 GAL编程系统,编程后写保密位等 。
48
第八章 可编程逻辑器件
8.3 复杂可编程逻辑器件复杂可编程逻辑器件 ( complex programmable logic device,
简称 CPLD) 是从简单 PLD发展而来的高密度 PLD器件 。 一般由逻辑块,可编程内部连线区和 I/O单元组成 。 常见 CPLD的结构示意图如下:
49
第八章 可编程逻辑器件一,CPLD的结构根据集成规模和设计方法的不同,各生产厂家提供的 CPLD
在结构上具有各自的特色。目前,常用的 CPLD结构有通用互连阵列结构、大块结构和灵活逻辑单元阵列结构等不同类型。
(有关 CPLD的介绍见教材中相关部分 )
二,典型器件最常用的 CPLD有 Altera公司生产的 FLEX 10K系列器件。
FLEX 10K 是 一种嵌入式的 PLD。它采用灵活逻辑单元阵列结构和重复可构造的 CMOS SRAM工艺,具有高密度、低成本、低功率等特点,现已成为 ALTERA CPLD中应用前景最好的器件系列。
50
第八章 可编程逻辑器件
8.4 现场可编程门阵列现场可编程门阵列 FPGA( Field Programmable Gate Array) 是 20世纪
80年代中后期发展起来的一种高密度可编程逻辑器件,它由世界著名的可编程逻辑器件供应商 Xilinx公司最初提出 。 不同公司生产的 FPGA器件在结构和性能上不尽相同,Xilinx公司的 XC4000系列 FPGA器件的结构示意图如下:
51
第八章 可编程逻辑器件有关 FPGA的典型器件见教材中相关部分!
第八章 可编程逻辑器件
8.5 在系统编程技术简介在系统编程 (In System Programmable,简称 ISP)技术是
20世纪 90年代发展起来的一种 PLD技术 。
所谓在系统编程,是指可以在用户自己设计的目标系统上,为实现预定逻辑功能而对逻辑器件进行编程或改写 。
ISP器件的出现,使数字系统设计更加灵活,方便,为用户带来了显著的经济效益和时间效益 。 可以说,ISP技术是
PLD设计技术发展中的一次重要变革 。
第八章 可编程逻辑器件
8.5.1 ISP技术的主要特点
ISP技术的应用,对数字系统硬件设计方法,设计环境,
系统调试周期,测试与维护,系统的升级以及器件的充分利用等均产生了重要影响 。 主要特点如下:
一,全面实现了硬件设计与修改的软件化二,简化了设计与调试过程三,容易实现系统硬件的现场升级四,可降低系统成本,提高系统可靠性五,器件制造工艺先进,性能参数好第八章 可编程逻辑器件
8.5.2 ISP逻辑器件一,ISP逻辑器件的类型目前,市场上提供的 ISP逻辑器件可分为 ispLSI,ispGAL
和 ispGDS三种类型 。
1,ispLSI逻辑器件
ispLSI(在系统编程大规模集成 )逻辑器件具有集成度高,速度快,可靠性好,灵活方便等优点,能满足在高性能系统中实现各种复杂逻辑功能的需要,被广泛应用于数据处理,图形处理,空间技术,军事装备及通信,自动控制等领域 。
第八章 可编程逻辑器件
ISP技术是美国 Lattice公司率先推出的,该公司将 ISP技术应用到高密度可编程逻辑器件 (HDPLD)中,形成了 ispLSI系列高密度在系统可编程逻辑器件 。 常用 ispLSI器件有 4个系列,
① 基本系列 ispLSI1000,适用于高速编码,总线管理等;
② 高速系列 ispLSI2000,I/O端口数较多,适用于高速 计 数、定时等场合,并可用作高速 RISC/CISC微处理器的接口;
③ 高密系列 ispLSI3000,集成密度高,能实现非常复杂的逻辑功能,适用于数字信号处理、图形处理、数据压缩等;
④ 模块化系列 ispLSI6000,带有存储器和寄存器 /计数器,适用于数据处理、数据通信等。
2,ispGAL器件
ispGAL系列器件,是把 ISP技术引入到标准的低密度系列可编程逻辑器件中形成的 ISP器件 。
典型产品,ispGAL22V10
ispGAL22V10是把流行的 GAL22V10与 ISP技术相结合形成的产品,在功能和结构上与 GAL22V10完全相同 。
适应范围,高速图形处理和高速总线管理,状态控制,
数据处理,通信工程,测量仪器以及实现诸如地址译码器之类的基本逻辑功能 。
第八章 可编程逻辑器件第八章 可编程逻辑器件
3,ispGDS器件
ispGDS(在系统可编程数字开关 )是 ISP技术与开关矩阵相结合的产物 。 它标志着 ISP技术已从系统逻辑领域扩展到系统互连领域 。
ispGDS器件能提供的一种独特功能是,在不拨动机械开关或不改变系统硬件的情况下,快速地改变或重构印制电路板的连接关系 。
ispGDS系列器件非常适合于重构目标系统的连接关系,它使系统硬件可以通过软件控制进行重构而无需人工干预 。
第八章 可编程逻辑器件二,ispLSI 逻辑器件的结构
ispLSI是 ISP逻辑器件中最早问世,最具代表性的逻辑器件 。
该 系 列器 件是 基 于与,或 阵列 结构 的 复杂 PLD 产品 。
ispLSI芯片由若干巨块组成,巨块之间通过全局布线区 GRP
连接起来,每个巨块包括若干个通用逻辑块 GLB,输出布线区
ORP,若干输入输出引脚和专用输入引脚等 。
1,ispLSI1016的特性
ispLSI1016是采用 E2CMOS工艺制造,PLCC(塑料有引脚芯片载体 )封装的器件 。 芯片共有 44个引脚,其中 38个 I/O引脚;
集成密度为 2000等效门,每片含 64个触发器和 32个锁存器;最 高工作频率为 110MHz。
典型产品,ispLSI1016
第八章 可编程逻辑器件
2,组成该器件由两个巨块,
一个全局布线区和一个时钟分配网络构成 。 如右图所示 。
每个巨块包括,8个通用逻辑单元 GLB,16个 I/O
单元,两只专用输入引脚
(IN0,IN1或 IN2,IN3 ),一个输出布线区 ORP及 16位输入总线 。
器件型号 ispLSI1016
中的,16”表示器件含有 16
个 GLB。
第八章 可编程逻辑器件
3,主要模块功能
(1) 全局布线区 GRP
GRP位于两个巨块之间 。 除了经过各个 I/O单元的输入信号由 16位输入总线送至 GRP之外,各 GLB的输出在送往输出布线区的同时也送往 GRP。 GRP实现上述信号和各个 GLB输入之间的灵活互连,将所有片内逻辑联系在一起,供设计者使用,设计者可以根据需要方便地实现各种复杂的逻辑功能 。
ispLSI1016 的引脚排列图如右图所示 。
第八章 可编程逻辑器件
(2) 通用逻辑块 GLB
通用逻辑块 GLB是 ispLSI器件最基本的逻辑单元,由与阵列,乘积项共享阵列,输出逻辑宏单元和控制逻辑电路组成 。
与阵列,共有 18个输入,18个输入经过输入缓冲器后形成 18个输入信号的原信号和非信号,送至 20个与门的输入端,
通过编程可形成 20个与项 (又称乘积项 PT)。
乘积项共享阵列,乘积项共享阵列将 20个与项 PT0~ PT19
分组送到 4个或门的输入端,对 4个或门的输出进行可编程,线或,后,再送到输出逻辑宏单元中的可重构触发器 。
输出宏单元,输出逻辑宏单元中有 4个可重构触发器,由
4个数据选择器 MUX分别选择 GLB的 4个输出 O3~ O0为组合输出或者寄存器输出 。 组合电路可有,与或,和,异或,两种方式,触发器可组态为 D,T,JK等形式 。
第八章 可编程逻辑器件
(3)输出布线区 ORP
输出布线区 ORP是介于 GLB和输入输出单元 IOC之间的可编程互连阵列 。
阵列的输入是 8个 GLB的 32个输出端,阵列有 16个输出端,
分别与该侧的 16个 IOC相连 。 通过对 ORP编程,可以将任何一个
GLB的输出灵活地送到 16个 IOC中的任何一个 (每个 GLB有 4个输出,每个输出通往 4个 IOC中的一个 )。
特点,GLB与 IOC之间没有一一对应的关系,可将对 GLB
的编程和对外部引脚的连接分开进行,从而可以在不改变外部引脚排列的情况下,修改芯片内部的逻辑设计 。
为了减少传输延迟,提高工作速度,每个 GLB的 4个输出中有两个输出可以跨过 ORP直接通向固定的 IOC,这种方式称为旁路连接 。
第八章 可编程逻辑器件
(4)输入输出单元 IOC
输入输出单元 IOC用于将输入信号,输出信号或输入输出双向信号与具体的 I/O管脚相连接形成输入,输出,三态输出的双向 I/O口,具体由控制输出三态缓冲器使能端的 MUX
来选择 。
IOC工作于输入状态,包括有输入缓冲,锁存输入及寄存器输入;
IOC工作于输出状态,包括有输出缓冲,反向输出缓冲及三态输出缓冲;
IOC工作于双向状态,有双向 I/O及带有寄存器的双向
I/O。
各种 I/O组态与 GLB组态相组合,可构成几十种电路方式 。
第八章 可编程逻辑器件
(5) 巨块的输出使能控制电路巨块内 8个 GLB中的与项 PT19都能用作输出使能控制 。 8个
PT19接到一个 8选 1输出使能数据选择器 OEMUX的数据输入端,
通过对三个选择输入的,熔丝,值编程,可选择其中一个 PT19
作为巨块内 16个 IOC的公共输出使能控制信号 。
(6) 时钟分配网络
GLB B0的 4个输出 O0~ O3能分别作为用户定义的内部时钟 CLK1,CLK2,IOCLK0及 IOCLK1时钟,另有 CLK0
是外部时钟 。
第八章 可编程逻辑器件
8.5.3 ISP器件的开发软件与设计流程一,ISP器件的开发软件目前,常用的 ISP器件开发软件有 PDS软件,Synario软件,ISP Synario System软件等 。
第八章 可编程逻辑器件二,设计流程利用 ISP器件开发软件进行设计一般步骤为:
逻辑设计规划
↓
设计输入
↓
设计检验
↓
布局布线
↓
逻辑功能仿真
↓
熔丝图生成
↓
下载编程第八章 可编程逻辑器件
1,逻辑设计规划目的,选择合适的 ispLSI器件实现预定功能 。
进行设计规划时,首先定义 I/O端口,以便考虑器件的 I/O
单元是否够用 。 然后进行任务划分,即将要求完成的设计任务分配到各个通用逻辑块 GLB中 。 最后统计出所需要的 GLB数目和 I/O单元数目,作为器件型号选择的依据 。 确定了 I/O单元数和 GLB数之后,便可选择合适的 ispLSI器件 。
第八章 可编程逻辑器件
2,设计输入所谓设计输入就是将设计者所设计的电路,按照开发软件要求的某种形式表达出来,并输入计算机中 。
3,设计检验
①
② 设计规划检验
③ 逻辑最小化
④ 逻辑适配
⑤ 全局设计规划检验第八章 可编程逻辑器件
4,布局布线布局布线工作是由软件自动完成的,它能以最优方式对逻辑元件布局和准确地实现元件间的互连 。
5,逻辑模拟逻辑模拟又称为逻辑功能仿真,它包括功能模拟和定时模拟 。
第八章 可编程逻辑器件
6,熔丝图生成熔丝图生成是指生成 JEDEC文件 (熔丝图 ),它是设计过程的重要目标。
7,下载编程下载编程就是将设计生成的熔丝图文件 JEDEC装入 ispLSI
器件中 。
有关 ISP器件的编程原理和开发软件的使用等请参考相关书籍 。