标题：大规模可编程逻辑器件
发展历史
1)第一阶段:PLD诞生及简单PLD发展阶段
二十世纪七十年代,熔丝编程的PROM(ProgrammableReadOnlyMemory)和PLA(ProgrammableLogicArray)的出现，标志着PLD的诞生。可编程逻辑器件最早是根据数字电子系统组成基本单元-门电路可编程来实现的,任何组合电路都可用与门和或门组成,时序电路可用组合电路加上存储单元来实现.早期PLD就是用可编程的与阵列和(或)可编程的或阵列组成的。
PROM是采用固定的与阵列和可编程的或阵列组成的PLD,由于输入变量的增加会引起存储容量的急剧上升，只能用于简单组合电路的编程。PLA是由可编程的与阵列和可编程的或阵列组成的，克服了PROM随着输入变量的增加规模迅速增加的问题，利用率高，但由于与阵列和或阵列都可编程,软件算法复杂，编程后器件运行速度慢，只能在小规模逻辑电路上应用。现在这两种器件在EDA上已不再采用，但PROM作为存储器，PLA作为全定制ASIC设计技术，还在应用。
二十世纪七十年代末，AMD公司对PLA进行了改进，推出了PAL(ProgrammableArrayLogic)器件，PAL与PLA相似，也由与阵列和或阵列组成，但在编程接点上与PAL不同,而与PROM相似，或阵列是固定的，只有与阵列可编程。或阵列固定与阵列可编程结构，简化了编程算法,运行速度也提高了，适用于中小规模可编程电路。但PAL为适应不同应用的需要，输出I/O结构也要跟着变化，输出I/O结构很多，而一种输出I/O结构方式就有一种PAL器件，给生产，使用带来不便。且PAL器件一般采用熔丝工艺生产，一次可编程，修改电路需要更换整个PAL器件，成本太高。现在PAL已被GAL所取代。
以上可编程器件，都是乘积项可编程结构，都只解决了组合逻辑电路的可编程问题，对于时序电路，需要另外加上锁存器，触发器来构成，如PAL加上输出寄存器，就可实现时序电路可编程。2)第二阶段:乘积项可编程结构PLD发展与成熟阶段
二十世纪八十年代初，Lattice(莱迪思)公司开始研究一种新的乘积项可编程结构PLD。1985年推出了一种在PAL基础上改进的GAL(GenericArrayLogic)器件。GAL器件首次在PLD上采用EEPROM工艺，能够电擦除重复编程，使得修改电路不需更换硬件，可以灵活方便地应用，乃至更新换代。
在编程结构上，GAL沿用了PAL或阵列固定与阵列可编程结构，而对PAL的输出I/O结构进行了改进，增加了输出逻辑宏单元OLMC(outputLogicMacroCell),OLMC设有多种组态，使得每个I/O引脚可配置成专用组合输出,组合输出双向口，寄存器输出,寄存器输出双向口，专用输入等多种功能，为电路设计提供了极大的灵活性。同时，也解决了PAL器件一种输出I/O结构方式就有一种器件的问题，具有通用性。而且GAL器件是在PAL器件基础上设计的，与许多PAL器件是兼容的，一种GAL器件可以替换多种PAL器件，因此，GAL器件得到了广泛的应用.目前，GAL器件主要应用在中小规模可编程电路，而且，GAL器件也加上了ISP功能，称ispGAL器件。
二十世纪八十年代中期,ALTERA(阿特喇)公司推出了EPLD(ErasablePLD)器件,EPLD器件比GAL器件有更高的集成度,采用EPROM工艺或EEPROM工艺,可用紫外线或电擦除,适用于较大规模的可编程电路,也获得了广泛的应用.3)第三阶段:复杂可编程器件发展与成熟阶段
二十世纪八十年代中期,Xilinx(西林克司)公司提出了现场可编程(FieldProgrammability)的概念,并生产出世界上第一片FPGA器件,FPGA是现场可编程门阵列(FieldProgrammableGateArray)的英文缩写,现在已经成了大规模可编程逻辑器件中一大类器件的总称.FPGA器件一般采用SRAM工艺,编程结构为可编程的查找表(Look-UpTable,LUT)结构.FPGA器件的特点是电路规模大,配置灵活,但SRAM需掉电保护,或开机后重新配置.
二十世纪八十年代末,Lattice公司提出了在系统可编程(In-SystemProgrammability,ISP)的概念,并推出了一系列具有ISP功能的CPLD器件,将PLD的发展推向了一个新的发展时期.CPLD即复杂可编程逻辑器件(ComplexProgrammableLogicDevice)的英文缩写,Lattice公司推出CPLD器件开创了PLD发展的新纪元,也即复杂可编程逻辑器件的快速推广与应用.CPLD器件采用EEPROM工艺,编程结构在GAL器件基础上进行了扩展和改进,使得PLD更加灵活,应用更加广泛.
复杂可编程逻辑器件现在有FPGA和CPLD两种主要结构,进入二十世纪九十年代后,两种结构都得到了飞速发展,尤其是FPGA器件现在已超过CPLD,走入成熟期,因其规模大,拓展了PLD的应用领域.目前,器件的可编程逻辑门数已达上千万门以上,可以内嵌许多种复杂的功能模块,如CPU核,DSP核,PLL(锁相环)等,可以实现单片可编程系统(SystemonProgrammableChip,SoPC).
拓展了的在系统可编程性(ispXP),是Lattice公司集中了E2PROM和SRAM工艺的最佳特性而推出的一种新的可编程技术.ispXP兼收并蓄了E2PROM的非易失单元和SRAM的工艺技术,从而在单个芯片上同时实现了瞬时上电和无限可重构性.ispXP器件上分布的E2PROM阵列储存着器件的组态信息.在器件上电时,这些信息以并行的方式被传递到用于控制器件工作的SRAM位.新的ispXFPGATMFPGA系列与ispXPLDTMCPLD系列均采用了ispXP技术.
现在,除了数字可编程器件外,模拟可编程器件也受到了大家的重视,Lattice公司提供有ispPAC系列产品供选用.
分类
PLD的分类繁多,各生产厂家命名不一,一般可按以下几种方法进行分类.
1)按集成度来区分,分为二大类:(1)简单PLD,逻辑门数500门以下,包括PROM,PLA,PAL,GAL等器件.
(2)复杂PLD,芯片集成度高,逻辑门数500门以上,或以GAL22V10作参照,集成度大于GAL22V10,包括EPLD,CPLD,FPGA等器件.
2)从编程结构来区分,分为二大类:(1)乘积项结构PLD,包括PROM,PLA,PAL,GAL,EPLD,CPLD等器件.
(2)查找表结构PLD,FPGA属此类器件.
3)从互连结构来分,分为二大类:(1)确定型PLD.确定型PLD提供的互连结构,每次用相同的互连线布线,其时间特性可以确定预知(如由数据手册查出),是固定的,如CPLD.
(2)统计型PLD.统计型结构是指设计系统时,其时间特性是不可以预知的,每次执行相同的功能时,却有不同的布线模式,因而无法预知线路的延时,如Xilinx公司的FPGA器件.
4)从编程工艺来区分,分为五大类:(1)熔丝型PLD,如早期的PROM器件.编程过程就是根据设计的熔丝图文件来烧断对应的熔丝,获得所需的电路.
(2)反熔丝型PLD,如OTP型FPGA器件.其编程过程与熔丝型PLD相类似,但结果相反,在编程处击穿漏层使两点之间导通,而不是断开.
OTP是一次可编程(OneTimeProgramming)的英文缩写,以上两类都是OTP器件.
(3)EPROM型PLD,EPROM是可擦可编程只读存储器(ErasablePROM)的英文缩写,EPROM型PLD采用紫外线擦除,电可编程,但编程电压一般较高,编程后,下次编程前要用紫外线擦除上次编程内容.
在制造EPROM型PLD时,如果不留用于紫外线擦除的石英窗口,也就成了OTP器件.
(4)EEPROM型PLD,EEPROM是电可擦可编程只读存储器(ElectricallyErasablePROM)的英文缩写,与EPROM型PLD相比,不用紫外线擦除,可直接用电擦除,使用更方便,GAL器件和大部分EPLD,CPLD器件都是EEPROM型PLD.
(5)SRAM型PLD,SRAM是静态随机存取存储器(StaticRadomAccessMemory)的英文缩写,可方便快速的编程(也叫配置),但掉电后,其内容即丢失,再次上电需要重新配置,或加掉电保护装置以防掉电.大部分FPGA器件都是SRAM型PLD.