CPLD(复杂可编程逻辑器件)是从PAL和GAL 器件发展出来的器件,相对而言规模大、结构复杂,属于大规模集成电路范围,是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中来实现设计的数字系统。
FPGA 和 CPLD 的区别如下:
(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 或 FastFlash 存储器编程的,编程次数可达 1 万次,优点是系统断电时编程信息也不丢失。CPLD 又可分为在编程器上编程和在系统编程两类。FPGA 大部分是基于 SRAM 编程的,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入 SRAM 中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。
(8)CPLD 保密性好,FPGA 保密性差。
(9)一般情况下,CPLD 的功耗要比 FPGA 大,且集成度越高越明显。随着复杂可编程逻辑器件(CPLD)密度的提高,数字器件设计人员在进行大型设计时,既灵活又容易,而且产品可以很快进入市场。许多设计人员已经感受到 CPLD 有容易使用、时序可预测和速度高等优点。然而,过去由于受到 CPLD 密度的限制,他们只好转向 FPGA 和 ASIC。现在,设计人员可以体会到密度高达数十万门的 CPLD 所带来的好处。