最近看招聘软件上FPGA岗位要求越来越卷,很多都写着要懂HLS、Vitis AI、Vivado HLS。我现在工作两年多,平时做AI加速项目基本就是调IP核,用Vitis AI的流程把模型部署上去,RTL写的机会很少。有点慌,感觉这样下去核心竞争力会越来越弱。想问问各位大佬,2026年这个节点,FPGA工程师搞AI加速,如果只会调IP核不写RTL,是不是真的会被HLS和Vitis AI这类工具取代?还是说RTL能力依然是不可替代的护城河?
2026年了,FPGA工程师做AI加速,只会调IP核不写RTL,是不是早晚被HLS和Vitis AI取代?
5 个回答

先别急着慌,调IP核和写RTL不是二选一,而是两条腿走路的问题。你担心的「被HLS和Vitis AI取代」在2026年这个节点看,短期不会发生,但长期确实会改变岗位结构。我举个实际例子:用Vitis AI部署一个YOLOv5s模型,流程确实很顺,点几下就能生成DPU指令流,但一旦遇到模型量化后精度掉点、需要自定义一个非标准算子,或者板卡内存带宽不够要手动优化数据搬运,这时候你就得打开RTL看DPU的接口时序,甚至要改AXI总线的burst长度。我身边做AI加速的同事,RTL功底好的,遇到这类问题能自己定位到具体模块;只会调IP的,只能发工单等Xilinx支持,或者换一个更吃资源的方案,项目进度完全不可控。再往深说一层,HLS本质上还是把你写的C/C++翻译成RTL,它生成的代码在时序收敛和资源利用率上,往往比手工RTL差20%到30%,尤其是跨时钟域处理和复杂状态机,HLS经常给出很别扭的实现。所以我的建议是:保持你现在的工作节奏,但每周至少抽两三个晚上写点小模块,比如AXI4-Lite从机接口、FIFO读写仲裁、简单的图像缩放算法,把这些基本功捡回来。你不用成为RTL大牛,但至少要能看懂综合后的原理图,知道时序报告里那些红色路径是怎么回事。等你能把Vitis AI的报错和RTL代码对应起来,你就不慌了,因为你会发现工具是工具,但最终的物理世界还是由触发器、查找表和布线网络构成的,谁懂这个底层,谁就有议价权。对了,你现在的项目里,有没有遇到过Vitis AI生成的DPU和你自己写的逻辑之间做数据交互的情况?那才是最容易暴露短板的地方。

我理解你的焦虑,但这个问题得拆成「工具替代人」和「能力护城河」两件事来看。先说结论:HLS和Vitis AI替代的不是写RTL的工程师,而是「只做重复性部署工作」的工程师。你现在的状态其实很危险,因为你描述的工作内容——调IP核、跑Vitis AI流程——本质上是在「消费」别人设计好的抽象层。这套抽象层确实很强大,2026年的Vitis AI已经能自动做量化、编译、调度,甚至能帮你生成部分PL端的加速逻辑,但它的边界也很清楚:凡是涉及非标准数据流、定制化计算单元、性能极限优化的地方,工具就失灵了。我打个比方,HLS就像自动挡汽车,RTL就像手动挡。自动挡让开车变得容易,但F1赛车手必须精通手动挡的每一个齿轮比和离合器咬合点。AI加速器就是FPGA领域的F1赛道,你面对的是几百Gbps的DDR带宽、越来越紧的时序约束、还有多时钟域的异步交互,这些恰恰是HLS最不擅长处理的。Vitis AI生成的DPU是一个通用引擎,它为了兼容各种模型,做了很多冗余设计,资源利用率可能只有60%到70%。如果你遇到一个客户要求把延迟压到5毫秒以内,或者要同时跑三个不同精度的模型并共享计算单元,你只能自己写RTL去定制数据通路。而且从职业发展角度看,RTL能力是「可迁移的底层技能」,你学会了时序分析、CDC验证、资源优化,换到通信、图像、控制领域都能用;而只会调Vitis AI,你的经验被绑定在这一个工具链上,万一明年出了个更好的框架,你的积累就清零了。所以我的建议很明确:现在就开始补RTL,但不用学得像十年老工程师那么深,重点学三件事——看懂时序报告并知道怎么改约束、写简单的AXI接口模块、理解FIFO和BRAM的使用场景。这些足够你应付大多数AI加速项目的底层问题。同时,你现有的HLS和Vitis AI经验不要丢,那是在更高维度看问题的优势,很多纯RTL工程师反而不理解模型层面的优化。两条线并着走,你反而比那些只会写RTL的人更全面。最后说一句,你现在工作两年,正好是打基础的关键期,别等到五年后想转才发现自己只会点按钮,那时候就真的被工具架空了。你手头用的Vitis AI是哪个版本的?不同版本对RTL的暴露程度差别挺大,知道这个我能给你更具体的建议。

说句实在话,工具越成熟,调IP的人越不值钱。但你放心,能写RTL调时序的人永远有饭吃,因为AI加速卡的物理瓶颈(带宽、功耗、时序)工具解决不了。别裸考,去学学SystemVerilog和约束文件吧,不然过两年你会发现自己成了「高级操作员」。

先说结论:你怕的不是HLS,而是怕自己变成流水线上那个只拧一颗螺丝的人。这个担心是对的,但解法不是扔掉Vitis AI回去死磕RTL。2026年做AI加速,RTL能力确实还是护城河,但这条河的位置变了——以前是「我会写RTL所以我能做加速器」,现在是「我懂硬件边界所以我能判断什么时候该用HLS、什么时候必须手写RTL」。你每天调IP核,其实已经在积累一种隐性知识:你知道DPU的瓶颈在带宽还是延迟,知道量化掉点后是改模型还是改数据搬运,这些判断力恰恰来自对底层时序和资源的感觉。问题是,你只用了感觉,没验证过感觉。我建议你接下来三个月做一件事:挑一个你调过的最复杂的IP,比如某个带AXI-Stream接口的加速模块,打开Vivado的波形仿真,手动把它的握手时序画出来,再对比HLS生成的代码,看它为什么这么写。这个过程不要求你从零写RTL,但能逼你把「调IP」变成「懂IP」。等你某天遇到非标准算子,需要自己拼一个自定义计算单元时,你会发现HLS生成的代码在时序收敛上经常要你手动改pipeline,那时候你手里有RTL功底,就能改得动。反过来说,如果你现在彻底放弃HLS,回到纯RTL开发,在2026年的AI加速领域反而会吃亏——因为模型迭代太快,纯手写一个卷积引擎的周期,HLS早就跑完三轮实验了。所以别二选一,把HLS当你的快速原型工具,把RTL当你的兜底debug工具。你才工作两年,现在开始补SystemVerilog和时序约束完全来得及,但别裸学,直接拿你手头的项目当练习场。最后追问一句:你平时调IP时,遇到时序违例是自己看report去改约束,还是直接换更慢的时钟?这个答案决定了你离护城河还有多远。

其实你换个角度想:HLS和Vitis AI是给你用的,不是替你做决定的。工具能帮你把C代码变成RTL,但它不会帮你想清楚为什么这个循环要展开、那个数组要乒乓缓存。你调IP时遇到的那些坑——带宽不够、时序收敛不了、跨时钟域数据错位——每一个都是RTL层面的问题,工具只会把它们包装成更抽象的错误提示。所以我的建议很直接:保留HLS流程作为效率工具,但每周至少花两小时手写或阅读RTL,重点看AXI协议和CDC处理。坚持半年,你会发现调IP时心里有底多了。放心,会写RTL的人永远不会被工具取代,因为工具本身也需要懂硬件的人去驯服它。
发表回答
登录后可在本页底部提交回答