1、1,第八章 可编程逻辑器件,第八章 可编程逻辑器件,2,第八章 可编程逻辑器件,目前在数字系统设计中广泛使用的可编程逻辑器件(Programmable Logic Device,简称PLD)属于LSI中的半用户定制电路。由于PLD具有结构灵活、性能优越、设计简单等特点,因而在不同应用领域中受到广泛重视,是构成数字系统的理想器件。,数字系统中常用的大规模集成电路可分为三大类。,3,本章知识要点:PLD的基本概念 ;常用PLD及其在逻辑设计中的应用 ;ISP技术简介。,第八章 可编程逻辑器件,4,8.1 PLD概述,PLD是70年代开始发展起来的一种新型大规模集成电路。一片PLD所容纳的逻辑门可达
2、数百、 数千甚至更多,其逻辑功能可由用户编程指定。PLD特别适宜于构造小批量生产的系统,或在系统开发研制过程中使用。,第八章 可编程逻辑器件,5,8.1.1 PLD的发展,70年代初期: 第一种PLD器件-可编程只读存储器(PROM)问世。PROM由一个“与”阵列和一个“或”阵列组成,“与”阵列是固定的,“或”阵列是可编程的;70年代中期:出现了可编程逻辑阵列(PLA),PLA同样由一个“与”阵列和一个“或”阵列组成,但其“与”阵列和“或”阵列都是可编程的;70年代末期:出现了可编程阵列逻辑(PAL)。PAL器件的“与”阵列是可编程的,而“或”阵列是固定的,它有多种输出和反馈结构,因而给逻辑设
3、计带来了很大的灵活性。但PAL器件 一般采用熔丝工艺,一旦编程后便不能改写。,第八章 可编程逻辑器件,6,第八章 可编程逻辑器件,80年代中期: 通用阵列逻辑(GAL)器件问世。GAL器件采用高速电可擦CMOS工艺,能反复擦除和改写。特别是在结构上采用了“输出逻辑宏单元”电路,使一种型号的GAL器件可以对几十种PAL器件做到全兼容。给逻辑设计者带来了更大的灵活性。,90年代: 产生了在系统编程(ISP)器件。在系统编程是指用户具有在自己设计的目标系统中或线路板上为重构逻辑而对逻辑器件进行编程或反复改写的能力。ISP器件为用户提供了传统的PLD技术无法达到的灵活性,带来了极大的时间效益和经济效益
4、,使可编程逻辑技术发生了实质性飞跃。 PLD的发展和应用,简化了数字系统设计过程、降低了系统的体积和成本、提高了系统的可靠性和保密性。从根本上改变了系统设计方法,使各种逻辑功能的实现变得灵活、方便。,7,8.1.2 PLD的基本结构,PLD的基本组成为一个“与”阵列和一个“或”阵列。每个输出都是输入的“与-或”函数。阵列中输入线和输出线的交点通过逻辑元件相连接。这些元件是接通还是断开,可由厂家根据器件的结构特征决定或由用户根据要求编程决定。基本结构如下图所示。,第八章 可编程逻辑器件,8,PLD“与”阵列的输入为外部输入原变量及在阵列中经过反相后的反变量。它们按所要求的规律连接到各个与门的输入
5、端,并在各与门的输出端产生某些输入变量的“与”项作为“或”阵列的输入,这些“与”项按一定的要求连接到相应或门的输入端,在每个或门的输出端产生输入变量的“与-或”函数表达式。,在基本结构的基础上,附加一些其他逻辑元件,如输入缓冲器、输出寄存器、内部反馈、输出宏单元等,便可构成各种不同的PLD。,第八章 可编程逻辑器件,9,8.1.3 PLD的电路表示法,对于PLD器件,用逻辑电路的一般表示法很难描述其内部电路。为此,对描述PLD基本结构的有关逻辑符号和规则作出了某些约定。,一. 与门和或门下图给出了3输入与门的两种表示法。传统表示法(图(a)中与门的3个输入A、B、C在PLD表示法(图(b)中称
6、为3个输入项,而输出D称为“与”项。同样,或门也采用类似方法表示。,第八章 可编程逻辑器件,10,二. 输入缓冲器典型输入缓冲器的PLD表示法如右图所示。它的两个输出B、C是其输入A的原和反(见图中真值表)。,三. 连接方式PLD阵列交叉点上的三种连接方式如图(a)所示。实点“”表示硬线连接,即固定连接;“”表示可编程连接;没有“” 和“”的表示两线不连接。如图(b)中的输出F=AC。,第八章 可编程逻辑器件,11,四. 与门不执行任何功能时的连接表示,图中,输出为D的与门连接了所有的输入项,其输出方程为,为了方便起见,用标有“”标记的与门输出来表示所有输入缓冲器输出全部连到某一“与”项的情况
7、,如图中输出E。与上述相反,图中输出F表示无任何输入项与其相连,因此,该“与”项总是处于“浮动”的逻辑“1”。,第八章 可编程逻辑器件,12,根据PLD中阵列和输出结构的不同,常用的低密度PLD有4种主要类型: 可编程只读存储器PROM 可编程逻辑阵列PLA 可编程阵列逻辑PAL 通用阵列逻辑GAL下面对它们的逻辑结构及其在逻辑设计中的应用分别予以介绍。,8.2 低密度可编程逻辑器件,第八章 可编程逻辑器件,13,第八章 可编程逻辑器件,8.2.1 可编程只读存储器PROM,一. 半导体存储器的分类,存储器(Memory)是数字计算机和其他数字系统中存放信息的重要部件。随着大规模集成电路的发展
8、,半导体存储器因其具有集成度高、速度快、功耗小、价格低等优点而被广泛应用于各种数字系统中。,半导体存储器按功能可分为两大类。,14,1. 随机存取存储器RAM,RAM是一种既可读又可写的存储器,故又称为读写存储器。根据制造工艺的不同,RAM又可分为双极型和MOS型两种类型。,RAM的优点是读写方便,使用灵活;缺点是一旦断电,所存储的信息便会丢失,它属于易失性存储器。,第八章 可编程逻辑器件,15,2.只读存储器ROM,只读存储器ROM是一种在正常工作时只能读出、不能写入的存储器。通常用来存放那些固定不变的信息。只读存储器存入数据的过程通常称为编程。,只读存储器ROM属于非易失性存储器,即使切断
9、电源,ROM中的信息也不会丢失,因而在数字系统中获得广泛应用。,根据工艺和编程方法的不同,可分为两类。掩膜编程ROM(简称MROM):存放的内容是由生产厂家在芯片制造时利用掩膜技术写入的。优点是可靠性高,集成度高,批量生产时价格便宜;缺点是用户不能重写或改写,不灵活。用户可编程ROM(简称PROM):存放的内容是由用户根据需要在编程设备上写入的。优点是使用灵活方便,适宜于用来实现各种逻辑功能。,第八章 可编程逻辑器件,16,二. 可编程ROM的结构与类型,1. PROM的逻辑结构,PROM的结构框图如下图所示,它主要由地址译码器和存储体两大部分组成。,第八章 可编程逻辑器件,17,第八章 可编
10、程逻辑器件,图中,A0An-1为地址输入线; 为地址译码输出线,又称为字线;D0Dm-1为数据输出线,又称为位线。地址译码器根据输入地址码译出相应字线,使之有选择地去驱动相应存储单元,并通过输出端D0Dm-1读出该单元中存放的m位代码。容量:将一个n位地址输入和m位数据输出的PROM的存储容量表示为2nm(位),意味着存储体中有2nm个存储元,每个存储元的状态代表一位二进制代码。,18,存储体的结构示意图如下:,第八章 可编程逻辑器件,19,从逻辑器件的角度理解,PROM是由一个固定连接的与门阵列和一个可编程连接的或门阵列所构成的组合逻辑电路。例如,一个83(8与门3或门)PROM的逻辑结构图
11、如下。,图中,与门阵列构成一个3变量全译码器,即8个与门产生3变量的8个最小项;或门阵列的3个或门用来将相应的最小项相“或”构成3个指定的逻辑函数。,第八章 可编程逻辑器件,20,为了PROM设计的方便,通常将逻辑结构图简化为阵列逻辑图,简称阵列图。画阵列图时,将PROM中的每个与门和或门都简化成一根线。上图的阵列逻辑图如下图所示。,图中虚线上面6根水平线分别表示输入线A、 、B、 、C 、 。与门阵列的8根垂直线代表8个与门,或门阵列中标有D2、D1、D0的3根水平线表示3个或门。,第八章 可编程逻辑器件,21,2. PROM的类型,根据存储元电路构造的不同,PROM有3种常用的类型。,(1
12、) 一次编程的ROM(PROM)所有存储元均被加工成同一状态“0”(或“1”),用户可通过编程将某些存储元的状态改变成另一状态“1”(或“0”)。这种编程只能进行一次,一旦编程完毕,其内容便不能再改变。,例如,双极型PROM有两种电路结构,一种是熔丝烧断型PROM,另一种是PN结击穿型PROM。,第八章 可编程逻辑器件,22,第八章 可编程逻辑器件,熔丝型存储元电路如下图所示。,熔丝型PROM在每个存储元位置制作一个带熔丝的三极管,三极管射极通过一根易熔金属丝接到相应的位线上。用户按字线和位线选择某个存储元后,可根据需要写入的信息,通过施加规定宽度和幅度的脉冲电流,将三极管的熔丝熔断,使该存储
13、元的状态被改变成与原状态相反的状态。熔丝一旦断开,便不可再恢复,因此,编程是一次性的。,23,第八章 可编程逻辑器件,结击穿型PROM所有存储元的原始状态均为一对背靠背连接的二极管,如上图(b) 所示。处于原始状态的存储元二极管不导通。用户编程时,可根据需要对选中的存储元施加足够大的电流,将其反向二极管击穿,仅剩下一个正向连接的二极管,从而使其正常工作时处于导通状态。由二极管的导通与截止标志存储元中的信息是“1”或“0” 。显然,这种编程同样是一次性的。,结击穿型存储元电路如下图所示:,24,第八章 可编程逻辑器件,PROM与固定ROM相比,增加了灵活性。但因其可靠性较差,加之只能一次性编程,
14、故目前很少使用。,(2) 可抹可编程ROM(EPROM),EPROM不仅可由用户编程存放指定的信息,而且可由用户通过专用的紫外线灯照射芯片上的受光窗口,将原存储内容抹去,再写入新的内容。这一特性是由EPROM中存储元的电路结构决定的。,EPROM的存储元通常采用浮栅雪崩注入MOS电路,简称FAMOS管,或者叠栅雪崩注入MOS电路,简称SIMOS管。FAMOS管的栅极全部被二氧化硅绝缘层包着,没有引出线,如悬浮状,所以称作“浮栅”。,25,第八章 可编程逻辑器件,FAMOS有P沟道和N沟道两种结构,P沟道FAMOS管的结构示意图和符号分别如下图(a)、(b)所示。图(c)是用P沟道FAMOS作存
15、储元的电路,一个存储元由一个普通MOS管和一个FAMOS管串接而成。(教材中给出了叠栅雪崩注入MOS电路,即SIMOS管),电路工作原理是怎样的呢?,26,第八章 可编程逻辑器件,产品在出厂时,所有FAMOS的浮栅均不带电,FAMOS管处于截止状态。写入信息时,在对应单元的漏极加上足够高的负压,使漏极与衬底之间的PN结击穿,雪崩击穿产生的高能电子穿过SiO2层堆积在浮置栅上,使FAMOS管导通。对应FAMOS管的截止或导通,可使位线上输出的电平为高或低,以表示该存储元存放的信息是“1”或“0”。由于浮栅被绝缘的二氧化硅包着,编程时堆积的电子设有放电回路,故电荷不会消失,信息能够长期保存。如果用
16、紫外线照射FAMOS管,则浮栅上积累的电子将形成光电流而泄放,从而导电沟道消失,管子又恢复截止状态。 为了使编程后能进行擦除和重写,在芯片的封装外壳装有透明的石英窗口。对编程好的EPROM要用不透光的胶纸将受光窗口封住,以免信息丢失。,27,第八章 可编程逻辑器件,EPROM虽然具有可反复编程的优点而被广泛使用,但EPROM只能整体擦除,不能一个存储单元一个存储单元地独立擦除,而且擦除操作比较麻烦。而EEPROM克服了EPROM的这一不足。,(3) 电可抹可编程ROM(EEPROM),EEPROM的结构与EPROM相似,但EEPROM在浮栅上增加了一个遂道二极管,编程时可使电荷通过它流向浮栅,
17、而擦除时可使电荷通过它流走,即擦除和编程均用电完成。这种器件不仅工作电流小、擦除速度快,而且允许改写的次数大大高于EPROM,一般允许改写100次1000次 。目前,EPROM和EEPROM的应用均十分广泛。,28,第八章 可编程逻辑器件,三 . PROM应用举例,由于PROM是由一个固定连接的“与”阵列和一个可编程连接的“或”阵列组成,所以,用户只要改变“或”阵列上连接点的数量和位置,就可以在输出端形成由输入变量“最小项之和”表示的任何一种逻辑函数。采用PROM进行逻辑设计时,只需首先根据逻辑要求列出真值表,把真值表的输入作为PROM的输入,然后根据逻辑函数值确定对PROM“或”阵列进行编程
18、的代码,画出相应的阵列图即可。,方法?对真值表横向理解-字,纵向理解-逻辑代数!,第八章 可编程逻辑器件,例1 用PROM设计一个代码转换电路,将4位二进制码转换为Gray码。,解 设4位二进制码为B3、B2、B1、B0,4位Gray码为G3、G2、G1、G0,其真值表如下表所示。,需要多大容量的PROM呢,如何设计?,30,第八章 可编程逻辑器件,将4位二进制码作为PROM的输入,Gray码作为PROM的输出,可选容量为244的PROM实现给定功能。根据真值表可画出该电路的阵列图如下图所示。,注: 图中标“” 处代表“1”,否则代表“0”。,31,第八章 可编程逻辑器件,例2 用PROM设计
19、一个发生器,其输入为4 位二进制码,输出为8421码。该电路串行地产生常数,取小数点后15位数字,即=3.141592653589793,其逻辑框图如下图所示。,解 根据题意,可用一个4位同步计数器控制PROM的地址输入端,使其地址码按4位二进制码递增的顺序进行周期性地变化,以便对所有存储单元逐个进行访问,存储单元中依次存放的值,输出则为的8421码。,32,第八章 可编程逻辑器件,PROM的输入输出关系如下表所示:,33,第八章 可编程逻辑器件,根据上表可画出发生器的PROM阵列图如下图所示。,动画演示,34,第八章 可编程逻辑器件,8.2.2 可编程逻辑阵列PLA,从实现逻辑函数的角度看,
20、对于大多数逻辑函数而言,并不需要使用全部最小项,尤其对于包含约束条件的逻辑函数,许多最小项是不可能出现的。由于PROM的“与” 阵列固定地产生n个输入变量的全部最小项。因此,PROM的“与”阵列没有获得充分利用,使得芯片面积造成浪费。为了克服PROM的不足,产生了一种“与”阵列和“或”阵列均可编程的逻辑器件,即可编程逻辑阵列PLA(Programmable Logic Array)。PLA可分为组合PLA和时序PLA两种类型。,一. 组合PLA,1. 逻辑结构,由一个“与”阵列和一个“或”阵列构成,“与”阵列和“或”阵列都是可编程的。,35,第八章 可编程逻辑器件,一个具有3个输入变量、可提供
21、6个“与”项、产生3个输出函数的PLA逻辑结构图及其相应阵列图如下图所示。,在PLA中,n个输入变量的“与”阵列通过编程提供需要的P个“与”项,“或”阵列通过编程形成“与-或”函数式。由PLA实现的函数式是最简“与-或”表达式。,36,第八章 可编程逻辑器件,PLA的存储容量不仅与输入变量个数和输出端个数有关,而且还和它的“与”项数(即与门数)有关,存储容量用输入变量数(n)、与项数(p)、输出端数(m)来表示。,前面所示PLA的容量为363。目前常见的有容量为16488和14968等PLA器件。,2. 应用举例,采用PLA进行逻辑设计,可以十分有效地实现各种逻辑功能。相对PROM而言,PLA
22、更灵活、更经济、结构更简单。用PLA设计组合逻辑电路时,一般分为两步: 将给定问题的逻辑函数按多输出逻辑函数的化简方法简化成最简“与-或”表达式; 根据最简表达式中的不同“与项” 以及各函数最简“与-或”表达式 确定“与”阵列和“或”阵列,并画出阵列逻辑图。,37,第八章 可编程逻辑器件,例 用PLA设计一个代码转换电路,将一位十进制数的8421码转换成余3码。,解 设ABCD-表示8421码,WXYZ-表示余3码,可列出转换电路的真值表如下表所示。,38,第八章 可编程逻辑器件,根据真值表写出函数表达式,并按照多输出函数化简法则用卡诺图进行化简,可得到最简“与-或”表达式如下:,由此可见,全
23、部输出函数只包含9个不同“与”项,所以,该代码转换电路可用一个容量为4 94的PLA实现,其阵列图如图所示。,动画演示,39,第八章 可编程逻辑器件,二. 时序PLA,1. 逻辑结构,由“与”阵列、“或”阵列和一个用于存储过去输入状态的触发器网络构成。,触发器网络中包含若干触发器,它们的输入接受“或”阵列输出及时钟脉冲、复位信号的控制,其输出反馈到“与”阵列,用来和当前输入一起产生“与”项输出。时序PLA的结构框图如右图所示。,40,第八章 可编程逻辑器件,2. 应用举例,例 用PLA设计一个8421码加1计数器,并用七段显示器显示计数状态。,解 该问题的设计包含两部分,一是设计一个8421码
24、加1计数器;二是设计一个将8421码转换成七段显示码的代码转换电路。,首先,作出8421码加1计数器的状态表如下表所示。,41,第八章 可编程逻辑器件,假定采用JK触发器作为存储元件,根据真值表和JK触发器的激励表,可得到触发器的激励函数表达式:,激励函数共包含4个不同“与”项:,42,第八章 可编程逻辑器件,假定七段显示译码器的输出为高电平有效,可作出8421码转换为七段显示码的真值表如下表所示。,43,第八章 可编程逻辑器件,根据真值表作出a、b、c、d、e、f、g的卡诺图,按多输出函数进行化简后,可得到代码转换电路的输出函数最简“与-或”式:,上述表达式在激励函数表达式的基础上增加了8个
25、不同的“与”项:,44,第八章 可编程逻辑器件,根据激励函数和输出函数表达式,可画出用PLA实现给定功能的阵列逻辑图如右图所示。,动画演示,45,第八章 可编程逻辑器件,8.2.3 可编程阵列逻辑PAL,PAL(Programmable Array Logic)是在PROM和PLA的基础上发展起来的一种可编程逻辑器件。它相对于PROM而言,使用更灵活,且易于完成多种逻辑功能,同时又比PLA工艺简单,易于实现。,46,第八章 可编程逻辑器件,一. PAL的逻辑结构,PAL由一个可编程的“与”阵列和一个固定连接的“或”阵列组成。图 (a)给出了一个三 输入三输出PAL的逻辑结构图,通常将其表示成图
26、 (b)所示形式。,47,第八章 可编程逻辑器件,PAL每个输出包含的“与”项数目是由固定连接的“或”阵列提供的。在典型逻辑设计中, 一般函数约包含3个4个“与”项,而现有PAL器件最多可为每个输出提供8个“与”项,因 此,使用这种器件能很好地完成各种常用逻辑电路的设计。,PAL器件的结构(包括输入、输出、“与”项数目)是由生产厂家固定的。从PAL问世至今,大约已生产出几十种不同的产品,按其输出和反馈结构,大致可将其分为5种基本类型。,(1) 专用输出的基本门阵列结构,这种结构类型适用于实现组合逻辑函数。常见产品有PAL10H8(10个输入,8个输出,输出高电平有效),PAL12L6(12个输
27、入,6个输出,输出低电平有效)等。,48,第八章 可编程逻辑器件,下图表示专用输出的基本门阵列结构类型的1个输入、1个输出、4个“与”项的局部电路。,图中输出部分采用或非门,为低电平有效器件。若输出部分采用或门结构,则为高电平有效器件。有的器件输出部分采用互补输出的或门,则称为互补输出器件。,49,第八章 可编程逻辑器件,(2) 带反馈的可编程I/O结构,带反馈的可编程I/O结构通常又称为异步可编程I/O结构。该类PAL器件常见产品有PAL16L8(10 个输入,8个输出,6个反馈输入)以及PAL20L10(12个输入,10个输出,8个反馈输入)。,下图给出了这种结构类型的一个局部电路。,该结
28、构类型有何特点呢?,50,第八章 可编程逻辑器件,图中,最上面一个与门作为输出三态缓冲器的选通控制。若该与门的输出为“0”,则三态缓冲器处于高阻状态,对应的I/O引脚作为输入使用,这时右边一个互补输出缓冲器作为输入缓冲器用。相反地,若最上面与门的输出为“1”,则三态缓冲器为工作状态,对应I/O引脚作为输出使用。可见,通过编程指定某些I/O端方向,可改变器件输入/输出线数目的比例。,51,(3) 带反馈的寄存器输出结构,带反馈的寄存器输出结构使PAL构成了典型的时序网络结构。该类器件的典型产品有PAL16R8(8个输入、8个寄存器输出、8个反馈输入、1个公共时钟和1个公共选通)。 带反馈的寄存器
29、输出结构的局部电路如下图所示。,52,第八章 可编程逻辑器件,图中,由或门产生的输出在系统时钟CLK(公共的)作用下存入到D触发器中,触发器的输出通过带有公共选通(OE)的三态缓冲器送到输出端,此输出是低电平有效。D触发器的输出通过一个缓冲器反馈回“与”阵列,这种反馈功能使PAL构成了典型的时序网络结构,从而能实现时序逻辑电路功能,例如,加减计数、移位等操作。,53,第八章 可编程逻辑器件,(4) 加“异或”、带反馈的寄存器输出结构,这种结构是在带反馈寄存器输出结构的基础上增加了一个异或门,该类电路的典型产品有PAL16RP8 (8个输入,8个寄存器输出,8个反馈输入)。该类PAL的一个局部电
30、路如下图所示。,图中,在D触发器的D端引入一个异或门,使D端的极性可通过编程设置,这实际上是允许把输出端置为高电位有效或者低电位有效。,54,第八章 可编程逻辑器件,(5) 算术选通反馈结构,算术PAL是在综合前几种PAL结构特点的基础上,增加了反馈选通电路,使之能实现多种算术运算功能。算术PAL的典型产品有PAL16A4(8个输入、4个寄存器输出、4个可编程I/O输出、4个反馈输入、4个算术选通反馈输入)。下图给出了这种结构的一个局部电路。,55,第八章 可编程逻辑器件,图中,反馈选通电路中的4个或门接收反馈项A和输入项B,输出 , 以此4个项作为逻辑变量送“与”阵列进行编程,可以获得对A、
31、B进行二元逻辑操作的16种可能的逻辑组合。 反馈选通电路的卡诺图如右图所示。,1表示连接,0表示不连接。,56,第八章 可编程逻辑器件,下图给出了反馈选通电路的算术功能编程。,57,第八章 可编程逻辑器件,二. PAL应用举例,1设计的一般步骤用PAL进行逻辑设计的一般步骤如下:,(1) 建立对给定问题的逻辑描述;,(2) 写出相应的函数表达式;,(3) 选择合适的器件;,(4) 编程实现。,58,第八章 可编程逻辑器件,2设计举例,例 采用PAL16RP8构成交通灯信号控制器。假定一个单行道交叉路口的交通管理方案下图所示。,分析: 图中,1、2为单行道路;SEN1和SEN2为探测器。当车辆要
32、求通行时,相应探测器给出逻辑“1”信号;否则为逻辑“0”信号。在交通控制器中,探测器是输入装置,交通信号灯是输出装置,信号灯有红(R)、绿(G)、黄(Y)三色。,59,第八章 可编程逻辑器件,由分析可得到控制器的框图如右下图所示。该电路是一个同步时序电路,CP为时钟信号;INIT为初始化信号,用来置系统于初始状态。,60,第八章 可编程逻辑器件,解 设控制器的初始状态为S0(允许1通过,禁止2通过),可作出该电路的状态图如下图所示。,注意:R-红;Y-黄; G-绿,61,第八章 可编程逻辑器件,利用初始化信号INIT置系统于初始状态S0,仅当1路有车辆要求通过且2路无车辆要求通过时,电路停在S
33、0状态;否则,根据另外3种不同情况分别转向S1状态或S2状态。S3状态为交通转换通行的过渡状态。仅当2路有车辆要求通过且1路无车辆要求通过时,电路停在S4状态;否则根据另外3种不同情况分别转向S5状态或S6状态。S7为交通转换通行的过渡状态。凡遇到初始化信号INIT,电路都回到S0状态(状态图中略)。,62,第八章 可编程逻辑器件,根据状态图可作出状态表如下:,令:,63,第八章 可编程逻辑器件,电路共8个状态,需3个触发器,设状态变量为Q2、Q1、Q0,状态分配方案如下。状 态: S0 S1 S2 S3 S4 S5 S6 S7Q2Q1Q0:000 001 010 011 100 101 11
34、0 111,将其代入后,可得到二进制状态表如下表所示。,64,第八章 可编程逻辑器件,根据二进制状态表及对具体问题的分析,可得到激励函数和输出函数表达式:,65,第八章 可编程逻辑器件,PAL16RP8共有20根引脚,根据器件功能和交通灯控制器的输入、输出设置,对PAL16RP8的引脚分配如下图所示。,66,第八章 可编程逻辑器件,依照函数表达式和芯片的引脚分配方案,可画出用PAL16RP8实现交通灯控制器功能的阵列逻辑图。,67,第八章 可编程逻辑器件,8.2.4 通用阵列逻辑GAL,GAL(Generic Array Logic)器件是1985年问世的一种新的PLD器件。它是在PAL器件的
35、基础上综合了E2PROM和CMOS技术发展起来的一种新型技术。GAL器件具有PAL器件所没有的可擦除、可重写及结构可组态等特点。这些特点形成了器件的可测试性和高可靠性,且具有更大的灵活性。,GAL器件按门阵列的结构可分为两大类:与PAL相类似的普通型GAL器件,其与门阵列是可编程的,或门阵列是固定连接的,如20引脚的GAL16V8;与PLA器件相类似的新一代GAL器件,其与门阵列和或门阵列都是可编程的,如24引脚的GAL39V8。,68,第八章 可编程逻辑器件,一. GAL的基本逻辑结构,普通型GAL除一个可编程的“与”阵列和一个固定连接的“或”阵列之外,在每一个输出端都集成有一个输出逻辑宏单
36、元OLMC(Output Logic Macro Cell),允许使用者定义每个输出的结构和功能。典型产品有GAL16V8。,1. GAL16V8的基本组成,GAL16V8芯片是一种具有8个固定输入引脚、最多可达16个输入引脚,8个输出引脚,输出可编程的普通型GAL。,组成: 由8个输入缓冲器、8个反馈输入缓冲器、8个输出逻辑宏单元OLMC,8个输出三态缓冲器、“与”阵列以及系统时钟、输出选通信号等组成。,其中,“与”阵列包含32列和64行,32列表示8个输入的原变量和反变量及8个输出反馈信号的原变量和反变量;64行表示“与”阵列可产生64个“与”项,对应8个输出,每个输出包括8个“与”项。,
37、69,第八章 可编程逻辑器件,2. 输出逻辑宏单元OLMC,OLMC由一个8输入或门、极性选择异或门、D触发器、4个多路选择器等组成。其结构如下图所示。,70,图中各部件功能如下:,或门:或门的每个输入对应一个来自“与”阵列的“与”项,输出形成“与-或”函数表达式。,异或门:异或门由控制变量XOR(n)(其中n为OLMC输出引脚号)控制输出信号的极性选择。,当XOR(n)=“0”时,异或门的输出与输入相同;当XOR(n)=“1”时,异或门的输出与输入相反。,极性选择还可以用来减少实现某一功能所需要的“与”项数。GAL的输出一般只能实现不大于8个“与”项的函数,如果采用异或门,则可以把大于8项而
38、每项只包含一个变量的函数简化为一个“与”项。例如:F=A+B+C+D+E+G+H+I+J (9项)只需由或门产生 ,然后令异或门控制变量XOR(n)为“1”,对其求反即可产生F 。,71,第八章 可编程逻辑器件,多路选择器, “与”项选择多路选择器PTMUX:用于控制或门的第一个“与”项。来自“与”阵列的8个“与”项当中有1个作为PTMUX的输入。在AC0和AC1(n)控制下,PTMUX选择该“与”项或者“地”作为或门的输入。,输出选择多路选择器OMUX:用于选择输出信号是组合逻辑还是时序逻辑。OMUX在AC0和AC1(n)的控制下,选择异或门输出或寄存器输出作为输出。,输出允许控制选择多路选
39、择器TSMUX:用于选择输出三态缓冲器的选通信号。在AC0和AC1(n)的控制下,TSMUX选择VCC、“地”、OE或者一个“与”项(PT)作为允许输出的控制信号。, 反馈选择多路选择器FMUX:用于控制反馈信号的来源。在AC0和AC1(n)的控制下,可选择“地”、相邻位输出、本位输出或者触发器的输出 作为反馈信号,送回“与”阵列作为输入信号。,D触发器:D触发器对输出状态起寄存作用,使GAL适应于时序逻辑电路。,72,第八章 可编程逻辑器件,由OLMC的各部分功能可知,OLMC给设计者提供了最大的灵活性。只要恰当地给出控制信号的值,就能形成OLMC的不同组态。控制信号的值是由GAL结构控制字
40、中的可编程位决定的。,3结构控制字,(1)结构控制字的组成GAL16V8由一个82位的结构控制字控制着器件的各种功能 组合状态。该控制字各位功能如下。,注:图中,XOR(n)和AC1(n)字段下面的数字分别对应器件的引脚号。,73,第八章 可编程逻辑器件,结构控制字各位的功能如下:,74,第八章 可编程逻辑器件,(2) OLMC(n)的5种组态,通过编程结构控制字中的SYN、AC0和AC1(n),输出逻辑宏单元OLMC(n)可以组成以下5种组态。,注意:OLMC组态的实现是由开发软件和硬件完成的,对用户是完全透明的。开发软件将选择与配制控制字的所有位,并自动检查各引线的用法。,75,第八章 可
41、编程逻辑器件,76,第八章 可编程逻辑器件,4.行地址布局,(1) 行地址布局图,GAL器件的可编程阵列包括“与”阵列、结构控制字、保密位及整体擦除位等。对其进行编程时是由行地址进行映射的。GAL16V8的行地址布局图如图所示。,图中,82位的SRL是一个高速串行移位寄存器,用于编程数据流的输入或读出测试编程结果串行输出。,77,第八章 可编程逻辑器件,(2) 供用户使用的行地址,当对GAL16V8进行编程实现某个设计方案时,可供用户使用的行地址总共有36个,分别是:, 行地址031:用户用来编程制定逻辑模式的阵列。32个行地址对应逻辑结构图上“与”阵列的32个输入,每个行地址可写入64位数据
42、,对应于64个“与”项。, 行地址32:器件的电子标签(ES)。它提供64位供用户定义。例如,用来识别用户身份的代码、版本号等。, 行地址60:82位的结构控制字,用于设计所需用途的器件。,78,第八章 可编程逻辑器件, 行地址61:仅1位的保密位,用于防止复制阵列的逻辑点阵。该位一旦被编程,存取阵列的电路就不能工作,从而防止了对32位的“与”阵列再次编程或读出。该单元只能在整体擦除时和阵列一起被擦除,所以,一旦保密位被编程,就绝对不能检查阵列的原始配置,仅电子标签除外。, 行地址63:仅含1位,用于器件整体擦除。在器件编程期间访问该行时,执行清除功能,整个“与”阵列、结构控制字、电子标签以及
43、保密单元统统被擦除,使编程的器件恢复到未使用的状态。,79,第八章 可编程逻辑器件,二. GAL器件的开发支持和编程,GAL器件的编程是在相应开发软件和硬件的支持下完成的,除现有的大部分开发软件和标准编程器的支持外,新的高级开发软件的相继出现,使GAL的设计应用愈来愈方便。GAL器件能得到广泛地应用,这除了器件自身具有的优良特性之外,还在很大程度上取决于它的开发环境。,GAL开发工具:包括硬件开发工具Logic Lab编程器和GALLAB、CUPL等软件开发工具。,GALLAB是基于已经简化的“与-或”表达式的汇编型编码软件。CUPL是一种编译型的高级开发软件,它具有自动逻辑化简功能,设计说明
44、书文件可采用高级的逻辑描述方法(高级逻辑方程、真值表和状态图),并可对器件进行访真测试,修改逻辑设计,是通用性很强的开发工具。,教材中对GALLAB进行了简单介绍,课堂不作讨论。,80,第八章 可编程逻辑器件,1. GALLAB开发软件,GALLAB软件工具包含两个相关文件,GALLAB.EXE和FM.EXE。GALLAB.EXE文件是直接与编程接口的联机软件,它具有手工编辑熔丝图、文件存盘、装入文件、读写GAL、校验等功能。即具有相当完整的GAL芯片开发功能,但用它来设计GAL的“熔丝图”靠手工编辑,该项工作繁琐而容易出错。 FM.EXE则弥补了GALLAB.EXE的不足。,81,第八章 可
45、编程逻辑器件,使用FM(Fast Map)编译软件时,在DOS提示符下键入FM及以“.PLD”为扩展名的GAL设计说明书文件名后,屏幕上将出现如下的FM菜单:, CREAT DOCUMENT FILE 生源文件和芯片引脚分配图 CREAT FUSE FILE 产生可供阅读的熔丝图 CREAT JEDEC FILE 产生以JED为结尾的可写入的文件 GET A NEW SOURCE FILE 产生新的源程序 EXIT FROM FAST MAP 退出Fast Map ,调用FM.EXE,键入菜单所提示的选择项,FM将生成所需要的相应文件同时存盘。生成的文件包括:, 扩展名为.LST的文本文件,包
46、括源文件和GAL引脚配置; 扩展名为.PLT的芯片熔丝图文件; 扩展名为.JED的标准装载文件。,82,第八章 可编程逻辑器件,在JEDEC标准文件中包含了门阵列中所有编程节点的编程信息,可以直接传送给编程器,对GAL进行编程。,键入菜单提示中的后面两个选择项,FM将要求放弃现在的源文件汇编,输入新的源文件名并重新显示菜单,或者从FM退回系统。,2GAL的编程,生成上述各文件后,便可利用GAL编程器对GAL芯片进行编程。编程系统在建立和运行前,将编程器通过串行口RS232C与主机PC机相连,并把GAL芯片插入编程器的插座内。,83,第八章 可编程逻辑器件,三. GAL的应用,1用GAL进行逻辑
47、设计的一般步骤,(1) 确定描述给定功能的逻辑表达式。,(2) 选择GAL器件并进行引脚分配。,(3) 编写GAL设计说明书。,(4) 建立有关文件。,(5) 硬件编程。,这是关键的一步,设计者可综合运用逻辑设计技术,完成有关逻辑设计。,器件选择时首先应满足输入、输出端数目的要求,其次考虑速度、功率等因素。器件确定后,根据要求给各引脚赋予变量名。,根据语法格式和逻辑设计结果用文本编辑程序编写设计说明书(又称为GAL源程序)。通常包括器件型号、功能、设计者姓名和设计日期、电子标签、GAL引脚表以及逻辑表达式等。,建立文本文件(LST文件),熔丝图文件(PLT文件),标准装载文件(JED文件)。,
48、包括连接编程器,建立GAL编程系统,编程后写保密位等。,84,2设计举例,例8.6 采用GAL16V8设计一个6位移位寄存器。要求该寄存器具有左/右移位,串行/并行数据输入,串行/并行数据输出及高阻输出等功能。,解 根据设计要求,画出寄存器的逻辑框图如下图所示。,其中, 为使能端,S1、S0为工作方式选择端,LI为左移串行输入端,RI为右移串行输入端,CLK为时钟端,d0d5为数据输入端,Q0Q5为寄存器输出端。,85,第八章 可编程逻辑器件,六位移位寄存器的功能表如下表所示:,根据功能表可写出各触发器的激励函数表达式:,86,第八章 可编程逻辑器件,采用GAL16V8实现给定功能时,可将芯片引脚按右图所示方案分配。,按照FM软件要求,用文本编辑程序产生GAL设计说明书(以.PLD为扩展名的一个输入文件);然后启动FM汇编程序,生成6位移位寄存器的GAL输入文件;经编程系统编程后,形成GAL16V8熔丝图,最后完成硬件编程即可。,87,第八章 可编程逻辑器件,8.3 在系统编程技术简介,在系统编程(In System Programmable,简称ISP)技术是90年代发展起来的一种PLD技术。所谓在系统编程 ,是指可以在用户自己设计的目标系统上、为实现预定逻辑功能而对逻辑器件进行编程或改写。,