一、什么是FPGA

  • FPGA 的全称是 Field-Programmable Gate Array,中文名是现场可编程门阵列,是一种主要以数字电路为主的集成芯片。通俗来讲,就是能用代码编程,直接修改FPGA芯片中数字电路的逻辑功能。通过名字可以提现它的特点即:现场可编程、门阵列。(一种可以通过编程来定义硬件功能的芯片,它实现了“软硬件”的完美结合)

二、FPGA的特点

  • 现场可编程:这意味着它是在制造出来之后,由用户在现场(比如你的实验室或数据中心)根据需要来配置其功能的。这就像一块空白的“数字橡皮泥”,你可以把它捏成你想要的任何数字电路形态。
  • 门阵列:它本质上是一系列基本数字逻辑单元(如与门、或门、非门、触发器等)的集合,这些单元以阵列的方式排列在芯片上,并通过可编程的连线连接起来。

打个比方

  • CPU/GPU像是一家已经建好的、有固定流水线的工厂。你给它指令(软件),它按照设计好的流程一步步执行。流程是固定的,但指令可以千变万化。
  • FPGA像是一盒乐高积木。你可以根据自己想要的功能(比如造一辆车、一栋房子),用这些积木块搭建出专用的硬件结构。搭建完成后,它就是一个为特定任务量身定做的“硬件机器”。

三、核心结构

可配置逻辑块

  • 这是FPGA的基本逻辑单元,是构成各种复杂数字电路的“原子”。每个CLB通常包含查找表、触发器和多路复用器等。查找表是其核心,它本质上是一个小型的静态存储器,其存储的真值表决定了输入和输出的逻辑关系。通过给LUT加载不同的值,就可以实现不同的逻辑功能(如与、或、非等任何组合逻辑)。

可编程互连资源

  • 这些是遍布芯片的导线和开关网络,负责将成千上万个CLB连接起来,形成完整的电路。就像城市中的道路网,它决定了“逻辑积木”之间如何通信。

输入/输出块

  • 这是FPGA与外部世界(如内存、传感器、网络接口等)通信的接口。它们可以被配置成不同的电压标准和协议(如LVDS, LVCMOS,
    PCIe等)。

嵌入式硬核

  • 现代FPGA不仅仅是简单的逻辑单元阵列,还集成了许多专用的硬件模块,以提升性能和效率。常见的硬核包括:
    a.块存储器:片上的RAM块,用于高速数据缓存。
    b.DSP切片:专门用于执行乘法、加法等数学运算,对信号处理、AI计算至关重要。
    c.高速串行收发器:用于实现高速通信协议,如PCIe、以太网等。
    d.处理器核:有些FPGA甚至直接将ARM等硬核处理器集成进去,形成“片上系统”。

四、优点和缺点

优点

  • 并行性:这是FPGA最核心的优势。与CPU的顺序执行不同,FPGA的不同逻辑电路可以同时工作,极适合处理海量数据流。
  • 灵活性/可重构性:可以随时更改硬件功能,无需重新设计或制造芯片。今天可以是视频处理器,明天可以变成网络加速器。
  • 高性能与低延迟:由于是硬件直接执行,省去了操作系统和指令译码的开销,可以实现极高的吞吐量和纳秒级的延迟。
  • 能耗效率高:对于特定的计算任务,专用硬件电路通常比通用处理器(如CPU)能效更高。

缺点

  • 开发门槛高:需要数字电路设计和硬件描述语言的知识,开发流程比软件编程复杂。
  • 成本高:相比同等级的CPU/GPU,FPGA芯片本身和开发工具的成本都较高。
  • 功耗相对ASIC较高:由于存在大量可编程开关,其功耗和速度通常不如为单一任务定制的专用集成电路。

五、FPGA 与 CPU、GPU、ASIC 的比较

特性 FPGA CPU GPU ASIC
架构 可编程硬件逻辑单元阵列 冯·诺依曼,少量高性能核心 大规模并行计算核心阵列 为特定应用定制的固定电路
执行模式 真正的并行处理 顺序执行(依赖多线程) 单指令多数据(SIMD)高度并行 完全并行,效率最高
灵活性 (可重复编程) 极高(通过软件改变) (通过软件改变) (制造后无法改变)
性能/能效 高(对特定任务) 通用性好,但能效较低 计算密集型任务性能/能效高 最高
开发成本/周期 中等 极高(数百万美元,周期长)
典型应用 原型验证、嵌入式、实时处理、网络加速 通用计算、操作系统 图形渲染、AI训练、科学计算 智能手机主芯片、比特币矿机

六、FPGA 的主要应用领域

  • 通信与网络:5G基站、网络数据包处理、软件定义网络(SDN),利用其高吞吐量和可重构性。
  • 人工智能与加速计算:作为AI推理加速器,在云端和边缘端对神经网络进行低延迟、高效率的推断。
  • 工业与汽车:机器视觉、电机控制、自动驾驶的传感器融合与预处理。
  • 测试与测量:用于制造高性能的测试设备,如示波器、信号发生器,可以自定义测试逻辑。
  • 消费电子:早期用于高清电视、投影仪的视频处理。现在也用于高端VR/AR设备。
  • 航空航天与国防:用于雷达、声纳信号处理,以及需要高可靠性和抗辐射的场合。
  • ASIC原型验证:在流片制造之前,用FPGA来模拟和验证ASIC设计,是芯片设计流程中的关键一步。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐