FPGA短缺这件事,说实话已经算不上新闻了,从交期拉长到部分型号直接停产,这几年做硬件的兄弟应该都深有体会。真正让我觉得值得拿出来聊一聊的,是这轮短缺已经从“暂时性的供应链波动”变成了一种“常态”,它不再是采购部门临时催货能解决的问题,而是直接倒逼我们在方案选型、设计架构、甚至团队技术栈上做出改变。
这篇东西我不想写成那种“行业分析报告”,也不打算列一堆宏观市场数据。我更想结合自己这几年在项目里实际踩过的坑、试过的路,聊聊当FPGA不再“想买就能买”的时候,一个做嵌入式或者做硬件研发的人,到底该怎么调整自己的开发习惯和项目策略。无论你是刚入门FPGA的学生,还是在工业、通信、音视频领域做产品的工程师,这篇内容应该都能给你一些可以直接拿去用的思路。
1. 短缺的根源不是“缺芯片”,而是整个生态变了
很多人一听到FPGA短缺,第一反应是“晶圆产能不够”。这话对,但只对了一小部分。我自己的观察是,这轮短缺背后其实是三个层面的问题叠加在一起,而且这三个问题在短期内都看不到根本性缓解的可能。
1.1 高端制程的产能挤兑远比想象中严重
FPGA不像普通MCU,可以在成熟制程上轻松切换。高端FPGA,尤其是带高速SerDes、PCIe Hard IP、大容量BRAM和DSP单元的逻辑资源大户,基本都跑在先进制程上。这些制程的资源本身就紧张,因为要跟GPU、AI加速卡、高端手机SoC抢产能。你在新闻里看到那些“AI芯片订单排到两年后”的消息,背后挤掉的就是FPGA这类产品的产能。
我之前在一个视频处理项目里用过一款中高端的Kintex系列,当时采购给出的交期是52周。什么概念?你今年立项,等到样片到手,竞争对手的产品可能已经上市半年了。这不是采购不努力,而是整个供应链的优先级排序里,你的小众FPGA订单就是排在别人后面。
1.2 原厂的策略调整:砍老型号、保高利润产品线
另一个容易被忽略的因素是原厂的产品策略。大家可能都发现了,这几年Xilinx(现在叫AMD)和Intel(Altera)都在加速淘汰老节点产品,同时把资源往高端、往自适应SoC方向倾斜。
比如很多老项目里还在用的Spartan-6、Cyclone IV这类芯片,要么直接进入EOL(停产)流程,要么交期被拉到离谱。原厂的态度很明确:你能升级就升级,不能升级就只能等。对于做长生命周期产品的公司来说,这种“被停产”的打击比“买不到货”更致命,因为你不仅要重新选型,还可能要改板子、改软件、重新做认证。
1.3 国产FPGA确实起来了,但替代不是“说换就换”
这轮短缺里,国产FPGA的曝光度确实上来了,像高云、紫光同创、安路这些品牌,在产品线和工具链上都有了长足进步。我身边也有朋友在项目里切了国产FPGA,跑通了基本逻辑。
但说实话,替代的难度比很多人想象的要大。国产FPGA目前最大的优势在中低密度、中低速率市场,比如LED屏控制、工业接口桥接、电机控制这类场景。但如果你用的FPGA需要跑PCIE 3.0、需要高速收发器跟ADC/DAC对接、需要跑复杂的MIPI协议栈,那国产芯片的选择余地就非常有限。
而且还有一点很现实的问题:开发工具链的成熟度和生态积累。习惯了Vivado和Quartus的人,切到国产EDA工具,前期会有很强的“水土不服”感,不只是界面换了,很多IP核的生成方式、约束写法、调试手段都不一样。这种切换成本,在项目周期紧张的时候是致命的。
2. 思路转变:把FPGA当成“可替换的零件”来设计
既然短缺是常态,那能救你的就不只是多囤货,而是从设计源头把“换芯片”的主动权握在自己手里。我自己这几年最大的感悟就是:不要在原理图阶段就把自己绑死在一颗芯片上。
2.1 项目启动前的“可替代性评估”
我现在每接一个新项目,只要用到FPGA,第一件事不是画原理图,而是拉着硬件和软件一起做一次替代性评估。这个过程类似“纸上选型”,但比选型更严格,我会把市面上所有跟目标芯片资源接近的型号都列出来,对比它们的封装、电压域、引脚定义、配置方式。
这里的诀窍是:不要把目光局限在同一个品牌里。高云的某款芯片和紫光的某款芯片,在某些逻辑资源和IO数量上可能是对标的。虽然引脚不能直接兼容,但如果你在设计PCB时预留了备选焊盘位,或者选择了足够大的封装尺寸,后面切方案的时候就不至于连板子都要重画。
我还见过更激进的做法:直接把FPGA做成一个小核心板,通过板对板连接器跟主控板相连。主控板上只留标准接口,FPGA放在核心板上,哪颗芯片有货就插哪颗。这种做法的前期成本高一些,但对于生命周期长的产品来说,这笔投入是值得的,它可以让你在所有竞争对手都在等芯片的时候,把产品按期交付。
2.2 硬件层面用“通用封装”思路做板级预留
在国内工程师圈子里,很多人设计PCB时倾向于把板子做得“刚刚好”——封装刚好能放下这颗芯片,电源刚好够这颗芯片用,引脚也刚好够用。这种做法的好处是成本低、面积小,但坏处是一旦芯片替换,基本宣告这块板子报废。
我现在一般建议预留两样东西:
电源余量:FPGA的功耗其实跟运行频率和资源利用率强相关,同样的芯片在不同项目里功耗可能差出一倍。所以电源设计时,我会按照“备选芯片中功耗最高那颗”来设计,而不是按当前用的这颗来设计。多出来的铜皮和电感规格差价很小,但换芯片时省下的麻烦很大。
IO口余量:GPIO的分配尽量按功能模块分组,不要把一个接口的信号散落在FPGA四周的各个角落。这样换芯片时,走线调整的工作量会小很多。同时,尽量把配置引脚、时钟引脚、复位引脚设计成可跳线切换的模式,方便兼容不同芯片的配置时序。
2.3 软件层面把“芯片相关代码”隔离出来
硬件做好了预留,软件(也就是FPGA内部的逻辑设计)也得跟上。我刚入行的时候写RTL代码,喜欢把厂商原语(比如Xilinx的BUFG、Altera的ALTCLKCTRL)直接写在业务逻辑里,觉得这样省事。后来吃了几次换芯片的亏,才意识到这是个大坑。
现在我在代码架构上会遵守一条纪律:所有跟厂商相关的原语、IP核、时钟资源,必须封装在独立的模块里,换句话说就是做一个“硬件抽象层”。
具体做法是:自己定义统一的时钟使能接口、复位接口、存储接口、串行收发接口,然后在内部再根据不同的芯片厂商去写对应的适配代码。这样当项目要从高云切到紫光,或者从Xilinx切到国产芯片时,业务逻辑基本不用动,要改的只是底层的适配层。
这个方法在资源占用上会有一点浪费,但对于应对短缺的长期战略来说,这点资源损耗完全在可接受范围内。
3. 那些看似“救急”的办法,其实都有隐形坑
老实说,这两年我也试过不少“江湖救急”的路子,有些确实有用,但更多的是表面解决了问题,背后埋了更大的雷。这里挑几个典型的跟大家聊聊。
3.1 批量囤货的时机和库存成本
囤货这件事,如果做对时机,确实能帮公司扛过最难受的交期窗口。我自己一般在项目立项时会锁定两个渠道的信息:原厂代理的订单排期,以及市场上现货商的价格异动。
当发现现货价格开始横盘且高于官方价30%以上时,通常意味着渠道库存已经被扫得差不多了,这时候我会建议公司提前下订单锁定产能,而不是等到真正缺货了再找货。但囤货也有很痛的教训,主要是资金占用和芯片老化风险。FPGA这类芯片对静电敏感,库存环境的管控不到位,芯片放两年再上机,出问题的概率会明显上升。
所以如果决定囤货,建议跟代理签订分批提货的协议,让芯片在仓库里持续流转,而不是一次性压一堆货在库房里吃灰。
3.2 “翻新料”和“散新货”能不能用
短缺时期,市场上会出现大量所谓的“翻新料”“散新货”。原理很简单,就是从废旧板卡上拆机下来,重新打标或者翻新外观再流入市场。
对于这部分货,我的态度是:除非项目对成本极其敏感,而且允许“先跑通功能、不要求长期可靠性”,否则千万别碰。FPGA这种器件,内部逻辑单元的任何一处损伤都可能导致极其诡异的时序问题,这类问题在实验室里可能完全复现不出来,一旦上产线就成了批量事故。
尤其是一些带高速收发器的芯片,静电和焊接工艺对收发器的性能影响非常大,翻新料在高速信号完整性上出问题的概率远高于全新料。我见过一个做工业相机的团队,因为用了一批散新的FPGA,整批产品的图像数据偶发错位,排查了整整两周才定位到是芯片本身的问题,最后还是全部换料重新生产,损失远超省下的那点成本。
3.3 样品申请的“绿色通道”到底该怎么走
另一个容易被忽视的渠道是样品申请。很多工程师以为原厂样片是“走个流程”,其实这里面的门道不少。
我个人的经验是:样品申请通道更适合那些“已经进入原厂重点支持名单”的项目,比如国产替代专项、重点客户定制需求、或者有明确量产预期的案子。如果你只是“想试一下”,没有明确的项目预算和量产计划,原厂FAE对你的响应速度会非常慢。
所以申请样品前,建议先准备好三样东西:详细的需求文档(包括逻辑资源、IO数量、接口速率、温度等级)、项目立项书或客户意向书、以及一个明确的量产时间表。把这些材料给到代理或原厂FAE,对方才能帮你走内部审批流程,否则你的申请大概率会被晾在一边。
4. 从“等芯片”到“改架构”:那些真正有效的长期策略
前面聊的都是在现有框架下“找货”“换料”的思路,但如果你想彻底降低对特定FPGA型号的依赖,光靠这些还不够。必须从系统架构层面做一些调整。
4.1 功能重新划分:能用MCU/MPU做的,别塞进FPGA
很多FPGA项目之所以离不开大容量芯片,是因为习惯性的“把所有逻辑都放进FPGA”。但实际上,FPGA里跑着的大量逻辑,用一颗几百块钱的MPU完全能实现,而且开发效率更高。
我自己在最近的几个项目里就明显调整了功能划分原则:
- 协议控制类和状态机类逻辑,优先用MCU实现,比如配置寄存器的读写、通信协议的解析、系统状态的切换;
- 必须用FPGA的,只保留对时序敏感的数据通路和处理逻辑,比如高速ADC数据的接收、图像的缩放与拼接、传感器数据的实时过滤;
- 至于那些用软件跑“足够快”的功能,比如协议栈、用户界面、远程升级逻辑,直接放到嵌入式Linux侧去跑。
这样的好处非常明显:FPGA内部的资源利用率大幅下降,你就可以用更小一号的芯片,而小芯片的供应渠道通常比大芯片多得多,交期也短得多。
4.2 关注“网红功能”背后的陷阱
现在网上讨论FPGA时,高频热词永远是“FPGA图像处理”“FPGA PCIE”“FPGA MIPI”这些听起来很酷的方向。但对于工程选型来说,这些词汇背后其实藏着一个东西:高速接口资源。
举个例子,PCIE接口在FPGA里并不是所有型号都带硬核的,往往只有中高端芯片才集成。如果你只是需要一个PCIE端点跟主机通信,完全可以换一个思路:用一颗带PCIE Switch的桥接芯片,配合一个不带PCIE但逻辑资源足够的低端FPGA,功能完全一样,但芯片选择面大得多。
同理,MIPI接口的收发,如果你的摄像头模组输出的是raw数据,可以考虑先用一颗专用的MIPI转并行芯片(例如索尼、东芝都有这类桥接芯片),再进FPGA做处理。这样做虽然板级器件多了一颗,但FPGA选型时压力小很多。
4.3 “桥接芯片+FPGA”方案的实际案例
我做过一个具体项目,需要采集4路MIPI摄像头图像,并在FPGA内部做拼接后通过千兆以太网输出。最初的方案想直接用一颗带MIPI硬核和高性能收发器的FPGA,结果查了一圈供应链,交期都在40周以上。
后来拆解了一下需求,发现MIPI信号进入FPGA后,可以先被解码成并行的像素数据,再做后续处理。于是方案改成了:每路摄像头先接一颗MIPI转并行桥接芯片(十几块钱一颗),转出来的24位并行数据直接进FPGA的普通IO,最后用FPGA内部逻辑做拼接,再用一片外部PHY芯片把数据送到网口。
这个方案里FPGA完全不需要内置MIPI硬核,也不需要高速SerDes,一颗中低端芯片就能搞定。最终那颗FPGA的交期只要8周,整个项目的交付周期一下子从“不可控”变成了“可控”。
4.4 培养团队的“多工具链”能力
还有一个容易被忽视的点:团队的技能储备。很多团队用惯了Vivado,一旦要切到高云的云源软件或者紫光的PDS,效率会断崖式下跌。这不是说工具差,而是工程师对新的快捷键和菜单结构不熟悉。
我自己的做法是:在项目不忙的时候,会让团队拿去年的项目“练手”,用国产工具链重新综合、布局布线一遍,不追求实际流片,就为了熟悉流程和排查工具链的坑。这个动作看起来不产生直接效益,但真遇到要换芯片的时候,团队能拿得出手的就不只是“意愿”,而是“能力”。
5. 一些关于选型、学习和面试的务实建议
最后想聊一点“跟项目没那么直接,但长期来看很重要”的东西。因为FPGA短缺这件事,不只是影响公司级选型,也影响了每个FPGA工程师的职业路径和学习方向。
5.1 选型时的“供应链优先”原则
以前我们选型,第一考虑性能,第二考虑价格,第三考虑供货。现在这个优先级必须改了:第一是供货稳定性,第二是生态工具链成熟度,第三才是性能和价格。
具体操作上,我会先看芯片是否属于原厂主推的“长生命周期产品线”,再看是否有第二供应来源(比如同封装同功能的国产替代型号),最后才对比逻辑资源和DSP数量。
对于新入行的朋友,如果正在考虑研究方向,我建议不要只盯着那些高端大芯片的“炫酷”案例,而是多看看那些“不起眼”的应用,比如电机控制、LED显示驱动、工业总线的协议桥接,这些领域的芯片供货相对稳定,而且学习门槛低、见效快,更容易建立起量产级项目经验。
5.2 学习路径上,接口协议比厂商工具重要
经常有人问我FPGA入门应该学什么。我的建议是:别把时间花在熟悉某个厂商的IDE菜单上,那是“用进废退”的技能,换一家就归零了。
真正值钱的是这些底层能力:
- 时序概念:建立时间、保持时间、跨时钟域处理、时序约束怎么写,这些在哪个工具链下都是通用的;
- 常见接口协议:SPI、I2C、UART、DDR接口、MIPI的物理层时序,一旦你熟悉了协议本身,用哪家FPGA实现只是替换IP核的问题;
- 调试方法:逻辑分析仪的使用、ILA/SignalTap这类片上调试工具的思路、如何通过引脚波形反推内部状态。
我面试候选人的时候,不太看他用过哪家的板卡,而是会问他:如果现在给你一颗你没用过的国产FPGA,给你半个月时间,你能不能把一个SPI从机调通?能把这个问题回答清楚的人,才真正具备应对短缺时代的能力。
5.3 关注“接口转换”这个隐性需求
从热搜词里可以看到,现在很流行“FPGA + PCIE”“FPGA + MIPI”“FPGA + LVDS”这类关键词。这些词暴露了一个共同的技术需求:接口转换和协议适配。
其实FPGA在工程里最值钱的用途之一,就是做各种高速接口的“翻译官”。以前是ADC出来的并行数据要转成LVDS给处理器,现在是各种传感器、摄像头、总线协议之间互相转换。这类项目通常不需要超大容量的FPGA,但对时序收敛和信号完整性有较高要求,而且因为接口种类繁多,芯片选型上反而更灵活。
如果你正在学习FPGA,我觉得不妨沿着“接口转换”这条线做几个完整的练习项目。比如自己写一个SPI转UART、或者把普通的CMOS摄像头信号转成HDMI输出。这些项目虽然不复杂,但能让你把时序约束、FIFO设计、跨时钟域处理这些基本功全部练到位。有了这些底子,不管市场怎么变,你都能快速适应。
6. 这轮短缺教会我的几件事
写到最后,我想抛开具体的技术方案,聊聊这几年在心态和方法论上的变化。
第一,所谓“稳定供应”,从来都不是天上掉下来的。它需要你在项目还顺利的时候就提前做预案,而不是等缺货了才到处找关系。芯片选型时多问一句“如果不生产了怎么办”,到了交期紧张的时候就能少求一个人。
第二,芯片短缺本质上是一次“压力测试”——测试团队的架构灵活性,测试工程师的技能边界,也测试公司对供应商关系的管理能力。那些能在短缺周期里游刃有余的团队,不是运气好,而是他们在平时就把“第二方案”做成了习惯。
第三,FPGA这个行业虽然有周期性,但底层逻辑始终没变:谁能用更小的资源完成更多功能,谁就拥有更强的抗风险能力。不管是做产品还是做职业规划,把基本功打扎实、把系统边界画清楚,比追逐一两颗“网红芯片”要重要得多。
这轮短缺终究会缓解,但“随时可能缺货”的心态,我觉得应该长期保留。希望这篇内容能对正在为FPGA供货发愁的朋友们有所帮助,也欢迎同行在评论区聊聊你们应对短缺的独门心得。