FPGA 和单片机(MCU)有什么区别?
更新时间:2026-09-21。问题驱动短答页。FPGA 架构见 FPGA 是什么,FPGA vs CPU/GPU 对比见 对比篇,入门流程见 为什么用 FPGA。
一句话回答
单片机(MCU)内部是一颗 CPU,你写 C 程序让它一条条「顺序」取指执行;FPGA 内部是海量可配置的查找表、触发器和布线,你用 HDL「搭一块专用电路」,各模块上电后天然「并行」工作。 一句话:MCU 是用软件实现功能,FPGA 是用硬件实现功能。
核心对照
| 维度 | 单片机 MCU | FPGA |
|---|---|---|
| 本质 | 固定 CPU 核 + 外设,跑软件 | 可配置逻辑阵列,生成专用电路 |
| 执行模型 | 顺序取指(中断可抢占) | 电路级真并行,各 always 块并发 |
| 改功能 | 改代码、重新烧固件即可 | 改 HDL→综合→布局布线→重新生成比特流 |
| 时序确定性 | 受中断/缓存/流水线影响,有抖动 | 寄存器级确定,可达亚微秒/纳秒 |
| 开发语言 | C/C++、RTOS | Verilog/VHDL/HLS、约束、仿真 |
| 响应速度 | 取决于主频与中断延迟(μs 级) | 硬件直接响应,可低至 ns |
| 单价/功耗 | 低(几毛~几十元)、低功耗 | 同规格更贵、静态功耗更高 |
| 接口灵活性 | 用厂商给的固定外设 | 可现造任意接口、任意数量 |
各自擅长
- 选 MCU:控制逻辑为主——读传感器、按键显示、电机控制、通信协议栈、跑 RTOS、需要丰富软件生态、成本/功耗敏感。
- 选 FPGA:多路高带宽并行采集、自定义/冷门高速接口、图像/信号流水线、需要严格确定性低延迟、要后期改逻辑(如 SDR、协议桥接、ASIC 原型验证)。
- 边界在融合:ZynQ 这类 SoC FPGA 在芯片内同时放了 ARM 硬核(PS)和 FPGA(PL),控制交给软件、确定性/高带宽交给逻辑,见 ZynQ SoC。
常见坑
- 以为「FPGA 快」就盲目选:低频控制任务上 FPGA,开发周期、成本、功耗都不划算。
- 用写软件的思路写 Verilog(以为语句按行顺序执行),导致综合出意外锁存器/逻辑,见 组合与时序逻辑。
- 忽略上电配置时间:FPGA 多为掉电丢失,需外挂 flash 重新加载,见 比特流固化。
- MCU 项目硬要保证纳秒级响应:受中断延迟限制,应评估 FPGA/硬件方案。
总结
单片机是「一颗 CPU 跑顺序软件」,改功能改代码、便宜低功耗、适合控制类;FPGA 是「一块可重新搭的并行电路」,各模块天然并发、时序确定、能现造高速接口,适合高带宽、低延迟、定制流水线;不确定时用 SoC FPGA 让 CPU 管控制、FPGA 管实时与高速。