Verilog HDL与CPLD/FPGA项目开发教程(第3版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.4 CPLD与FPGA的区别

微课1-3

CPLD与FPGA区别

随着技术的发展,在2004年以后,一些厂家推出了一些新的PLD和FPGA,这些产品模糊了PLD和FPGA的区别。例如,Altera公司的MAXⅡ系列PLD,这是一种基于查找表结构、集成配置芯片的PLD,在本质上它就是一种在内部集成了配置芯片的FPGA,但由于配置时间极短,上电就可以工作,所以对用户来说,感觉不到配置过程,可以像传统的PLD一样使用,加上容量与传统PLD类似,所以Altera公司把它归作PLD。还有Lattice公司的XP系列FPGA,也是采用了同样的原理,将外部配置芯片集成到内部,在使用方法上和PLD类似,但是因为容量大,性能和传统FPGA相同,也是LUT结构,所以Lattice公司仍把它归为FPGA。

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

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

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

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

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

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

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

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

8)CPLD保密性好,FPGA保密性差。

过去由于受到CPLD密度的限制,数字器件设计人员只好转向FPGA和ASIC。但随着CPLD密度的提高,具时序可预测和速度高等优点,使得数字器件设计人员在进行大型设计时,既灵活又容易,而且产品可以很快进入市场,现在,设计人员可以体会到密度高达数十万门的CPLD所带来的好处,所以,本书选用CPLD为主控器件进行介绍。