1、FPGA是什么:从门电路到可编程逻辑的演进

大家好,我是你们的FPGA讲师。今天咱们聊聊最基础的问题——FPGA到底是什么?

很多初学者一上来就盯着开发板手册看,结果越看越懵。我建议你先别急,咱们从根上捋一捋。

1.1 从门电路到可编程逻辑

数字电路最底层的东西是什么?是门电路。与门、或门、非门,就这三样。你想想看,整个计算机世界,本质上就是靠这些基本门电路搭起来的。

早年的工程师怎么设计电路?拿74系列芯片,一个一个焊在板子上。想改功能?对不起,重新焊。我刚开始入行时还见过老工程师拿着烙铁改电路板,那叫一个痛苦。

后来出现了PLD(可编程逻辑器件),再后来是CPLD,最后才是FPGA。FPGA的全称是Field Programmable Gate Array,现场可编程门阵列。说白了,就是给你一堆门电路,你想怎么连就怎么连。

核心理解:FPGA内部有大量的查找表(LUT)和触发器(FF)。查找表本质上是一个小RAM,你往里面写真值表,它就实现了对应的逻辑功能。触发器用来存储状态。再加上可编程的布线资源,就构成了FPGA的基本架构。

嗯,这里要注意:FPGA不是用真正的门电路去搭,而是用查找表去模拟门电路。这样做的好处是灵活,坏处是速度比专用芯片慢一些。

1.2 FPGA与CPU、GPU、ASIC的区别

这个问题我几乎每次培训都会被问到。咱们用一张表说清楚:

对比项 CPU GPU ASIC FPGA
架构 冯·诺依曼/哈佛 大规模并行 固定逻辑 可编程逻辑
执行方式 指令流串行 数据流并行 硬件直连 硬件直连
灵活性 极高 较高
能效比 极高
开发周期 极长
典型应用 操作系统、通用计算 图形渲染、AI训练 手机芯片、专用芯片 通信、工业、原型验证

我个人的理解是这样的:CPU像是一个全能厨师,什么菜都能做,但一次只能做一道。GPU像是一群帮厨,能同时切很多菜,但只会切菜。ASIC像是专门做汉堡的机器,又快又好,但只能做汉堡。FPGA呢?它像是一套可以随时改装的厨房设备,今天做中餐,明天改西餐,改起来很快。

避坑指南:我曾经见过一个团队,明明只需要几千个逻辑单元的小项目,非要上高端FPGA,结果成本翻了好几倍。选型时一定要先评估资源需求,别杀鸡用牛刀。

1.3 FPGA的典型应用场景

FPGA到底用在哪儿?我挑三个最常见的领域说说。

通信领域

这是FPGA的老本行。基站里的基带处理、协议栈加速、前传接口,几乎全是FPGA的天下。为什么?因为通信协议更新快,ASIC跟不上节奏。我记得2018年帮一个客户做5G前传方案,协议三个月改一版,用FPGA改起来就是重新综合一下,ASIC的话得重新流片,几百万美金打水漂。

AI加速

这几年FPGA在AI推理领域越来越火。虽然训练还是GPU的天下,但推理场景下FPGA的优势很明显:低延迟、低功耗、可定制。举个例子,一个边缘AI设备,用GPU功耗太高,用ASIC又太死板,FPGA正好卡在中间。

为什么会这样?因为AI推理的模型结构相对固定,但算法迭代快。FPGA可以针对特定模型做硬件优化,比如把卷积层做成流水线,把激活函数用查找表实现。我做过一个项目,用FPGA做YOLOv3的推理加速,比同等功耗的GPU快了3倍。

工业控制

工业现场对实时性要求极高。PLC(可编程逻辑控制器)的扫描周期一般是毫秒级,但有些运动控制需要微秒级的响应。这时候FPGA就派上用场了。你可以用FPGA直接控制电机驱动器的PWM信号,延迟可以做到纳秒级。

注意:工业环境对FPGA的可靠性要求很高。我曾经遇到过一个问题:FPGA在高温下时序跑不过,导致电机控制信号抖动。后来加了散热片才解决。所以做工业项目时,一定要留足时序裕量,别卡着极限频率设计。

好了,第一章就讲到这里。FPGA的本质就是可编程的硬件,它让你既能享受硬件的速度,又能保留软件的灵活性。下一章咱们聊聊怎么选开发板,我会分享一些我踩过的坑。

公众号:蓝海资料掘金营,微信deep3321