大家好,又见面了,我是你们的朋友全栈君。
FPGA基于SRAM的架构,集成度高,以Slice为基本单元,有内嵌Memory、DSP等,支持丰富的IO标准,具有易挥发性,需要有上电加载过程。在实现复杂算法、队列调度、数据处理、高性能设计、大容量缓存设计等领域有广泛应用,如Xilinx Virtex系列以及Altera Stratix系列。
CPLD基于EEPROM工艺,集成度低,以MicroCell为基本单元。具有非挥发特性,可以重复写入。在粘合逻辑、地址译码、简单控制、FPGA加载等设计中有广泛应用,如Xilinx CoolRunner系列以及Altera MAX7000系列。
尽管FPGA与CPLD有许多共同点,但由于其结构上的差异,仍具有各自的特点: **1)CPLD更适合完成各种算法和组合逻辑,FPGA更适合完成时序逻辑。换句话说,FPGA更适合触发器丰富的结构,而CPLD更适合触发器有限而乘积项丰富的结构。 **2)CPLD的连续式布线结构决定了它的时序延迟是均匀和可预测的,而FPGA的分段式布线结构决定其延迟的不可预测性。 **3)在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程的。 **4)FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。 **5)CPLD比FPGA使用起来更方便。CPLD的编程采用EEPROM或FASTFLASH技术,无需外部存储芯片,使用简单。而FPGA的编程信息需要存放在外部存储器上,使用方法复杂。 **6)CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互连。而CPLD是逻辑块级编程,并且其逻辑块之间的互连是集中式的。 **7)在编程方式上,CPLD主要是基于EEPROM或FLASH存储器编程的,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编辑器上编程何在系统编程两类。FPGA大部分是基于SRAM编程的,编程信息在系统断电时丢失,每次上电时需要从期间外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可以工作中快速编程,从而实现板级和系统级的动态配置。 **8)CPLD保密性好,FPGA保密性差。 9)一般情况,CPLD的功耗要比FPGA哒,其集成度越高越明显 因此,在大中型数字系统开发时,FPGA比CPLD更具有明显的优势。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/136240.html原文链接:https://javaforall.cn