|
FPGA基于SRAM的架构,集成度高,以LE(包括查找表、触发器及其他)为基本单元,有内嵌Memory、DSP等,支持IO标准丰富。具有易挥发性,需要有上电加载过程。在实现复杂算法、队列调度、数据处理、高性能设计、大容量缓存设计等领域中有广泛应用,如Altera Stratix系列。 ( F$ W" L( C& C! s; z9 O( B
加载等设计中有广泛应用,如Altera MAX3000A系列。
5 M) m* K1 i2 K# A详细比较:尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点
8 g" C: T: ?4 w①CPLD更适合完成各种算法和组合逻辑,FP GA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。
& }& c4 [5 m% ]; ~! l6 y6 ^②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。
+ ~5 u1 K, ~' D; J ? Q
/ `& ?; w6 d5 k③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FP GA可在逻辑门下编程,而CPLD是在逻辑块下编程。8 B( V# e4 S( \- l6 z& L$ A
% y; l3 d) @; l$ M④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。
$ U- L0 A1 v) V- n3 A' V8 K, {2 _) u" V9 _7 s, w- }8 V; m, |$ z; G) N
⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。$ q) T5 l4 M' @; I
8 d1 N! j4 g. J( z) g⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。
9 ^+ x4 D: N+ U% i7 t4 p y
- K0 a/ R$ x, n: N& x⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。- i. T0 Y+ u( d: p$ q7 o
- a N# ^1 F5 v7 a8 A- U
⑧CPLD保密性好,FPGA保密性差。
: H1 @' h5 \& m. U$ W! U0 V8 Y4 I6 Q9 |! ~5 D/ y/ |- Q
⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。# A* v8 _ }" M" ?1 L
|
|