FPGA 的典型应用场景

FPGA 最典型的应用是一大类问题:高速数据流 + 大量并行计算 + 确定性低延迟 + 接口时序复杂。

图像处理恰好非常符合这四个特征,所以 FPGA 在机器视觉、医疗成像、工业检测、相机、雷达等领域特别常见。

FPGA 的典型应用场景

FPGA 到底擅长什么?

CPU、GPU 和 FPGA 可以先做一个直观比较。

CPU 更像一个非常聪明的“通用工人”,擅长:

复杂逻辑
操作系统
业务程序
协议栈
数据库
文件系统
GUI

GPU 更像几千个同时工作的“计算工人”,擅长:

矩阵运算
深度学习
3D渲染
科学计算
复杂图像算法

FPGA 则更像:

可以自己设计生产流水线的数字工厂。

例如:

ADC
 ↓
校正
 ↓
滤波
 ↓
检测
 ↓
压缩
 ↓
高速接口

一旦流水线建立起来,可以让这些环节同时工作

Pixel 1 → Stage 4
Pixel 2 → Stage 3
Pixel 3 → Stage 2
Pixel 4 → Stage 1

流水线填满以后甚至可以做到:

每一个时钟周期
处理一个或多个数据

因此 FPGA 的优势不是简单的“主频高”,而是:

空间并行 + 流水线 + 硬件级确定性。


FPGA 最典型的应用领域

大体可以归纳为以下几类:

应用领域FPGA典型工作适合程度
图像/视频处理ISP、滤波、校正、拼接、缩放、编码★★★★★
高速数据采集ADC、DAC、传感器阵列★★★★★
通信5G、基带、调制解调、信道编码★★★★★
雷达/声纳FFT、波束形成、脉冲压缩★★★★★
工业控制多轴运动控制、高速I/O★★★★☆
网络设备数据包处理、交换、时间戳★★★★★
测试测量示波器、频谱仪、逻辑分析仪★★★★★
医疗设备CT、X光、超声、MRI数据链★★★★★
航空航天信号处理、接口、控制★★★★★
AI推理CNN/Transformer等专用加速★★★★☆
汽车电子ADAS、摄像头、雷达接口★★★★☆
高频交易超低延迟网络处理★★★★★

其中真正可以称得上 FPGA “传统三大主战场”的,通常是:

高速通信、高速数据采集和数字信号/图像处理。


1. 图像和视频处理

这是最容易让人理解 FPGA 优势的领域。

例如一台工业相机:

CMOS Sensor
     ↓
MIPI / LVDS
     ↓
FPGA
     ↓
黑电平校正
     ↓
坏点校正
     ↓
Demosaic
     ↓
白平衡
     ↓
滤波
     ↓
缩放
     ↓
Camera Link / GigE / PCIe

假设一幅图像有:

4096 × 4096

约 1678 万像素。

60 fps 时,每秒就接近:

10亿 pixel/s

这种连续数据流非常适合 FPGA。


2. 高速数据采集

实际上,这甚至比图像处理更“FPGA 原生”。

典型系统:

Sensor
   ↓
Analog Front End
   ↓
ADC
   ↓
FPGA

FPGA负责:

采样时序
数据对齐
多通道同步
数字滤波
缓存
数据打包
高速传输

例如:

16通道ADC
每通道 100 MSPS
14 bit

原始数据率达到:

16 × 100M × 14
≈ 22.4 Gbit/s

普通 MCU 基本无法直接处理。

FPGA却可以在芯片内部:

16路同时工作

这正是FPGA的典型优势。


3. 无线通信

通信其实是 FPGA 非常传统、非常庞大的应用领域。

例如:

ADC
 ↓
DDC
 ↓
FIR
 ↓
FFT
 ↓
OFDM
 ↓
信道估计
 ↓
解调
 ↓
LDPC
 ↓
数据输出

这些算法都有很强的:

流水线
并行
固定数据流

特征。

所以:

  • 4G/5G基站;
  • 软件无线电;
  • 卫星通信;
  • 微波通信;
  • 军用通信;

大量采用 FPGA。


4. 雷达

雷达甚至可以算 FPGA 的“经典教材级应用”。

例如:

ADC
 ↓
数字下变频
 ↓
滤波
 ↓
FFT
 ↓
脉冲压缩
 ↓
CFAR
 ↓
波束形成
 ↓
目标数据

FFT、FIR、矩阵乘加、并行通道处理都非常适合 FPGA。

现在很多雷达系统采用:

FPGA + DSP

或者:

FPGA + ARM

或者进一步采用:

FPGA + GPU

5. 网络设备

FPGA在高速网络中的优势非常明显。

比如:

100G Ethernet
      ↓
FPGA
      ↓
Packet Parser
      ↓
Filter
      ↓
Classification
      ↓
Forwarding

数据包经过 FPGA 时不需要:

操作系统
中断
线程调度

而是:

数据一进来 → 硬件马上处理

因此可以获得非常低而且稳定的延迟。

这也是 FPGA 在:

交换机
SmartNIC
网络安全
高速交易

中广泛应用的重要原因。


6. 超低延迟金融交易

这是一个很有意思的 FPGA 应用。

普通服务器:

网卡
 ↓
操作系统
 ↓
驱动
 ↓
网络协议栈
 ↓
应用程序
 ↓
交易算法

可能涉及微秒级甚至更高延迟。

FPGA则可以:

Ethernet
 ↓
FPGA解析行情
 ↓
硬件策略
 ↓
生成交易指令
 ↓
Ethernet

整个过程可能做到极低延迟。

所以在高频交易系统里,FPGA的意义不是:

算得比GPU快多少。

而是:

每次都能在极低且稳定的延迟内完成。


为什么图像处理尤其适合FPGA?

因为图像天然就是一种“流”。

摄像机不断产生:

Pixel 0
Pixel 1
Pixel 2
Pixel 3
...

很多算法又是:

每个Pixel执行差不多的运算

例如:

暗场校正

pixel - dark

增益校正

pixel × gain

3×3滤波

9个像素
↓
乘加
↓
1个像素

边缘检测

卷积
↓
阈值

这些都可以做成硬件流水线。

CPU可能是:

for y
    for x
        process(pixel)

FPGA的思维不是循环:

pixel
 ↓
减法器
 ↓
乘法器
 ↓
滤波器
 ↓
输出

只要数据不停:

100 MHz

理论上就可以做到:

每10 ns接受一个像素

所以图像处理确实与 FPGA 的硬件结构高度匹配。


但“复杂图像理解”反而不一定适合 FPGA

这里需要区分:

图像处理

和:

图像理解

前者例如:

滤波
校正
坏点处理
缩放
拼接
卷积
颜色变换

非常适合FPGA。

后者例如:

目标识别
SAM分割
视觉Transformer
大规模CNN
复杂AI模型

通常:

GPU / NPU

更合适。

所以现代视觉系统经常采用:

Camera
   ↓
FPGA
   ↓
图像预处理
   ↓
GPU / NPU
   ↓
AI识别
   ↓
CPU
   ↓
业务逻辑

这是非常典型的异构计算架构。


一个非常实用的判断标准

以后遇到某个任务,可以问四个问题:

数据是不是连续高速流入?

有没有大量相同计算可以并行执行?

是否要求非常确定的微秒/纳秒级响应?

是否需要直接控制高速硬件接口?

如果四个问题里有三个回答“是”,那么:

FPGA通常就值得认真考虑。

反过来,如果任务主要是:

数据库
GUI
Web
复杂业务逻辑
动态算法
大语言模型
文件处理

FPGA通常就不是首选。

因此,FPGA 的定位其实是“高速、并行、确定性的数据流处理平台”

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Are you human? Please solve:Captcha