FPGA是现场可编程逻辑门阵列的简称,是电子设计的一个里程碑。CPLD是复杂可变成逻辑器件的简称。尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:
1)、CPLD更适合完成各种算法和组合逻辑,FP GA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。
2)、CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。
3)、在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FP GA可在逻辑门下编程,而CPLD是在逻辑块下编程。
4)、FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。
5)、CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。
6)、CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。
7)、在编程方式上,CPLD主要是基于EEPROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。
8)、CPLD保密性好,FPGA保密性差。
9)、一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。
随着FPGA门数以及性能的提高,可以将现在的许多数字电路部分下载到FPGA上,实现硬件的软件化,包括51核,DSP核以及其他的一些数字模块,到最后一个系统板子就剩下电源、模拟电路部分,接口部分以及一块FPGA。FPGA可以说是芯片级的PCB板,在一个芯片里设计原来的电子系统的所有数字电路部分。现在也有将ARM核嵌入到FPGA里面的,比如Altera公司的Nois核。Nois是一个软核,是有软件编写的一个32位处理器,并不是硬件上存在的处理核,该核工作频率为50HZ,现在用于许多图像处理以及其他的很多网络设备。利用锁相环技术可以将频率成倍提升,一般的ARM核是将锁相环做到芯片里面的,在变成的时候可以对某个寄存器进行设置从而达到分频和倍频的目的。而将DSP核嵌入到FPGA里面去实现强大的计算功能是Altera公司近期推出的一系列芯片的一个优点。Altera公司的Stratix II系列芯片采用内嵌的DSP核,但是其DSP核的计算速度比现在业界上最快的DSP芯片还要快几个数量级。
关于编程方式,目前的 CPLD主要是基于E2 PROM或 FLASH存储器编程 ,编程次数达 1万次。其优点是在系统断电后,编程信息不丢失。CPLD又可分为在编程器上编程和在系统编程 (ISP) CPLD两种。 ISP器件的优点是不需要编程器,可先将器件装焊于印制板 ,再经过编程电缆进行编程,编程、调试和维护都很方便。FPGA大部分是基于 SRAM编程,其缺点是编程数据信息在系统断电时丢失 ,每次上电时 ,需从器件的外部存储器或计算机中将编程数据写入SRAM中。其优点是可进行任意次数的编程,并可在工作中快速编程 ,实现。
一般CPLD 用的场合:
1. IO的端口扩展
2. 较简单逻辑实现
从可编程逻辑器件的发展历史上来讲,CPLD一般是指采用乘积相结构的基于EEPROM的器件,所以具有非挥发的,不需要外部配置ROM,具有保密性和有限次编程次数(根据不同的结构,从100次到1万次不等)等特点,适合用在胶合逻辑(glue logic,如DSP芯片外围的译码逻辑),IO扩展,IO电平转换,FPGA芯片配置等应用场合。如Xilinx的XC9500和CoolRunner/II系列芯片都是CPLD器件,容量从32宏单元到512宏单元不等。
FPGA主要是指采用四输入查找表(LUT)的基于SRAM的器件,因为SRAM是挥发的,掉电丢失数据,所以FPGA需要外部配置ROM,上电的时候,从外部的ROM把FPGA的配置数据导入到FPGA芯片内部后工作。具有SRAM的FPGA采用标准的CMOS制造工艺,可以随着最新的工艺而更新还代,给用户带来了实惠;衡量FPGA容量的一个基本指标是逻辑单元(Logic cell或者Logic element),由可编程得LUT和可编程的DFF组成,LUT完成组合逻辑功能而DFF用来实现时序功能。
一般IC数字设计前功能验证用FPGA
CPLD 和 FPGA 其实牵涉到一些历史遗留问题
你现在可以把FPGA看做是CPLD的加强版
原来早的时候,胶合逻辑也就是一些片选、BUS合用之类的事情,所以CPLD就可以了
但是越到现在,越是显出CPLD的不足,譬如现在的胶合逻辑已经有协议转换之类的事情了,还有高速LVDS的接口,所以基本上新的产品都是用FPGA。
至于工业产品,其实可以说大部分设计都很老的,所以我觉得这个其实才是主要原因。