1、1,第一节 可编程逻辑器件,概述,可编程阵列逻辑,现场可编程逻辑阵列,通用阵列逻辑,可擦除的可编程逻辑器件,现场可编程门阵列,PLD的编程,在系统可编程逻辑器件,下页,总目录,推出,2,下页,返回,上页,一、概述,如果从逻辑功能的特点上将数字集成电路分类,可分为通用型和专用型两类。前几章中的中、小规模数字集成电路都属于通用型。它们的逻辑功能简单,而且是固定不变的。理论上这些通用型的中、小规模集成电路,可以组成任何复杂的数字系统。将所设计的数字系统做成一片大规模集成电路,可减小电路的体积、重量、功耗,提高电路的可靠性。为某种专门用途设计的集成电路叫做专用集成电路。,3,下页,返回,上页,可编程逻
2、辑器件(PLD)是一种通用型逻辑器件,其逻辑功能是由用户通过对器件编程来设定的。有些PLD的集成度很高,足以用来设计一般数字系统。目前生产和使用的PLD主要有:现场可编程逻辑阵列FPLA可编程阵列逻辑PAL通用阵列逻辑GAL可擦除的可编程逻辑器件EPLD现场可编程门阵列FPGA,EPLD、 FPGA的集成度比较高。,4,前面讲的EPROM实际上也是一种可编程逻辑器件。用于PLD编程的开发系统由硬件和软件两部分组成,硬件部分包括计算机和专门的编程器,软件部分有各种编程软件。利用这些开发系统几小时内就能完成PLD的编程工作,大大提高了设计工作的效率。新一代的在系统可编程器件的编程更加简单,编程时不
3、需要使用专门的编程器,只要将计算机运行产生的编程数据直接写入PLD即可。,下页,返回,上页,5,为便于画图,这一章采用了以下逻辑图形符号。,下页,返回,上页,6,二、现场可编程逻辑阵列(EPLA),现场可编程逻辑阵列由可编程的与逻辑阵列和可编程的或逻辑阵列以及输出缓冲器组成。,图中的与逻辑阵列最多可以产生8个可编程的乘积项, 或逻辑阵列最多能产生4个组合逻辑函数。,下页,返回,上页,7,如果编程后的电路连接情况如图中所示,,下页,返回,上页,则当,时可得到,8,FPLA和ROM比较,相同点:电路结构相似。,不同点:1. ROM的与逻辑阵列是固定的, 而FPLA的与逻辑阵列是可编程的。,ROM的
4、与逻辑阵列将输入变量的全部最小项都译出了, FPLA与逻辑阵列能产生的乘积项要比ROM少得多。,在使用ROM产生组合逻辑函数时,器件内部资源的利用率不高。,因此,使用FPLA设计组合逻辑电路比使用ROM更为合理。,下页,返回,上页,而使用FPLA产生组合逻辑函数时,与逻辑阵列也可编程,从而有效提高了芯片的利用率。,9,FPLA的规格用输入变量、与逻辑阵列的输出端数、或逻辑阵列的输出端数三者的乘积表示。,FPLA的编程单元有熔丝型和叠栅注入式MOS管两种。,FPLA中输出缓冲器的结构形式除三态输出以外,也有做成集电极开路(OC)结构的。,下页,返回,上页,还有一些FPLA器件在或逻辑阵列输出端与
5、输出缓冲器之间,设置了可编程的异或门,以便于对输出极性进行控制。,10,这种结构的FPLA电路中不包含触发器,这种结构的FPLA只能用于设计组合逻辑电路。这种类型的FPLA也称为组合型的FPLA。,下页,返回,上页,为便于设计时序逻辑电路,在有些FPLA芯片内部,增加了由若干触发器组成的寄存器。这种含有内部寄存器的FPLA称为时序逻辑型FPLA,也称做可编程逻辑时序器PLS。,11,三、可编程阵列逻辑(PAL),PAL由可编程的与逻辑阵列、固定的或逻辑阵列, 和输出电路三部分组成。通过对与逻辑阵列编程, 可获得不同形式的组合逻辑函数。有些型号的PAL器件中, 输出电路设置有触发器和从触发器输出
6、, 到与逻辑阵列的反馈线, 用这种PAL可方便地构成各种时序逻辑电路。,下页,返回,上页,12,* PAL的基本电路结构,由图可见,在尚未编程之前,与逻辑阵列的所有交叉点上均有熔丝接通。编程将有用的熔丝保留,将无用的熔丝熔断,即得所需的电路。,下页,返回,上页,13,* PAL的几种输出电路结构和反馈形式,专用输出结构。有PAL10H8、PAL14H4、PAL10HL8、PAL14L4等。,2. 可编程输入/输出结构。有PAL16L8、PAL20L10等。,3. 寄存器输出结构。有PAL16R4、PAL16R6、PAL16R8等。,4. 异或输出结构。有PAL204、PAL208、 PAL20
7、10等。,5. 运算选通反馈结构。有PAL16X4 、PAL16A4等。,下页,返回,上页,14,四、通用阵列逻辑(GAL),GAL采用电可擦除的CMOS(E2CMOS)制作,,可以用电压信号擦除并可重新编程。,GAL器件的输出端,设置了可编程的输出逻辑宏单元OLMC 。,通过编程可将OLMC设置成不同的工作状态,,这样就可以用同一种型号的GAL器件,实现PAL器件所有的各种输出电路工作模式,从而增强了器件的通用性。,克服了PAL器件存在的缺点。,下页,返回,上页,15,* GAL的电路结构,下页,返回,上页,以GAL16V8为例,介绍GAL器件的一般结构。,16,下页,返回,上页,电路有一个
8、3264位的可编程与逻辑阵列,8个OLMC,10个输入缓冲器,8个三态输出缓冲器和8个反馈/输入缓冲器。与逻辑阵列的每个交叉点上设有E2CMOS编程单元。这种编程单元的结构和工作原理,和E2PROM的存储单元相同。在GAL16V8中除了与逻辑阵列外还有一些编程单元。对GAL的编程是在开发系统的控制下完成的。编程是逐行进行的。,17,下页,返回,上页,OLMC中包含一个或门,一个D触发器,和由4个数据选择器及一些门电路组成的控制电路。OLMC的工作模式有5种:专用输入模式、专用组合输出模式、寄存器输出模式、反馈组合输出模式、时序电路中的组合输出模式。通过对结构控制字的编程可设定OLMC的工作模式
9、。,* 输出逻辑宏单元(OLMC),只要给GAL器件写入不同的结构控制字,就可以得到不同类型的输出电路结构。,18,五、可擦除的可编程逻辑器件(EPLD),下页,返回,上页,1. EPLD的基本结构和特点,EPLD是继PAL、GAL之后推出的一种可编程逻辑器件。它采用CMOS和UVEPROM工艺制作,集成度比PAL和GAL器件高得多,其产品多半都属于高密度PLD。与PAL和GAL相比,EPLD有以下特点:1.具有CMOS器件低功耗、高噪声容限的优点。2.可靠性高、可改写、集成度高、造价便宜。,3.OLMC有更大的使用灵活性。,19,下页,返回,上页,2. EPLD的与-或阵列逻辑,在PAL和G
10、AL器件的与-或逻辑阵列中,每个或门输入的乘积项数目是固定的,而且许多情况下每一组的数目又是相等的。但需要产生的与-或逻辑函数包含的乘积项各不相同,使得与-或逻辑阵列中的乘积项得不到充分利用。为了克服这种局限性,在EPLD的与-或逻辑阵列上作了一些改进。,20,下页,返回,上页,首先,在大多数的EPLD 中,与-或逻辑阵列每一组乘积项的数目不完全相同, 这样既便于产生不同项数与-或逻辑函数,又有利于提高乘积项的利用率。其次,在有的EPLD中,将每一组乘积项分作两部分,产生两个与-或逻辑函数,然后通过编程,使这两部分既可以单独送到输出逻辑电路,又可以组合在一起产生一个项数更多的与-或逻辑函数。,
11、21,下页,返回,上页,3. EPLD的输出逻辑宏单元(OLMC),EPLD的输出电路结构和GAL相似,也采取了可编程的输出逻辑宏单元OLMC。通过编程能将OLMC设置成各种不同的工作状态。由于增加了对OLMC中触发器的预置和置零功能,因而具有更大的使用灵活性。不同型号EPLD的OLMC在电路结构上也各不相同,但从预置和置零的工作方式上可分为两大类,一类为同步工作方式,另一类为异步工作方式。,22,六、现场可编程门阵列(FPGA),下页,返回,上页,1. FPGA的基本结构,在前面所讲的几种PLD电路中,都采用了与-或逻辑阵列加上输出逻辑单元的结构形式。而FPGA的电路结构形式则完全不同,它由
12、若干独立的可编程逻辑模块组成。用户可通过编程将这些模块连接成所需要的数字系统。FPGA属于高密度PLD,其集成度可达3万门/片以上。,23,下页,返回,上页,下图是 FPGA基本结构形式的示意图。,它由三种可编程单元和一个存放编程数据的静态存储器组成。这三种可编程的单元是输入/输出模块IOB(I/O Block)、可编程逻辑模块CLB和互联资源IR(Interconnect Resource)。,24,下页,返回,上页,为了能将这些CLB灵活地连接成各种应用电路,在CLB之间的布线区内配备了丰富的连线资源。这些互联资源包括不同类型的金属线、可编程的开关矩阵和可编程的连接点。静态存储器的存储单元
13、,由两个CMOS反相器和一个控制管T组成。,25,下页,返回,上页,FPGA的这种CLB阵列结构形式,克服了PAL等PLD中那种固定的与-或逻辑阵列结构的局限性,在组成一些复杂的、特殊的数字系统时显得更加灵活。同时由于加大了可编程I/O端的数目,使得各引脚信号的安排更加方便和合理。FPGA本身也存在着一些明显的缺点:1. 它的信号传输延迟时间不是确定的。 在EPLD中就不存在这个问题。2. 断电后数据便随之丢失。3. 不便于保密。而EPLD中设有加密编程单元。FPGA和EPLD各有不能取代的优点。,26,下页,返回,上页,2. FPGA的IOB和CLB,以Xilinx公司生产的XC2064为例
14、,介绍FPGA的IOB和CLB的电路结构和工作原理。,(1)IOB,在XC2064中共有56个可编程的I/O端。,27,下页,返回,上页,MUX1输出低电平时IOB工作在输出状态,FPGA内部产生的信号通过G1送至I/O端。MUX1输出高电平时G1为高阻态,IOB工作在输入状态。,28,下页,返回,上页,MUX2用于输入方式的选择。 当MUX2的输出选中输入缓冲器G2的输出时,为异步输入方式。当MUX2的输出选中触发器的输出时,为同步输入方式。,29,下页,返回,上页,( 2 ) CLB,在XC2064中有64个CLB,排列成88的矩阵。每个CLB的电路中包含组合逻辑电路、存储电路和由一些数据
15、选择器组成的内部控制电路。,30,下页,返回,上页,组合逻辑电路是有4个输入端、两个输出端的通用逻辑模块。根据设计的需要可将组合逻辑电路部分设置成3种不同的组态。第一种组态可产生任何形式的四变量组合逻辑函数。第二种组态可产生两个三变量的任何形式的逻辑函数。第三种组态可产生含有A、B、C、D、Q的五变量逻辑函数。这种通用逻辑模块由N沟道MOS管和CMOS反相器组成,输入与输出的逻辑关系由一组编程控制信号决定。将编程控制信号与函数对应关系列成函数表,在编程过程中通过查表即可找出所需的编程数据。,31,下页,返回,上页,为了能将FPGA中数目很大的CLB和IOB连结成各种复杂的系统,在布线区内布置了
16、丰富的连线资源。这些互连资源可以分为三类,即金属线、开关矩阵SM(Switching Matrices)和可编程连接点PIP(Programmable Interconnect Points)。布线区里的金属线分为水平通用连线、垂直通用连线、水平长线、垂直长线、全局连线和直接连线等几种。通用连线主要用于CLB之间的连接,长线主要用于长距离或多分支信号的传送,全局连线则用于输送一些公共信号等。,3. FPGA的互连资源,32,七、PLD的编程,下页,返回,上页,随着PLD集成度的不断提高,PLD的编程工作必须在开发系统的支持下才能完成。PLD开发系统包括软件和硬件两部分。开发系统软件是指PLD专
17、用的编程语言,和相应的汇编程序或编译程序。开发系统软件大体上可分为汇编型、编译型和原理图收集型三种。开发系统的硬件包括计算机和编程器。,33,下页,返回,上页,PLD的编程工作大体上可按如下步骤进行:第一步, 进行逻辑抽象。第二步,选定 PLD的类型和型号。第三步,选定开发系统。第四步,按编程语言的规定格式编写源程序。第五步,上机运行。第六步,卸载。 第七步,测试。PLD专用的编程语言,,34,八、在系统可编程逻辑器件(ISP-PLD),返回,在系统可编程逻辑器件(In-System Programmable),是Lattice公司20世纪90年代首先推出的一种新型可编程逻辑器件。这种器件的最大特点是编程时既不需要使用编程器,也不需要将它从所在系统的电路板上取下,可以在系统内进行编程。目前Lattice公司生产的有低密度和高密度两种类型。低密度ISP-PLD是在GAL电路的基础上,加进了写入/擦除控制电路而形成的。高密度ISP-PLD又称ispLSI,它的电路结构比低密度ISP-PLD要复杂得多,功能也更强。,下页,上页,35,返回,上页,课堂练习,