|
发表于 2007-9-12 16:26:04
|
显示全部楼层
4)Q:CPLD和FPGA有什么区别?
A:最大的区别,就是CPLD进行一次下载编程(写入操作)后,其逻辑门组合方式就保存下来,不管什么时候断电,通电,他都可以执行上一次的逻辑功能。FPGA不能保存上次逻辑功能,断电后,FPGA就失去所有配置。因此FPGA通常需要带一块配置芯片,在通电后,对FPGA进行重新配置,恢复功能(重配置需要时间,CPLD通电后,马上就可以执行相应逻辑)。
CPLD的擦写次数非常有限,经过100~1000次左右的反复擦写就报废了。而FPGA可以反复擦写无限次(当然,实际上是有限的。但是在通常使用中,就算你反复擦写,大概你挂了,它还没有挂)。FPG的配置芯片擦写次数有限,而且常常只能烧写一次(OTP)。
CPLD的容量一般比较小,FPGA容量很大。
综合上面所有的情况,结论是这样的,你在学习阶段,或者开发阶段,最好使用FPGA,因为可以反复擦写,不对马上重新烧写。只要不断电,你烧写下去的逻辑功能是一直可用的。定型后可以使用CPLD,可以免去FPGA。但是当你的配置容量非常大的时候,CPLD装不下,你又必须采用FPGA了,这个时候,在最后成品上需要加配置芯片(当然也用单片机模拟配置芯片,具体这个地方不介绍)。
市面上尤其是学校里面可以看到Xilinx公司或者Altera公司各种不同的开发板,其实只有两个大类,CPLD开发板和FPGA开发板。尽管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可以实现的功能比较单一,适合纯组合逻辑。因此在进行IC设计的原型验证或者设计中包含了复杂的协议处理,或者设计中使用大量的时序元件时一般选用FPGA器件。也就是说FPGA可以适应当前技术发展中高密度集成的各种设计。所以选择开发板尽量选择最新器件以及主流器件,行业发展太快,几年以前的芯片也就在学校可以找到而一般公司是不会使用也不会采购的。 |
|