我可以想到三种主要的可编程IC:
- 独立的存储芯片,例如PROM,EPROM,EEPROM和闪存
- 具有内置存储器的微控制器(和某些微处理器),它们使用PROM,EPROM,EEPROM或闪存
- 可编程逻辑,例如PAL,PLD和FPGA
最初,使用集成电路的程序存储只是ROM —只读存储器,在出厂时已被编程为掩膜。然后,出现了一个称为PROM可编程ROM的变体,客户可以在现场对其进行一次编程。但是一旦编程,就不能擦除并重新编程。因此,除非你使用在线仿真器(ICE),否则你在调试其代码时会浪费很多芯片。
一个EPROM(可擦除PROM)对顶部的小窗口,这使它能够使用UV光被擦除。最早的EPROM于1971年推出,是1702。它具有256个字节的内存。
这样一来,你不必每次都需要修复错误时就浪费芯片。但是擦除其中一个芯片大约需要20分钟,因此一个芯片通常有几十个芯片,而你一次要擦除一堆芯片。
EEPROM(电可擦除PROM)使得可以对芯片进行电编程和擦除。
闪存(用于在当今的微控制器中存储代码)只是EEPROM的一种。它们的擦除方式不同-EEPROM可以单字节擦除,而Flash存储器则以较大的块(例如4K字节)擦除。EEPROM每位需要两个晶体管结构以擦除存储器中的专用字节,而闪存每位需要一个晶体管以擦除存储器的区域。
EEPROM通常比闪存具有更多的擦除/写入周期。通常都只使用两个引脚来编程时钟和数据。
除了单独的存储芯片外,微控制器还以ROM,PROM,EPROM,EEPROM和闪存版本生产。例如,Microchip PIC16F84A是PIC16C84的较新闪存替代产品,后者使用EEPROM来存储程序存储器的1K x 14位字。PIC16F84A仍包含64个字节的EEPROM,用于长期数据存储,因为闪存被限制为10,000个擦除/写入周期,而EEPROM部分的存储容量为10,000,000。
在大多数情况下,微控制器在芯片内部具有可编程存储器,而微处理器则没有(尽管有些微控制器具有用于初始启动的少量可编程存储器)。
可编程逻辑器件允许将可能需要数十个甚至数百个单独的IC的复杂电路组合到一个芯片中。以各种方式配置预定义的逻辑单元以表达所需的电路。
可编程逻辑集成电路的早期版本就像只读存储器(ROM)。只能通过向制造商提交包含所需熔丝样式的文件来对其进行“编程”,并且在制造芯片时确定了逻辑。从那时起,可编程逻辑行业就紧随其后,采用了与存储器相同的技术,即PROM,EPROM,EEPROM和闪存。
然后是可以由用户编程的各种类型的可编程逻辑设备,例如流行的22v10 PAL(可编程逻辑设备)。多年来,这些早期的设备已被具有更高容量的设备所取代,例如CPLD(复杂可编程逻辑设备)和FPGA(现场可编程门阵列)。一些FPGA具有数亿个门和数十亿个晶体管,其中的某些部分可用于仿真处理器,例如ARM。
FPGA除了具有更高的复杂性外,与CPLD的不同还在于,FPGA通常从外部存储器加载其逻辑配置,而CPLD具有内部编程的逻辑模式。
有些微控制器将CPU与可编程逻辑结合在一起。Microchip PIC16F1619具有四个可配置逻辑单元,它们独立于处理器运行,可用于减少外部逻辑。