sheafh

基础知识:CPLD和FPGA区别和联系

0
阅读(2132)

FPGA与CPLD的区别

FPGA (Field Programmable Gate Arry)是指现场可编程门阵列,多为SRAM 工艺,基于查找表(Look Up Table)结构,要外挂配置用的EPROM

PLD(Programmable Logic Device)是可编程逻辑器件的总称,早期多EEPROM工艺,基于乘积项(Product Term)结构
可编程逻辑器件主要包括FPGA和CPLD,FPGA是Field Programmable Gate Array缩写,CPLD是Complex Programmable Logic Device的缩写。

从可编程逻辑器件的发展历史上来讲,CPLD一般是指采用乘积相结构的基于EEPROM的器件,所以具有非挥发的,不需要外 部配置ROM,具有保密性和有限次编程次数(根据不同的结构,从100次到1万次不等)等特点,适合用在胶合逻辑(glue logic,如DSP芯片外 围的译码逻辑),IO扩展,IO电平转换,FPGA芯片配置等应用场合。如Altera的MAX7000和MAX3000系列芯片,Xilinx的 XC9500和CoolRunner/II系列芯片,Lattice的ispMACH4000/Z系列芯片都是CPLD器件,容量从32宏单元到512宏 单元不等。

FPGA主要是指采用四输入查找表(LUT4)的基于SRAM的器件,因为SRAM是挥发的,掉电丢失数据,所以FPGA需 要外部配置ROM,上电的时候,从外部的ROM把FPGA的配置数据导入到FPGA芯片内部后工作。具有SRAM的FPGA采用标准的CMOS制造工艺, 可以随着最新的工艺而更新还代,给用户带来了实惠;衡量FPGA容量的一个基本指标是逻辑单元(Logic cell或者Logic element), 由一个可编程的LUT4和一个可编程的DFF组成,LUT4完成组合逻辑功能,而DFF用来实现时序功能。FPGA的容量从几千的逻辑单元到几十万的逻辑 单元不等。如Altera的Cyclone/II/III和Stratix/II/III系列芯片,Xilinx Spartan3/3E/3A/3AN 和Virtex4/5系列芯片都是FPGA器件。

随着芯片技术的发展,CPLD和FPGA的概念已经模糊在一起,如Altera和Lattice公司把小容量(小于2K左右 逻辑单元)非挥发的可编程器件归到CPLD里,如Altera的MAXII系列和Lattice的MACH XO系列芯片,把基于SRAM的FPGA和 FLASH的储存单元做到一个芯片里面,以及跟传统的CPLD不一样了;总之,我们可以简单的区分FPGA和CPLD,CPLD:小容量(<2K左 右LE)的非挥发的可编程器件;其它的可编程器件都可归到FPGA。

系统的比较:

尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:

① CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。

② CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。

③ 在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。

④ FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。

⑤ CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。

⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。

⑥    在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编 程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件 外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。

⑧CPLD保密性好,FPGA保密性差。

⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。