FPGA和CPLD是两种著名的数字逻辑芯片。当涉及到内部架构时,这两种芯片显然是不同的。FPGA:现场可编程门阵列,是一种可编程逻辑芯片。它是一个伟大的芯片,因为它可以被编程去做几乎任何一种数字功能。FPGA的架构允许芯片具有很高的逻辑容量。它被用于设计要求很高的门数和它们的延迟是相当不可预测的,因为它的结构。FPGA被认为是“细粒”,因为它包含了很多可以达到10万的微小逻辑块。这是人组合逻辑和记忆单元。它是为更复杂的应用而设计的。CPLD:采用EEPROM设计复杂的可编程逻辑器件。它更适合于小型门数设计,由于它的结构不太复杂,延迟是可以预测的,并且是非易失性的。CPLD通常用于简单的逻辑应用程序。它只包含几个逻辑模块,但更大——达到100个。话虽如此,CPLDs被认为是“粗粒”的设备。CPLDs由于其简单的“粗粮”架构,提供了一个更快的输出时间。也许,由于它更简单的架构,CPLD很便宜。虽然每门的价格比较便宜,但是FPGA的价格更贵。
电路
FPGA包含多达100,000个小逻辑块,而CPLD仅包含几个可以达到几千个的逻辑块。在结构方面,FPGA被认为是“细粒”设备,而CPLDs是“粗粒”。对于更复杂的应用程序来说,FPGA是非常好的,而CPLD对于更简单的应用程序更好。FPGA由微小的逻辑块组成,而CPLD则由更大的块构成。FPGA是基于RAM的数字逻辑芯片,CPLD是基于EEPROM的。通常情况下,FPGA比较贵,而CPLD更便宜。CPLDs中的延迟比FPGA更容易预测。CPLD可以自行引导,而大多数FPGA需要从非易失性存储中获取配置比特流,因为它们是基于SRAM的。这影响了系统的安全性。CPLD只提供了可以做各种逻辑算法的门,或者说是逻辑单元。此外,FPGA还嵌入了许多硬块,如BlockRAM、DSP、TEMAC、PCIe、MGT、微处理器等,使FPGA的单片机能够构建集成的全功能系统。
电路板
FPGA提供了更高的复杂性,它的闲置功耗也相当低,尽管在最新的家庭中这一比例急剧上升。由于配置位流必须在每次重新应用时重新加载,所以设计安全性是一个问题,但是动态重新配置的优点和机会,即使是在最终用户系统中,也是一个重要的优势。与CPLDs相比,FPGA提供了更多的逻辑灵活性和更复杂的系统特性:时钟管理、on -chip RAM、DSP函数、(multipliers),甚至是芯片上的微处理器和多千兆收发器。
电路
FPGA内嵌专用硬核是相对底层嵌入的软核而言的, FPGA处理能力强大的硬核(Hard Core),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。例如:为了提高FPGA的乘法速度,主流的FPGA 中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的FPGA内部都集成了串并收发器(SERDES),可以达到数十Gbps的收发速度。FPGA还包含专门的硬核,提供各种组件的高效实现。FPGA还可以包含以太网mac、硬处理器核、PCI express接口和其他专用模块。多吉比特的传输技术也是高端FPGA的一个共同特点,它允许每对针的传输速率高达50兆位/秒。FPGA通常不包含任何非易失性内存,因此需要外部闪存来加载配置。在FPGA中,可以使用由电池支持的密钥来改进设计安全性。高端FPGA产品不仅集成了Power PC系列CPU内核、MCU内核、ARM内核、还内嵌了DSP Core模块,其相应的系统级设计工具是EDK和Platform Studio,并依此提出了片上系统(System on Chip)的概念。通过PowerPC、Microblaze、Picoblaze等平台,能够开发标准的DSP处理器及其相关应用,达到SOC的开发目的。
电路板