一、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,就可容易地得到一个模型机,从该模型机,设计者就很直观地测试其逻辑功能及性能指标.
FPGAFPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。内部基本结构为门阵列构成静态存储器(SRAM)。该SRAM可构成函数发生器,即查找表(LUT),通过查找表可实现逻辑函数功能)。
FPGA逻辑单元
FPGA的基本结构
CPLDCPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,是基于乘积项的可编程器件。
内部基本结构为“与或阵列”。因为任意一个组合逻辑都可以用“与—或”表达式来描述,所以该“与—或阵列”结构有利于实现大量的组合逻辑功能。
简单的与或阵列
CPLD逻辑框图
CPLD和FPGA 的主要区别
1、逻辑结构不同
CPLD:类似 PAL、GAL,拥有丰富的组合逻辑电路资源。
FPGA:类似门阵列,拥有丰富的触发器、存储器资源;CPU、DSP等IP核。
2、集成度不同
CPLD:500 ~ 50000 门
3、互连结构不同
CPLD:等长度的互连线资源,其特点是延时相等。
FPGA:长度不等的多段分布式互连,其特点是布线灵活,但延时与系统布局、 布线有关。
5、粒度大小不同
FPGA为细粒度结构,CPLD为粗粒度结构。
FPGA内部有丰富连线资源,CLB分块较小,芯片的利用率较高。CPLD的宏单元的与或阵列较大,通常不能完全被应用,且宏单元之间主要通过高速数据通道连接,其容量有限,限制了器件的灵活布线,因此CPLD利用率较FPGA器件低。
6、应用范围的不同
数字逻辑系统分为两大类:
(1)控制密集型(逻辑密集型),对数据处理能力要求低,但逻辑关系复杂,输入输出较多,适合用CPLD实现。
(2)数据密集型,需要大量的数据处理能力,但逻辑相对简单,对输入要求少,适合FPGA实现。
7、配置不同
CPLD:采用EPROM,E2PROM工艺,直接写入,保密性好。
FPGA:采用SRAM工艺,故需外加ROM芯片,用于存储配置信息。其保密性较差。可实现动态重构。高端FPGA具备加密功能