复杂可编程逻辑器件(Complex Programmable Logic Device, CPLD),CPLD适合用来实现各种运算和组合逻辑(combinational logic)。一颗CPLD内等于包含了数颗的PAL(可编程阵列逻辑),各PAL(逻辑区块)间的互接连线也可以进行程序性的规划。

1984 年Altera 公司发明世界上第一款可编程逻辑器件。FPGA是1985 Xilinx公司发明的。Lattice公司发明的系统可编程(In System Program,ISP)技术极大地扩展了CPLD的应运范围。

从结构工艺讲,CPLD多为乘积项结构,具体实现上就是所谓的宏单元(Micro-cell),包含EEPROM、Flash和反熔丝等不同工艺。FPGA多为查找表(LUT)加寄存器结构,实现工艺多为SRAM,也包含Flash、Anti-Fuse等工艺。

在延时方面,CPLD的Pin to Pin 延时是固定的, FPGA的Pin to Pin 延时是不可预测的。互连结构和连线资源方面,CPLD采用集总式互连结构,相对布线资源有限,CPLD产连线式布线结构决定了它的时序延迟是均匀的和可预测的。FPGA采用分布式结构决定了其延迟的不可预测性,使时序更难规划。

目前CPLD市场主要由Altera、Xilinx、 Lattice占领。Xilinx的CoolRunner-II CPLD,Altera的MAX II,Lattice的ispMACH等都在生活中有很大的应用。

Altera的从MAX II 系列开始CPLD已经不采用传统的宏单元MC结构,而是采用查找表LUT结构,基于Flash存储器编程,系统断电时编程信息不丢失。MAX II 系列的CPLD特殊的引脚分为三类:GCLK,DEV_OE,DEV_CLRn。内部用CFM配置查找表和寄存器。除了CFM还有8192 bit的UFM,这样可以不用外接Flash。没有上电顺序要求。

对开发者而言,CPLD和FPGA区别不大,只是CPLD的资源少一些而已。总得来说,CPLD开发难度低一些,因为资源有限,不可能实现太复杂的功能。所有的资料都在官网给的技术手册中,包括Handbook,datasheet,application note等。

注:

问:Altera 的CPLD和Xilinx的CPLD的区别?

问:MAXⅡ是以LUT来做计算,请问要如何转换为传统的CPLD MICRO-CELL?

答:粗略的换算公式为:1个LE = 0.78个宏单元

参考文献:

[1] Altera CPLD的简介. http://www.hseda.com/fpga/MAX2/BANK.HTM. 2015,08,26.

[2] Complex programmable logic device. https://en.wikipedia.org/wiki/Complex_programmable_logic_device. 2015,08,26.

[3] Altera历史. https://www.altera.com.cn/about/company/technology.html. 2015,08,26.

[4] Programmable logic device. https://en.wikipedia.org/wiki/Programmable_logic_device. 2015,08,26.

[5] 百度百科. http://baike.baidu.com/link?url=Pvrhmf9R9p2NVAH3_CFe3eMCRVqcDfy3jce6wZMn0WbD1I4VOZfZpbJJSCUyglfvfQjB3znuivK2ETrNwptlgK. 2015,08,26.

05-08 15:09