现场可编程门阵列 (FPGA) 和微控制器单元 (MCU) 是两种通常用于嵌入式系统和数字设计的集成电路 (IC),常拿来进行对比。FPGA 和微控制器均可视为可以集成到设备和大型系统中的“小型电脑”。
作为处理器,FPGA 和微控制器的主要区别在于可编程性和处理能力。FPGA 功能更强大、用途更广泛,但价格也更昂贵。微控制器的定制化程度较低,但成本也较低。在许多应用中,微控制器都具有卓越的性能和成本效益。然而,对于某些要求苛刻或正在开发的应用,如需要并行处理的应用,FPGA 是必不可少的。
与微控制器不同,FPGA 在硬件层面提供了可重新编程性。其独特的设计允许用户根据任务配置和重新配置芯片架构。FPGA 设计还能同时处理并行输入,而微控制器一次只能读取一行代码。FPGA 可以通过编程来执行微控制器的功能,但微控制器无法通过重新编程来执行 FPGA 的功能。
FPGA 由制造商 Xilinx 于 1985 年首次推出,因其多功能性和强大的处理能力而备受推崇。因此,它们成为许多高性能计算 (HPC)、数字信号处理 (DSP) 和原型开发应用的首选。
与传统的特定应用集成电路 (ASIC) 不同,FPGA 的设计目的是在初始制造流程完成后"现场"进行配置(和重新配置)。虽然定制是 FPGA 的最大价值所在,但应该注意的是,FPGA 不仅允许可编程,而且需要可编程。与 ASIC 不同,FPGA 不是 "开箱即用 "的解决方案,在使用前必须使用硬件描述语言 (HDL),如 verilog 或 VHDL 进行配置。FPGA 编程需要专业知识,这会增加成本并延误部署。虽然有些 FPGA 确实提供非易失性存储器,可以在关机时保留编程指令,但通常 FPGA 必须在启动时进行配置。
尽管面临这些挑战,但 FPGA 在需要高性能、低延迟和实时灵活性的应用中仍然非常有用。FPGA 特别适合有以下要求的应用:
为了实现可重构性,FPGA 由一系列可编程逻辑块组成,这些逻辑块通过可编程路由结构相互连接。典型 FPGA 的主要组件如下:
FPGA 本质上用途广泛,在各种行业和应用中很常见:
微控制器是一种紧凑型、现成的专用集成电路,包含一个(或多个)处理器核心、内存 (RAM) 和可擦除可编程只读存储器 (EPROM),用于存储在微控制器上运行的定制程序。微控制器被称为"片上系统 (SoC)"解决方案,本质上是集成在单个硬件中的小型电脑,既可独立使用,也可在更大的嵌入式系统中使用。
消费级微控制器(如 Arduino Starter Kit 或 Microchip Technology PIC)可使用汇编语言或普通编程语言(C、C++)进行配置,因其成本效益高、易于使用而受到业余爱好者和教育工作者的青睐。微控制器还能处理更复杂、更关键的任务,在工业应用中很常见。然而,处理能力和内存资源的减少会限制微控制器在要求更高的应用中的功效。
尽管存在局限性,但微控制器仍有许多优点,包括以下方面:
当可重新编程性不是首要考虑的问题时,独立式微控制器提供了一种小巧、功能强大的替代方案。以下是微控制器的主要组件:
与 FPGA 不同,体积小、价格低、不易挥发的微控制器在现代电子产品中无处不在,经常被用于执行特定任务,包括以下任务:
在比较 FPGA 和微控制器时,必须考虑到一些关键的差异,包括硬件架构、处理能力、功耗和开发人员的要求。
无论您是在寻找功能强大的 FPGA 处理器,还是在寻找结构紧凑、经济高效的微控制器,请考虑 IBM 如何通过尖端的基础架构解决方案帮助您的业务更上一层楼。全新 IBM® FlashSystem 5300 可提供更高的性能和网络弹性。全新 IBM Storage Assurance 可简化存储所有权,并帮助您应对 IT 生命周期挑战。