可编程逻辑器件(PLD)是20世纪70年代发展起来的一种新型逻辑器件,是目前数字系统设计的主要硬件基础。根据可编程逻辑器件结构、集成度以及编程工艺的不同,它存在以下不同的分类方法。
一是基于 “与或” 阵列结构的器件——阵列型;
(如:PROM、EPROM、EEPRM、PAL、GAL、CPLD、EPLD、EPLA)
二是基于门阵列结构的器件——单元型;
(如:FPGA)
可编程只读存储器只允许写入一次,所以也被称为一次可编程只读存储器(One Time Programming ROM,OTP-ROM)。可编程只读存储器在出厂时,存储的内容全为1,用户可以根据需要将其中的某些单元写入数据0(部分的PROM在出厂时数据全为0,则用户可以将其中的部分单元写入1),以实现对其编程的目的。
PROM典型的产品分两类:
一类是经典的可编程只读存储器,为使用“肖特基二极管”的PROM,它是由二极管组成的结破坏型电路。出厂时,二极管处于反向截止状态,用大电流的方法将反向电压加在“肖特基二极管”,造成其永久性击穿即可。
另一类是由晶体管组成的熔丝型电路,如果想改写某些单元,则可以给这些单元通以足够大的电流,并维持一定的时间,原先的熔丝即可熔断,这样就达到了改写某位的效果。
(具体详细原理自行百度了)
最早研制成功并投入使用的EPROM是用紫外线照射进来擦除的。EPROM采用MOS型电路结构,其存储单元通常由叠栅型MOS晶体管组成,而叠栅型MOS晶体管通常采用增强型场效应管结构。
EEPROM(也可写成E2PROM)是一种用电信号擦除和改写的可编程ROM。它不仅可以整体擦除存储单元内容,还可以逐字擦除和逐字改写。EEPROM的擦除和改写电流很小,在普通工作电源下即可进行,擦除时也不需要将器件从系统上拆卸下来。
PLA沿用了在生产PROM器件中所采用的熔丝式双极型工艺,具有“与”阵列可编程而“或”阵列固定结构,也可以达到很高的工作速度。PLA器件与PROM相比,阵列规模大大减少,能更灵活地实现各种逻辑功能,而PLA器件编程简单、适应性强,可以取代多种常用中小规模晶体管逻辑器件。
GAL是一种电可擦除可重复编程的逻辑器件,它具有灵活的可编程输出结构,使得为数不多的集中GAL器件几乎能够代替所有的PAL器件和数百种中小规模的标准器件。而且GAL采用先进的EECMOS工艺,可以在几秒钟内完成对器件的擦除和写入,并允许反复改写。普通的GAL器件与PAL器件有相同的阵列结构,均采用“与”阵列可编程、或阵列固定的结构。
CPLD是在PAL、GAL等器件的基础上发展起来的大规模集成可编程逻辑器件,与PAL、GAL等器件相比,CPLD的规模比较大,一个CPLD可以替代几十个甚至数百个通用的IC芯片。虽然不同IC公司生产的CPLD机构差异很大,但一般包含可编程的逻辑宏单元(Logic Macro Cell,LMC)、可编程的I/O单元、可编程的内部连线(Programmable Interconnect,PI)这三部分。
EPLD结合了大规模集成电路体积小、价格低、可靠性高等优点,用户可以根据需要设计专用电路,以避免价格高、周期长等问题。EPLD器件的延迟时间是可预测的,也是固定的。因此在EPLD器件中的功能模板上实现任何功能都具有同样的速度。功能模块通过无限制的内部互连在一起,提供了多个可编程逻辑结构。而每个功能模块包含9个可编程“与”“或”阵列驱动的宏单元,任意一个引脚的输入或宏单元的输出都可以连到另一个宏单元的输入,这种无限制的可编程互连结构保证了EPLD具有100%的布线能力。
现场可编程逻辑阵列(FPLA)是可编程逻辑器件(PLD)的一种,它是一种半导体器件,含有可编程逻辑元件中所谓的“逻辑块”和可编程互连。逻辑块通过编程来执行基本逻辑门的功能,如“和”“异或”或更复杂的组合功能。在大多数的FPLA中,逻辑块还包括记忆体分子、等级可编程互连,满足逻辑块要相互关联的需要。另外,FPLA的结构和ROM相似,区别在于:首先,ROM的与阵列是固定的,而FPLA的与阵列是可编程的;其次,ROM的与阵列输出是全部最小项,而FPLA的与阵列却可以输出简化后的表达式。该系统设计师根据客户或设计师需求来执行任何逻辑功能,因此命名为“现场可编程”。
FPGA是在PAL、GAL、CPLD等可编程器件的基础上进一步发展起来的,它是基于单元型门阵列结构的器件。由于FPGA需要被反复烧写,所以它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而是只能采用一种易于反复配置的结构。目前主流的FPGA都采用了基于SRAM工艺的查找表,也有一些军用品和宇航级FPGA采用Flash或熔丝与反熔丝工艺的查找表结构,通过烧写文件改变查找表内容的方法来实现对FPGA的重复配置。
由布尔代数理论可知,对于一个n输入的逻辑运算,不管是与或非运算,最多只可能存在2n种结果,所以如果是先将相应的结果存放于一个存储单元,就相当于实现了与非门电路的功能。FPGA原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。
为一次性编程使用的非易失性原件,编程后即使系统断电,其存储的编程信息也不会丢失。
大多数公司的FPGA器件都为SRAM型器件,它可以反复编程,实现系统功能的动态重构。但每次上电需要重新下载,实际应用时需要外挂EEPROM用于保存程序。
为易失性器件,大多数CPLD器件都为EEPROM器件,可反复编程,不用每次上电重新下载,但相对速度慢、功耗较大。
为易失器件。
集成度在1000门以下。早期生产的可编程逻辑器件,如PROM、PLA、PAL、GAL等,只能完成较小规模的逻辑电路,因此都属于低密度器件。
集成度为1000门以上,目前流行的EPLD、CPLD和FPGA等属于高密度器件,可用于设计大规模数字系统,甚至可以做到片上系统(System on Chip,SoC )设计。
如:海门架构。
如:FPGA
如:CPLD