现场可编程门阵列 (FPGA) 与微控制器:有什么区别?

IT 男推出首台加密货币矿机

现场可编程门阵列 (FPGA) 和微控制器单元 (MCU) 是两种通常用于嵌入式系统和数字设计的集成电路 (IC),常拿来进行对比。FPGA 和微控制器均可视为可以集成到设备和大型系统中的“小型电脑”。

作为处理器,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 的并行处理能力可使要求苛刻的应用受益匪浅。FPGA 可显著提高信号处理、密码学机器学习算法等计算密集型任务的性能。
  • 定制:FPGA 是一种灵活的硬件解决方案,可轻松进行优化,以满足特定项目的要求。 
  • 使用寿命长:由于 FPGA 可以更新和重新配置,以满足不断变化的项目需求和技术标准,因此基于 FPGA 的设计可以从更长的硬件寿命中获益。 

FPGA 组件

为了实现可重构性,FPGA 由一系列可编程逻辑块组成,这些逻辑块通过可编程路由结构相互连接。典型 FPGA 的主要组件如下:

  • 可配置逻辑块 (CLB):CLB 提供计算功能,可能包含少量原始逻辑元件,如逻辑门、小型查找表 (LUT)、多路复用器和用于数据存储的触发器。 
  • 可编程互连:这些连线由可编程开关连接的线段组成,为各种 FPGA 资源之间提供路由路径,允许不同的配置和创建自定义数字电路。 
  • I/O 块 (IOB): :FPGA 与其他外部设备之间的接口由输入输出 (I/O) 块实现,这些块允许 FPGA 从外设接收数据并控制外设 

FPGA 用例

FPGA 本质上用途广泛,在各种行业和应用中很常见:

  • 航空航天和国防:FPGA 为数据采集提供高速并行处理功能,是雷达系统、图像处理和安全通信的首选。 
  • 工业控制系统 (ICS):用于监控基础设施(如电网、炼油厂和水处理厂)的工业控制系统使用的 FPGA 可以轻松优化,以满足不同行业的独特需求。在这些重要行业中,FPGA 可用于实现各种自动化和基于硬件的加密功能,从而实现高效的网络安全。
  • ASIC 开发:FPGA 通常用于新 ASIC 芯片的原型开发。 
  • 汽车:先进的信号处理技术也使 FPGA 非常适合汽车应用,包括高级驾驶辅助系统 (ADAS)、传感器融合和 GPS。
  • 数据中心:FPGA 通过优化高带宽、低延迟的服务器、网络和存储基础设施,为数据中心增值。

FPGA 功能

  • 处理核心:可配置逻辑块
  • 存储器:外部存储器接口 
  • 外设:可配置 I/O 块
  • 编程:硬件描述语言 (VHDL, Verilog) 
  • 可重构性:高度可重构、可重编程逻辑

什么是微控制器?

微控制器是一种紧凑型、现成的专用集成电路,包含一个(或多个)处理器核心、内存 (RAM) 和可擦除可编程只读存储器 (EPROM),用于存储在微控制器上运行的定制程序。微控制器被称为"片上系统 (SoC)"解决方案,本质上是集成在单个硬件中的小型电脑,既可独立使用,也可在更大的嵌入式系统中使用。

消费级微控制器(如 Arduino Starter Kit 或 Microchip Technology PIC)可使用汇编语言或普通编程语言(C、C++)进行配置,因其成本效益高、易于使用而受到业余爱好者和教育工作者的青睐。微控制器还能处理更复杂、更关键的任务,在工业应用中很常见。然而,处理能力和内存资源的减少会限制微控制器在要求更高的应用中的功效。

微控制器的优势

尽管存在局限性,但微控制器仍有许多优点,包括以下方面:

  • 设计紧凑:微控制器将所有必要的组件集成到一个小型单芯片上,占地面积小,对于注重体积和重量的应用非常有价值。
  • 节能: 微控制器专为低功耗运行而设计,非常适合电池供电设备和其他对功耗有要求的应用。
  • 成本效益高:微控制器提供完整的 SoC 解决方案,减少了对额外外设和组件的需求。低成本的通用微控制器可大大降低项目的总体开支。
  • 灵活性:虽然不像 FPGA 那样用途广泛,但可编程用于各种不同的应用。微控制器虽然不能在硬件层面重新编程,但却可以在软件层面轻松地重新配置、更新和优化。

微控制器组件

当可重新编程性不是首要考虑的问题时,独立式微控制器提供了一种小巧、功能强大的替代方案。以下是微控制器的主要组件:

  • 中央处理器 (CPU): CPU 俗称"大脑",是负责执行指令和控制操作的核心部件。
  • 内存:微控制器包含易失性存储器 (RAM) 和非易失性存储器(ROM、闪存),前者存储临时数据,如果系统断电,这些数据可能会丢失;后者存储微控制器的编程代码。
  • 外设:微控制器可能包含各种外设组件,如定时器、计数器、模数转换器 (ADC) 和通信协议(UART、SPI、I2C)等输入/输出 (I/O) 接口。

微控制器用例

与 FPGA 不同,体积小、价格低、不易挥发的微控制器在现代电子产品中无处不在,经常被用于执行特定任务,包括以下任务:

  • 汽车系统: 微控制器用于发动机控制、安全气囊展开和车载信息娱乐系统。
  • 消费电子产品:微控制器对于智能手机、智能电视和其他家用电器,尤其是集成到物联网 (IoT) 的设备至关重要。
  • 工业自动化:微控制器非常适合工业应用,如控制机械、监控系统和流程自动化。
  • 医疗设备:微控制器通常用于起搏器、血糖监测器和诊断工具等救生设备中。

微控制器功能

  • 处理核心:固定 CPU
  • 内存: 集成 RAM 和 ROM/闪存 
  • 外设: 内置 I/O 接口,用于
  • 编程: 软件(C, 汇编)
  • 可重构性:有限,固件更新

FPGA 和微控制器之间的主要区别

在比较 FPGA 和微控制器时,必须考虑到一些关键的差异,包括硬件架构、处理能力、功耗和开发人员的要求。

  • 硬件结构
    • FPGA:高度可配置的可编程逻辑块和互连器件,可用于重新编程和定制数字电路。
    • 微控制器:固定架构,将预定组件(CPU、内存、外设)集成到单个芯片中。
  • 处理功能
    • FPGA:先进的并行处理功能可同时进行多个操作。
    • 微控制器:微控制器专为顺序处理而设计,一次只能执行一条指令。
  • 功耗
    • FPGA:功耗通常高于微控制器。
    • 微控制器:针对低功耗进行了优化,适合电池供电应用。
  • 编程
    • FPGA:需要硬件描述语言的专业知识来配置和调试。
    • 微控制器:可使用软件开发语言编程,包括 Javascript、Python、C、C++ 和汇编语言。
  • 成本
    • FPGA:功率更大,但需要高级技能,FPGA 硬件通常更昂贵,还需要更高的功耗和专业编程人才。
    • 微控制器:一般而言,这是一种更具成本效益的解决方案,可现成提供,功耗较低,并支持更易于使用的编程语言。
  • 多功能性
    • FPGA:FPGA 比微控制器灵活得多,可以在硬件层面进行定制。
    • 微控制器:微控制器虽然适用于广泛的应用,但与 FPGA 相比,只能提供表面的定制功能。

深入了解 IBM 基础架构解决方案

无论您是在寻找功能强大的 FPGA 处理器,还是在寻找结构紧凑、经济高效的微控制器,请考虑 IBM 如何通过尖端的基础架构解决方案帮助您的业务更上一层楼。全新 IBM® FlashSystem 5300 可提供更高的性能和网络弹性。全新 IBM Storage Assurance 可简化存储所有权,并帮助您应对 IT 生命周期挑战。

 

作者

Josh Schneider

Staff Writer

IBM Think