FPGA,一门让人又爱又恨的技术。有人说它是“硬件界的代码艺术”,也有人吐槽“学 FPGA=自找苦吃”。有人用 FPGA 做 AI 加速,风光无限;也有人熬夜调时序,调到怀疑人生。
那么,FPGA 究竟在学什么?它是硬件工程师的未来,还是一条被软件和 ASIC 挤压的“消亡赛道”?今天,我们就来掰扯掰扯这个问题。
系统核心是什么?
目前不论嵌入式系统还是小家电(小玩具)基本都是CPU(不论是单片机还是SoC)作为系统主控,除特殊领域内应用基本看不到以FPGA(带硬核的除外)为主控进行系统设计,大家有没有想过为什么会出现这种情况呢?
个人认为主要以下几个方面:
成本
系统复杂度
开发周期
世界的核心是“标准”
其他
成本很好理解,一个单片机才几个钱,一片FPGA价格都赶上一个系统的价格了(小系统)。

一个小系统考虑多方面情形,系统分支复杂的情况下,FPGA应对就难很多了,所以以FPGA为主控就对系统的单一性要求很高。

开发周期就更好理解了,FPGA进行开发时,编译、调试、测试等各方面时间周期都是远超其他CPU开发周期的(同等复杂度)。

目前世界的开发都以“标准”运行的,有标准了,这些CPU外扩的外设足以应对90%以上接口的接入和输出,所以在进行同等接口开发时足以剩下85%的时间,比如扩展一个UART接口,CPU几句话搞定,FPGA从零开始的话至少要几个小时甚至几天。

其他方面,领导喜好、产品经理认知、开发人员少等各方面原因。就像我们领导什么项目来了首先想的是用ARM+FPGA,足以应对80%场景的硬件架构。
上面说明的时在正规系统里,FPGA只能演“配角”,主角的戏他还抢不到,那么他的开发角色也就可想而知了。那么接下来我们讨论点有争议的地方:

1. FPGA 是“软件”还是“硬件”?学的是代码还是电路?
如果你学的是软件,那你写的代码是跑在 CPU/GPU 上的,逻辑是顺序执行的;
如果你学的是 FPGA,那你写的代码直接变成了硬件电路,所有逻辑是并行执行的!
FPGA 用 HDL 编写电路,但它并不是软件,这就导致很多新手踩坑:
你用 C 语言的思维写 Verilog,编译不报错,但 FPGA 一运行就“炸”了!
明明代码看起来没问题,但加了时钟后,输出的波形全乱了!
👉 为什么 FPGA 还在坚持用 Verilog/VHDL,而不像 CUDA、Python 那样用高级语言?
其实FPGA厂商一直在致力于用高级语言进行FPGA编程,但是效果一直达不到预期,然后面对的人群很乱,有点伪“田忌赛马”的感觉,FPGA人员对高级语言嗤之以鼻,觉得没有技术含量,写出来的代码占用资源多(我觉得不是缺点,有些东西是需要取舍的);软件人员对FPGA还比较恐惧,我不会硬件不理解FPGA架构,我能用好吗?我写出来的代码在FPGA上不能运行怎么DEBUG?
👉 HLS(高层次综合)能取代 Verilog 吗?用 C++ 直接写 FPGA 会不会更简单?
这个和上面面临的情况一样,目前的发展情况,初学者不建议直接学HLS。
2. FPGA 学的是数字电路,还是 EDA 软件工具?
很多人学 FPGA 以为就是学 HDL,结果发现:
光会 HDL 没用,还要会时序约束、约束文件、综合优化!
不懂 Vivado/Quartus?你根本没法让 FPGA 运行!
不懂时序分析?你的设计跑不好!
实际上,FPGA = 50% 代码 + 50% 工具,EDA 软件(Vivado、Quartus)是 FPGA 工程师的“生存工具”。你不仅要写 HDL,还要:
✅ 理解 FPGA 内部架构(LUT、BRAM、DSP)
✅ 用 Vivado 约束时钟(时序分析 STA)
✅ 调试硬件(SignalTap/ILA)
👉 为什么 FPGA 开发流程这么复杂?为什么不能像 Python 那样一键运行?
这个和FPGA架构有关系,他不像CPU一样有厂商把底层封装好了,需要的就是应用即可,而FPGA是一篇白纸,写什么东西需要一点一点构造。
3. FPGA 是“高端科技”,还是“工程师的体力活”?
FPGA 一度被认为是最前沿的技术,用在 5G、AI、自动驾驶等领域,但实际工作中,很多 FPGA 工程师的日常却是:
调时序,改代码,烧 bitstream,反复试错……
加班到凌晨,只为让时钟约束满足 0.01ns 的误差!
项目进度太赶,代码是拼出来的,没人敢改!
很多人学 FPGA,以为能做 AI 加速,结果天天在调 UART 串口、写 LED 闪烁……
甚至有人调侃:“FPGA 工程师,干的是比软件还细节的活,拿的是比硬件还少的工资(时薪)。”
👉 为什么 FPGA 工程师工资高,但愿意干的人却越来越少?
大家可以评论区讨论一下。
4. FPGA 的未来:它会被淘汰,还是会越来越吃香?
随着 AI 芯片、GPU、ASIC 的发展,FPGA 的处境变得微妙:
在 AI 计算 领域,GPU 统治力强,FPGA 只能抢一小部分市场;
在 通信、5G、网络加速 领域,FPGA 仍然不可替代;
在 ASIC 设计 领域,FPGA 被用作原型验证工具,但 ASIC 芯片量产后,FPGA 设计就被抛弃了。
那么,未来 FPGA 还有前途吗?还是终究会被更高级的 AI 芯片取代?
总结:FPGA 究竟在学什么?
FPGA 不是软件,而是硬件,你学的是硬件思维(并行计算、时序分析)。
FPGA 代码不等于软件代码,你写的 Verilog 是硬件电路,不是程序。
FPGA 设计=代码+工具+时序,光会 Verilog 没用,你还得懂 EDA 工具、时序分析。
FPGA 不是玄学,但很折腾人,你可能会为了 0.01ns 的时序误差加班到凌晨。
FPGA 未来不确定,但在 AI/通信/嵌入式仍然有市场,不会轻易被淘汰。
综合来看,就几个方面:
✅ 学 Verilog/VHDL,写出可综合的硬件逻辑
✅ 学时序分析,让电路满足高频率运行
✅ 学 EDA 工具(Vivado/Quartus),完成综合、布局布线
✅ 学高速接口(DDR、PCIe、SerDes),提高数据传输能力
✅ 学 FPGA 应用(AI、通信、视频),决定你的职业发展方向
💡 FPGA,究竟是硬件工程师的“炼狱”,还是未来科技的“护城河”? 你怎么看?🚀