可编程逻辑器件课件.ppt
第八章 可编程逻辑器件 81 概述 83 可编程阵列逻辑PAL 84 通用阵列逻辑GAL 86 现场可编程门阵列FPGA 本章小结返回主目录,8.1 概述,可编程逻辑器件(PLD)是20世纪80年代发展起来的一种通用的可编程的数字逻辑电路。它是一种标准化、通用的数字电路器件,集门电路、触发器、多路选择开关、 三态门等器件和电路连线于一身。PLD使用起来灵活方便,可以根据逻辑要求设定输入与输出之间的关系,也就是说PLD是一种由用户配置某种逻辑功能的器件。,PLD在制造工艺上, 采用过TTL、 CMOS、 ECL、静态RAM等技术,器件类型有PROM、 EPROM、PROM、PLA、PAL、GAL、EPLD、CPLD、FPGA等。 作为一种理想的设计工具,PLD具有通用标准器件和半定制电路的许多优点,给数字系统设计者带来很多方便。其优点如下:,(1) 简化设计。 由于PLD的可编程性和灵活性, 电路设计结束后,可随意进行修改或删除,无需重新布线和生产印刷板,大大缩短了系统的设计周期。 (2) 高性能。 现在市场上提供的PLD器件的性能超过了最快的标准分立逻辑器件的性能,而且一片PLD芯片的功耗比分立器件组合而成的电路的功耗要小。,(3) 可靠性高。 采用PLD器件将使所用器件的数目减少, 也使印刷板面积减少,密度下降,这些都大大提高了电路的可靠性,同时也将减少干扰和噪声,使系统的运行更可靠。 (4)成本下降。 采用PLD设计数字系统, 由于所用器件少,用于器件测试及装配的工作量也少,所以系统的成本将下降。 ,(5) 硬件加密。 使用PLD器件构成的数字系统, 其内部结构是由设计者通过编程实现的。有些PLD器件(例如GAL)还提供一个能被编程的保密单元,可用来防止检验和读出芯片中的程序,这对于保持芯片设计的专利、 防止他人抄袭有很大好处。,83 PAL器件结构及其应用,831 PAL的基本电路结构 832 PAL的几种输出电路结构和反馈形式 833 PAL应用举例,831 PAL的基本电路结构 PAL是在ROM和PLA基础上发展起来的,它同ROM和PLA一样都采用“阵列逻辑”技术。在阵列逻辑中,既要求有规则的阵列结构,又要求实现灵活多样的逻辑功能,同时还要求编程简单, 易于实现。 PAL是为适应这种要求而产生的。 它比PROM灵活, 便于完成多种逻辑功能,同时又比PLA工艺简单, 易于编程和实现。,图 8.1 PAL结构,PAL的基本结构由可编程的与阵列和固定的或阵列组成,如图8.1所示。这种结构形式为实现大部分逻辑函数提供了最有效的方法。PAL每一个输出包含的乘积项数目是由固定连接的或阵列提供的,一般函数包含3至4个乘积项,而PAL可提供7至8个乘积项的与或输出。该输出通过触发器送给输出缓冲器, 同时也可以将状态反馈回与阵列。这种反馈功能使PAL器件具有记忆功能,既可以记忆先前的状态,又可以改变功能状态,因此PAL器件可以构成状态时序机,实现加、减计算及移位、分支操作等。,832 PAL的几种输出电路结构和反馈形式,PAL器件的与阵列是可编程的,而或阵列是不可编程的。用PAL实现逻辑函数时,每个输出是若干个与项的和,而与项的数目已由制造厂固定(4个、 8个等)。在PAL产品中,一个输出的最多与项可达8个。 PAL备有多种输出结构,有专用输出、I/O输出、寄存器输出、异或输出和算术选通反馈输出等结构,它不仅可以构成组合逻辑电路,也可以构成时序逻辑电路。不同型号的芯片对应一种固定的输出结构,由生产厂家来决定。,一. 专用输出结构 图8.2是专用输出结构的逻辑图。 它是在基本门阵列的输出加上反相器得到的。基本门阵列的输出结构也属于专用输出结构。,图 8.2 专用输出结构图,二. 可编程输入/输出(I/O)结构 图8.3是I/O输出结构的逻辑图。 该图的或门实现7个与项的逻辑加,其输出为三态门G3。它受到与门G2输出(第一个与项)的控制。如果编程时使此与项常为0,即该与门的所有输入端都接通,则三态门处于高阻态,此时,I/O端可作为输入端,G4为输入缓冲器。相反,编程后G2与门的所有输入项都断开,三态门被选通,I/O只能作输出端,这时,缓冲器G4将输出反馈到输入。但是反馈回来的信号能否成为与门输入,还要视编程而定。 ,图 8.3I/O输出结构,三. 寄存器输出结构 图8.4是寄存器输出结构的逻辑图。 它是在基本门阵列基础上加入D触发器得到的。 在时钟CLK的上升沿,或门的输出存入D触发器,同时Q端通过OE控制的三态门G3输出。另外, 通过缓冲器G2反馈至与门阵列。这样,PAL便成了具有记忆功能的时序网络,从而满足设计时序电路的需要。,图 8.4 寄存器输出结构,四. 异或结构 图8.5是异或输出结构的逻辑图。 它是把与项之和分成了两部分,经异或运算后,在时钟CLK的上升沿将异或结果存入D触发器,通过OE控制的三态门G6输出。这样处理后,它除了具有寄存器输出结构的特征外,还能实现时序逻辑电路的保持功能。 ,图 8.5 异或输出结构,五. 运算选通反馈结构 算术选通反馈结构是在异或结构基础上加入反馈选通电路得到的,如图8.6所示。反馈选通电路可以对反馈项 和输入项A实现 4 种逻辑加操作, 反馈选通的 4 个或门输出分别为(A+Q)、 ( +Q)、 (A+ )、( + )。 这 4 种结果反馈到与门阵列之后,可获得更多的逻辑组合。 ,图 8.6 算术选通反馈结构,833 PAL的应用举例 图8. 7表示了PAL16H8的逻辑图, 它有6432个熔丝点,输出电路有8个D触发器, 是寄存器输出结构。 图8.8是PAL14H4的应用实例图, 它具有寄存器的输出结构。对于该器件的开发,可以按照实训8中的方法来实现。首先编写正确的ABEL源程序,然后进行编译, 生成相应的.JED文件,最后通过编程器根据.JED文件对芯片写入。这样,就可以得到与.JED文件完全对应的实例图8.8。类似于图8.8的表示方法也是 .JED文件的一种熔丝图表现。 ,图 8.7 PAL16H8逻辑图,图8.8中交叉处的“”表示熔丝保留,意味着该与线含有竖线对应的变量;交叉处无“”表示熔丝烧断,表示该与线不含有相应的变量。如果一条与线上的熔丝全保留,则这条与线的值恒为0;如果一条与线上的熔丝全烧断,则这条与线的值恒为1。 按图8.8的接法,I1、I2、I3、I4为 4 个输入量,O1、 O2、O3、O4为 4 个输出量。标有“NC”符号的输入端,表示该输入端不接输入信号。按照上述分析,输入、输出的逻辑关系为,O1=I1I2I3+I2I3I4+ I2I3+I1I2O2=,图 8.8 PAL14H4的应用实例接线图,84 通用阵列逻辑GAL,841 GAL的电路结构842输出逻辑宏单元 (OLMC)843 GAL的输入特性和输出特性,841 GAL的电路结构, GAL芯片的特点 (1)采用E2CMOS工艺,最大运行功耗45 mA, 最大维持功耗35 mA,存取速度高达1525 ns。具有可重复擦除和编程的功能。 (2)具有输出逻辑宏单元(OLMC),可灵活设计各种复杂逻辑。 (3) GAL16V8可以模拟20引脚的PAL器件,可代替21种PAL产品;GAL20V8可以模拟24引脚的PAL器件,可代替21种PAL产品。 ,(4) 具有高速编程、重新编程的功能。一个GAL芯片重新编程的次数大于100次。 (5) 具有加密单元,可防止复制;具有电子标签,可用作识别标志;可预置和加电复位全部寄存器,具有100%的功能可实验性。 数据保存期可超过20年,8.4.2 输出逻辑宏单元(OLMC) 1. OLMC的结构 GAL器件输出端都是输出逻辑宏单元(OLMC)结构。无论是GAL16V8还是GAL20V8,它们内部都有8个OLMC。8个OLMC在相应的控制字的作用下,具有不同的电路结构这带来了GAL的灵活性和方便性。深刻理解OLMC的结构和原理是使用GAL器件设计数字系统的关键。下面我们简单讨论OLMC的结构。 ,图 8.9 OLMC的结构,OLMC的结构示于图8.9。 OLMC中的或门G1完成或操作;异或门G2完成极性选择,同时还有一个D触发器和 4 个多路选择器。 OLMC在相应的控制下,具有不同的电路结构。因此,GAL器件提供了比目前的PAL器件更大的功能、更方便的应用。 ,2. OLMC的五种工作方式 在结构控制字的作用下, GAL的输出逻辑宏单元可以有 5 种组态,即 5 种工作方式。只有深刻理解OLMC的 5 种工作方式,才能编制出正确的源程序。正确的源程序经过GAL编译程序(例如ABEL软件)编译后,才能生成正确的控制字和JEDEC文件,才能使GAL的各OLMC置成符合要求的电路结构,从而才能完成设计任务。下面以GAL16V8为例说明 5 种工作方式。,(1) 专用组合输入方式。 SYN、AC0、AC1(n)=101时,相应单元的OLMC的电路结构为专用组合输入方式。该方式中,OLMC是组合逻辑电路。1、11脚和29脚一样,可作为普通的数据输入使用,共10个;输出三态门禁止工作使I/O端不能作为输出,只能借用邻级的反馈开关作组合电路的反馈输入使用。由于GAL16V8的15、16脚(GAL20V8的18、19脚)因无反馈开关而不能作反馈输入使用,即不是101方式,它们只能作组合输出的100方式。 ,(2) 专用组合输出方式。 SYN、AC0、AC1(n)=100时,相应单元的OLMC的电路结构为专用组合输出方式。该方式中,OLMC是组合逻辑电路。1、11脚和29脚一样作为普通的数据输入使用;输出三态门控制信号接VCC,输出始终允许;相应的I/O只能作纯组合输出,不能作反馈输入使用,输出函数的或项最多8个。 ,从以上101和100两种方式可看出, 一个GAL芯片的8个OLMC(以GAL16V8为例,即1219脚)可以都用作纯组合输出(皆为100方式),但8个OLMC不可以都用作纯组合输入(皆为101方式),起码必须有15、16脚是作100方式输出端,也就是说,101方式必须和100方式并存时GAL芯片才有意义。 101和100方式用于无反馈的纯组合电路的设计。,例 8.1 利用GAL器件设计一个8输入的与门和一个8输入的或非门。此电路要求16个输入端和2个输出端, 所以用GAL16V8就可以完成设计。 其逻辑表达式为 O1=A1A2A3A4A5A6A7A8 O2= 这是一个纯组合电路, 安排引脚时可以按照101和100方式。 GAL16V8的1, 11和29脚为10个直接输入端,8个OLMC(1219脚)中,15、16脚只能作输出,其余的6个设计为输入信号。 ,(3) 带反馈的组合型输出方式。 SYN、AC0、AC1(n)=111时,相应单元的OLMC的电路结构为反馈组合输出方式。该方式中,1、11脚和29脚一样作为普通的数据输入端使用,输出三态门控制信号是第一个与项,故输出函数的或项最多7个;1318脚的I/O端既可输出,也可使用本单元的反馈开关作反馈输入使用;12、19脚因无反馈开关使用(分别被11脚、1脚占用)只能作输出而不能作反馈输入。 ,(4) 时序逻辑中的组合输出方式。 SYN、AC0、AC1(n)=011时,相应单元的OLMC为时序逻辑中的组合输出方式。此方式下,引脚1和11分别为CK和OE输入信号; 12、19和1318脚既可输出,也可作反馈输入使用,输出函数的或项最多7个。但8个OLMC(1219脚)不允许全是组合电路,至少要有一个是时序型输出,即010方式。因此011方式用于既有组合电路又有时序电路的数字系统中。,(5) 时序型输出方式。 SYN、AC0、AC1(n)=010时,被组态的OLMC的电路结构为时序型输出方式。该方式中,引脚1和11分别为CK和OE输入信号,8个OLMC可以都是时序型输出的010方式,每个I/O端既可作输出也可利用本单元的反馈开关作反馈输入,输出函数的或项最多8个。010方式用于纯时序电路的设计。,86 现场可编程门阵列FPGA,861 FPGA的基本结构862 FPGA的其它情况,8.6 现场可编程门阵列FPGA,8.6.1 FPGA的基本结构 FPGA属于前面所述的第一类LCA结构,图8.10是该结构的平面示意图。下面对该结构作一简要介绍 如图8.10所示, 它由CLB构成二维阵列, 块之间有纵向、横向两种布线通道,其连线的可编程资源由SRAM控制,芯片的四周是输入/输出模块,这些IOB也是由逻辑门和触发器等组成。 ,例如XC3000系列, 它有64个CLB, 排列成8行8列的矩阵,每个CLB都由一个组合逻辑电路、两个触发器和若干多路选择器组成。其中组合逻辑电路为321的查表存储器方式组成,它可实现五变量的任意函数,或者任意两组四变量的函数(总数不超过 5 个变量)。两个输出可以为组合的或者是寄存器型的。 由于有时钟端口、两个触发器,它也可以方便地实现时序逻辑功能。 ,2 可编程输入/输出块IOB 每一个IOB可以根据需要,通过编程控制的存储器单元来定义 3 种不同的功能:输入、输出、双向。当IOB作为输入接口使用时,输入信号通过缓冲器后直接进入芯片内部,也可通过寄存器输入。,当IOB作为输出口使用时,来自芯片内部的信号直接或经D触发器寄存后经输出缓冲器输出。输出缓冲器还可以定义为三态输出。每一个IOB的设置选择有:是否倒相, 信号输出翻转速率,是否接高阻值的上拉电阻等。此外,每一个输入电路还具有钳位二极管来提供静电保护,以防止由输入产生电流死锁。,3 可编程内部连接线PIC 可编程内部连接线主要由金属线段组成,它分布于CLB阵列周围,通过由SRAM配置控制的可编程开关实现系统逻辑的布线。主要有三种类型的连线:内部连线、长线和直接连线。XC3000系列的长线含有复用总线和宽位“线与”功能。直接连线资源常被用来进行CLB-CLB之间、CLB-IOB之间的连接,具有布线短、延迟小的特点。长线用于传递传输距离长的或要求偏移率低的信号。 ,8.6.2 FPGA的其它情况 FPGA开发过程如下:因为FPGA中SRAM的配置数据在芯片关机或掉电后数据将丢失,所以首先要将FPGA内部的逻辑硬件连结关系数据烧制在一片单独的EPROM中。在印刷电路板上,该EPROM与FPGA芯片以并行接口的方式实现连接,这样在加电或复位时,EPROM中的结构码内容就可以以并行方式首先打入FPGA芯片的RAM中,,从而完成对FPGA芯片的构造,此后EPROM即可与FPGA芯片脱钩,FPGA可以开始独立工作。 这种独特的工作方式也是Xilinx FPGA的一大特色。 设计开发Xilinx FPGA必须要有XACT(Xilinx自动CAE工具:Xilinx Automatic CAE Tools)开发系统和相应的设计软件,例如OrCAD, Viewlogic设计软件等。下面以OrCAD和XACT开发系统为例介绍其设计开发的具体步骤。,(1) 应用SDT进行电路图编辑,用Annotate, ERC, Cleanup, Netist等进行必要的后处理,生成NET、PIN等描述元件和连结关系的网表文件。 (2) 应用VST对NET网表电路进行逻辑功能模拟. 这时采用的是单位时延模拟,用以验证设计功能的正确性,如果需要修改,则返回步骤(1)。 (3) 应用PIN2XNF将网表文件转换为Xilinx格式网表XNF(Xilinx Netist Format, Xilinx网表格式)。,(4) 应用XNFMAP对网表进行逻辑划分, 利用AP2LCA进行逻辑优化,产生初始的版图平面布局。 (5) 应用自动布局布线工具APR以及XACT交互编辑工具生成芯片内部的布局布线信息文件LCA(Logic Cell Array, 逻辑单元列阵)。 (6) 应用LCA2XNF, XNF2VST进行后处理, 生成含有时延信息的网表文件NET。,(7) 应用VST进行时序仿真和验证。如不合格, 可返回步骤(1)去修改电路或者到步骤(5)去人工修改版图;如果满足设计要求, 则直接到步骤(8)。 (8) 应用Makebits, Makeeprom和LCA网表文件进行位流编译生成构造码。通过EPROM写入器将构造码写入EPROM中。 一个芯片烧制完成之后, 就可以安装在印制板上进行实测和系统联调。,GAL是各种PLD器件的理想产品, 输出具有可编程的逻辑宏单元,可以由用户定义所需的输出状态,具有速度快、功耗低,集成度高等特点。GAL器件的编程是在开发软件和硬件的支持下完成的,实训中简单介绍了GAL的开发过程。读者若要对GAL芯片编程,就要熟练掌握常见软件和硬件的使用。 FPGA是另外一种可编程逻辑器件,它主要通过改变内部连线来编程,其最大的特点是可实现现场编程。,图 8.11 PLD的 3 种连接方式,因此GAL成为各种PLD器件的理想产品。 GAL采用高速的电可擦除的E2CMOS工艺,具有速度快、功耗低、集成度高等特点。 目前,市场上供应较多的是GAL16V8、GAL20V8,GAL22V10。这里“16(20、 22)”是指可使用的输入端数,“V”表示通用型,“8(10)”表示输出端数。 上述 4 种结构的分类列于表8.1中。 ,表 8.1 PLD的 4 种结构,本章小结,可编程逻辑器件PLD的出现, 使数字系统的设计过程和电路结构都大大简化,同时也使电路的可靠性得到提高。 PLD器件主要有PLA、PAL、GAL、EPLD、FPGA等。 PAL的基本结构是由可编程的与阵列和固定的或阵列组成,PAL有多种输出结构,不同型号的芯片对应一种固定的输出结构。PAL器件的开发是通过编程改变与阵列来完成的。,