FPGA与CPLD的概念及其区别
一、FPGA与CPLD的基本概念
1.CPLD
CPLD主要是由可编程逻辑宏单元(LMC,Logic Macro Cell)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能.由于 CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点.到90年代,CPLD发展更为迅速,不仅具有电擦除特性,而且出现了边缘扫描及在线可编程等高级特性.较常用的有Xilinx公司的EPLD和Altera公司的CPLD.
2.FPGA
FPGA通常包含三类可编程资源:可编程逻辑功能块、可编程I/O块和可编程互连.可编程逻辑功能块是实现用户功能的基本单元,它们通常排列成一个阵列,散布于整个芯片;可编程I/O块完成芯片上逻辑与外部封装脚的接口,常围绕着阵列排列于芯片四周;可编程内部互连包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或I/O块连接起来,FPGA在可编程逻辑块的规模,内部互连线的结构和采用的可编程元件上存在较大的差异.较常用的有Altera、Xinlinx和Actel公司的FPGA.FPGA一 般用于逻辑仿真.电路设计工程师设计一个电路首先要确定线路,然后进行软件模拟及优化,以确认所设计电路的功能及性能.然而随着电路规模的不断增大,工作 频率的不断提高,将会给电路引入许多分布参数的影响,而这些影响用软件模拟的方法较难反映出来,所以有必要做硬件仿真.FPGA就可以实现硬件仿真以做成模型机.将软件模拟后的线路经一定处理后下载到FPGA,就可容易地得到一个模型机,从该模型机,设计者就很直观地测试其逻辑功能及性能指标.
二、FPGA与CPLD区别
尽管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大,且集成度越高越明显.
随著复杂可编程逻辑器件(CPLD)密度的提高,数字器件设计人员在进行大型设计时,既灵活又容易,而且产品可以很快进入市常许多设计人员已经感受到 CPLD容易使用.时序可预测和速度高等优点,然而,在过去由于受到CPLD密度的限制,他们只好转向FPGA和ASIC.现在,设计人员可以体会到密度 高达数十万门的CPLD所带来的好处.