CPLD和FPGA两者的区别

时间:2025-06-17  作者:Diven  阅读:0

CPLD和FPGA都是我们经常会用到的器件。有的说有配置芯片的是FPGA,没有的是CPLD;有的说逻辑资源多的是FPGA,少的是CPLD;有的直接就不做区分,把都叫做FPGA。那么两者到底有什么区别呢?下面我们就以Altera公司的CPLD和FPGA为例来说说两者的区别。

CPLD和FPGA两者的区别

首先我们看一下CPLD的芯片结构,搞清楚CPLD是由哪几部分组成的。下图是MAX系列CPLD的芯片结构图:

从图中可以清楚的看出来CPLD主要由三部分组成:Macro cell(宏单元),PIA(可编程连线),和IO Control Block(IO控制块)。每个宏单元都与GCLK(全局时钟)OE(输出使能)GCLR(清零)等控制信号直接相连,并且延时相同。各宏单元之间也由固定长度的金属线互连,这样保证逻辑电路的延时固定。其中宏单元模块是CPLD的逻辑功能实现单元,是器件的基本单元,我们设计的逻辑电路就是由宏单元具体实现的。下面我们再来看看宏单元的具体结构:

一个宏单元主要包括了LAB Local Array(逻辑阵列),Product-Term Select Matrix(乘积项选择矩阵)和一个可编程D触发器组成。其中逻辑阵列的每一个交叉点都可以通过编程实现导通从而实现与逻辑,乘积项选择矩阵可实现或逻辑。这两部分协同工作,就可以实现一个完整的组合逻辑。输出可以选择通过D触发器,也可以对触发器进行旁路。通过这个结构可以发现,CPLD非常适合实现组合逻辑,再配合后面的触发器也能够实现一定的时序逻辑。

我们再来以cyclone系列为例看看FPGA的内部结构:

FPGA内部主要就是由LAB单元,连线和IO单元组成。一个LAB单元又包含若干个LE模块。LE模块是CycloneFPGA的基本逻辑单元,下图是LE模块的具体结构:

初看上去好像比较复杂,其实最主要的部分就是LUT查找表模块,以及后面的D触发器。其都是一些清零进位旁路等等控制信号逻辑。也就是说查找表是FPGA最根本的逻辑单元。Cyclone FPGA使用的是4输入LUT查找表。我们设计的逻辑电路最终都是通过EDA工具把所有可能的结果计算出来然后储存在查找表里面。每次根据输入信号查找对应的结果,然后输出就可以了。也就是说FPGA的工作更像是一个RAM,根据不同的输入信号(地址)输出相应的数据。

通过上面的结构图比较我们就可以清楚的看出来CPLD是由实实在在的组合电路组成的,而FPGA说到底就是一个巨大的查找表!也正是这个根本的差异造成了CPLD和FPGA各方面的不同。除了Altera以外,主要的CPLD和FPGA生产厂商还有Xilinx,Actel,LattICe以及Atmel等。各家公司的产品各有特点,在架构上会略有区别,但基本原理都是相同的。下面我们整理一下CPLD和FPGA的主要区别:

1) CPLD的逻辑阵列更适合可重复编程的EEPROM或Flash技术来实现。而FPGA显然是利用SRAM技术更合适。

2) 由于是EEPROM或者Flash工艺决定了CPLD是有一定的擦写次数限制的。而FPGA在实际使用中几乎可以说是无配置次数限制。

3) CPLD由于采用的是EEPROM或者Flash工艺所以配置掉电后不丢失,也就不需要外挂配置芯片。而FPGA采用的是SRAM工艺,配置在掉电后就没有了,因此需要一个外部配置芯片。

4) CPLD的安全性更高。由于配置芯片的存在,FPGA的保密性就会比CPLD略差。逻辑数据有可能被读取。(当然FPGA芯片会有一定的加密措施)

5) CPLD由于不需要上电重新配置,所以上电后可以马上工作。而FPGA上电后需要配置时间,逻辑量的大小配置方式的区别也会影响配置时间的长短。

6) 由于CPLD的连续式布线结构,决定了时序延时是均匀和固定的。而FPGA采用的分段式布线结构造成了延时不固定。

7) 由于工艺难度的差异,CPLD一般集成度较低,大多为几千门或几万门的芯片规模,做到几十万门已经很困难。而FPGA基于SRAM工艺,集成度更高,可以轻松做到几十万门甚至几百万门的芯片规模,最新的FPGA产品已经接近千万门的规模。

8) 同样由于结构的差异,CPLD更适合完成的是复杂的组合逻辑,如编、译码的工作。而FPGA更适合做复杂的时序逻辑。换句话说就是FPGA更适合触发器丰富的逻辑结构,CPLD适合于触发器有限但是乘积项丰富的逻辑结构。

9) 也是由于工艺的原因,一般CPLD会比FPGA的功耗高。

当然以上只是CPLD和FPGA通常意义上的区别,技术是在不断发展中的,这些差异也不能一概而论。随着技术的发展,CPLD和FPGA也在不断的更新当中。

Altera在Stratix III 系列FPGA以后的产品中调整了LE的结构,如下图:

从原来的一个4输入查找表加D触发器变成了两个6输入查找表加两个D触发器。再进一步细化查找表的结构图如下:

一个6输入查找表又可以细分为一个4输入查找表和两个3输入查找表。无论结构怎么变,只是出于对资源优化利用考虑的改变,基本的LUT查找表方式没有变。但是新出的MAX II系列和MAX V 系列CPLD则从根本上模糊了CPLD和FPGA的区别。通过阅读芯片手册我们可以发现,两个系列的CPLD虽然名字没有变,但是架构已经完全是与FPGA相同的系统架构了,最小单元也变成了LUT查找表,宏单元已经消失不见了。也许和CPLD还能搭上关系的就是两个系列把配置电路集成到了芯片当中,在实际使用中和原有的CPLD保持了相同的使用习惯。可以说两个系列的产品已经是披着CPLD外衣的FPGA了。

从技术的延续性上来看,可编程器件技术大致经历了PROM-PLA-PAL-GAL-EPLD-CPLD和FPGA的发展过程,CPLD和FPGA是两个不同的发展分支。生产厂商似乎在模糊CPLD和FPGA之间的区别。也许以后只剩下名字的区别,两者会统一成一类器件,或者又会出现更新的技术作为替代。无论技术如何演进,作为工程师而言,我们要做的就是去把握每种器件的原理,优缺点和适用场景,然后在实际的项目中正确选择,灵活使用。

1、是否需要同时学习FPGA和CPLD?

很多同学有疑问,是否需要同时学习FPGA和CPLD,阿东在此表示,完全没有必要,以为FPGA和CPLD的设计语言都是Verilog,至于CPLD和FPGA内部结构不一样,在编码阶段完全看不出来,软件会根据CPLD还是FPGA自动生成编程文件,所以学习的话建议值学习FPGA即可,FPGA学会了,基本就会用CPLD了。

2、现在的电路设计规模越来越大,动不动都是上万个或者几十万个甚至上百万个寄存器规模,这种规模下,CPLD根本不会考虑的,CPLD资源太少。

猜您喜欢

电子电路设计中,采样电阻和取样电阻是两个重要的概念,尽管的名称相似,但在实际应用中各自的功能和用途却大相径庭。本文将对这两个概念进行详细解析,帮助读者更好地理解...
2025-03-18 04:31:06

贴片电阻上的2E2标识代表其阻值为200欧姆。E在电子元件标识中代表10的几次方,类似于科学计数法。在这里,2E2可以理解为2 x 10²,也就是2乘以10的2...
2024-11-29 10:26:01

小型、舒适的石墨烯传感器可以通过测量脑电波的脑电图(EEG)和测量眼球运动的眼电图(EOC)等来获得各种身体信号,包括呼吸、发声、温度和手势。机器与人类之间的...
2023-11-11 09:07:00

据传感器专家网获悉,赛微电子11月29日晚间公告,公司拟以4999.5万元参与投资深圳市金石重投智能传感器产业私募股权基金合伙企业(有限合伙)(简称“深圳智能传...
2024-12-03 11:37:00

现代电子设备中,DCDC芯片(降压/升压转换芯片)是很重要的配件。通过高效的电压转换,为多种电子设备提供稳健、可靠的电源管理解决方案。其的应用不仅限于工业自动化...
2024-01-14 00:00:00

离心泵是应用于工业和农业的流体输送设备,其分类多样,主要可以根据不同的标准进行区分。根据结构形式,离心泵可分为单级泵和多级泵。单级泵适用于输送较小流量和较低扬程...
2019-06-22 00:00:00

贴片电阻是电子电路中常见的元件,其额定电压和最大电压是两个重要的参数,理解区别对于正确选择和使用电阻很重要。额定电压是指电阻在长期连续工作下,能够安全可靠承受的...
2024-11-29 10:25:51

电池,作为现代电子设备的心脏,其安全和寿命很重要。而电池管理系统 (BMS) 正是保障电池安全稳定运行的幕后英雄,其中温度控制是很重要的配件。电池在工作时会产生...
2024-09-29 00:00:00

电解电容是电子设备中常用的元件。的滤波能力很重要。我们需要了解影响电解电容滤波能力的因素。本文将对此进行分析。电容值大小电解电容的电容值直接影响滤波能力。电容值...
2025-03-23 03:30:34

锂离子电池因其高能量密度、长循环寿命和低自放电率,应用于多个领域。消费电子产品是最主要的应用领域,智能手机、平板电脑和笔记本电脑等设备几乎都依赖锂离子电池提供动...
2023-12-20 00:00:00