集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1229|回复: 2

FPGA的用途及与CPLD的区别

[复制链接]
zhangyukun 发表于 2017-12-22 09:08:25 | 显示全部楼层 |阅读模式
FPGA/CPLD能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA/CPLD来实现。
  FPGA/CPLD如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA/CPLD的在线修改能力,随时修改设计而不必改动硬件电路。
  使用FPGA/CPLD来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。
  FPGA/CPLD还可以做数字IC设计的前端验证,用这种方式可以很大程度上降低IC设计的成本。
  FPGA/CPLD的这些优点使得FPGA/CPLD技术在90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言(HDL)的进步。
  FPGA/CPLD的区别是:
  1)各个厂家叫法不尽相同:
  PLD(Programmable Logic Device)是可编程逻辑器件的总称,早期多EEPROM工艺,基于乘积项(Product Term)结构。
  FPGA (Field Programmable Gate Arry)是指现场可编程门阵列,最早由Xilinx公司发明。多为SRAM 工艺,基于查找表(Look Up Table)结构,要外挂配置用的EPROM。
  Xilinx把SRAM工艺,要外挂配置用的EPROM的PLD叫FPGA,把Flash工艺(类似EEPROM工艺),乘积项结构的PLD叫CPLD;
  Altera把自己的PLD产品:MAX系列(EEPROM工艺),FLEX/ACEX/APEX系列(SRAM工艺)都叫作CPLD,即复杂PLD(Complex PLD)。
  由于FLEX/ACEX/APEX系列也是SRAM工艺,要外挂配置用的EPROM,用法和Xilinx的FPGA一样,所以很多人把Altera的FELX/ACEX/APEX系列产品也叫做FPGA.
  2)结构上的主要区别
  逻辑块的粒度不同
  逻辑块指PLD 芯片中按结构划分的功能模块,它有相对独立的组合逻辑阵列,块间靠互连系统联系.FPGA 中的CLB 是逻辑块,其特点是粒度小,输入变量为4~8 ,输出为1~2 ,因而只是一个逻辑单元,每块芯片中有几十到近千个这样的单元. CPLD中逻辑块粒度较大,通常有数十个输入端和一、二十个输出端,每块芯片只分成几块. 有些集成度较低的(如ATV2500) 则干脆不分块. 显然,如此粗大的分块结构使用时不如FPGA 灵活.
  逻辑之间的互连结构不同
  CPLD 的逻辑块互连是集总式的,其特点是等延时,任意两块之间的延时是相等的,这种结构给设计者带来很大方便; FPGA 的互连则是分布式的,其延时与系统的布局有关,
  3)应用范围也有所不同
  逻辑系统通常可分两大类型:
  1、逻辑密集型: 如高速缓存控制、DRAM 控制和DMA 控制等,它们仅需要很少的数据处理能力,但逻辑关系一般都复杂
  2、数据密集型: 数据密集型需要大量数据处理能力,其应用多见于通讯领域.
  为了选择合适的PLD 芯片,应从速度与性能、逻辑利用率、使用方便性、编程技术等方面进行考查。
  速度与性能:
  数据密集型系统,比如,通讯中对信号进行处理的二维卷积器. 在实现这一算法的逻辑系统中,每个单元所需要的输入端较少,但需要很多这样的逻辑单元. 这些要求与FPGA 的结构相吻合. 因为FPGA 的粒度小,其输入到输出的传输延迟时间很短,因而能获得高的单元速度.而控制密集型系统通常是输入密集型的,逻辑复杂,CLB 的输入端往往不够用,需把多个CLB 串行级联使用,同时CLB 之间的连接有可能通过多级通用PI 或长线,导致速度急剧下降. 因而实际的传输延迟时间要大CPLD. 比如,实现一个DRAM 控制器,它由四个功能块组成:刷新状态机、刷新地址计数器、刷新定时器和地址选择开关,需要的输入端有几十个,显然用CPLD 更合适.
  逻辑利用率:
  逻辑利用率是指器件中资源被利用的程度. CPLD 逻辑寄存器少,FPGA 逻辑弱而寄存器多,这正好与控制密集型系统与数据密集型系统相对应. 比如, 规模同为6000PLD 门的is2pLSI1032 有192 个寄存器;而XC4005E 有616 个寄存器. 因此从逻辑利用率角度,对于组合电路较复杂的设计,宜采用颗粒较粗的CPLD ,触发器较多的设计,宜采用用细颗粒的FPGA.
  (3)  使用方便性: 使用方便首先要考虑性能的可预测性,在这点上CPLD 优于FPGA. 对于CPLD ,通常只要输入、输出端口数,内部门和触发器数目不超过芯片的资源并有一定裕量,总是可以实现的. 而FPGA ,则很难预测,因为完成设计所需的CLB 逻辑级数是无法事实确定的,只有靠多次试验才能得到满意的结果.
  (4)  编程技术: FPGA 编程信息存放在外部存储器,要附加存储器芯片,其保密性差,断电后数据易丢失. CPLD 采用最佳的E2CMOS 技术。
  尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:
  ①CPLD更适合完成各种算法和组合逻辑,FP GA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。
  ②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。
  ③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FP GA可在逻辑门下编程,而CPLD是在逻辑块下编程。
  ④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。
  ⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。
  ⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。
  ⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。
  ⑧CPLD保密性好,FPGA保密性差。
  ⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。
芙蓉王 发表于 2017-12-22 09:53:13 | 显示全部楼层
FPGA的用途及与CPLD的区别
zxopenljx 发表于 5 天前 | 显示全部楼层
FPGA的用途及与CPLD的区别
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-2-24 20:41 , Processed in 0.072607 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表