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