导师给了个偏前沿的题目,让我在国产高云FPGA上做一个存算一体架构的轻量AI加速器,说创新点好写。但我只是本科,Verilog刚写熟,卷积都没在FPGA上跑过。想问:这类题目本科做会不会翻车?答辩时评委是更看重创新点还是完整可运行的系统?如果做不出来能不能中途降级成普通CNN加速?
2026年FPGA毕业设计选「基于国产高云的存算一体AI加速器」会不会太难,本科答辩能过吗?
5 个回答

这题我得先把话说直白点:本科答辩能不能过,跟题目是不是前沿关系不大,跟你最后有没有一个能演示、能讲清楚的东西关系很大。存算一体这个词听着唬人,本质上就是把乘累加尽量放到存储阵列附近去做,减少数据搬运。放到高云这种资源有限的国产FPGA上,你想真做一个完整存算阵列,基本不现实,LUT和BRAM都不够你折腾的。
比较稳的做法是把题目拆成两层:一层是「我实现了一个轻量CNN加速器,跑通了MNIST或小尺寸CIFAR」,另一层是「我在这套加速器里做了面向存算思路的近似优化,比如权重常驻片上、减少访存、用查找表替代部分乘法」。前者是保命线,后者是创新点。答辩评委大多数不是你这个方向的,他们看的是你能不能自圆其说,系统跑没跑起来,而不是你阵列规模做了多大。
风险主要在时间。Verilog写熟和能调试一个带AXI、带DMA、带时序收敛的加速器之间,差着好几倍的工作量。建议第一个月先别碰存算,老老实实把普通卷积加速器在仿真里跑通;第二个月上板,把摄像头或串口输入跑起来;第三个月再往存算概念上靠。如果中途发现时序过不去或者资源爆了,降级成普通CNN加速器完全可行,答辩时把存算部分讲成「设计探索与取舍」,一样是加分项。
你导师说的创新点好写,这话没错,但前提是你得先有能写的地基。你现在用的高云具体是哪块板子,资源大概什么量级?这个直接决定你能玩多大。
其实吧,本科毕设最怕的不是题目难,是题目难到没边还在硬扛。存算一体当个帽子戴,里面装个扎实的小加速器,过答辩绰绰有余。要是真冲着做阵列去,大概率是两头空。
我会先问导师一句:如果我最后交的是一个带存算设计思路的CNN加速器,您认不认?认,就干;不认,趁早换题。

先说结论:能过,但前提是你别把「存算一体」当成真的要流片级实现。本科答辩的评审逻辑,一般是「你有没有独立完成一个能跑的系统 + 能不能讲清楚你的取舍」,而不是「你的架构是不是真前沿」。存算一体这个词,落到高云这种资源有限的FPGA上,通常只能做成「把权重尽量常驻片上、减少搬运、用近似计算省乘法器」这种程度,跟你论文里写的那些忆阻器阵列、SRAM存内计算,其实差着十万八千里。
所以我的建议是分两条线走。保命线:先做一个最朴素的CNN加速器,输入28×28的MNIST,哪怕只有两层卷积加一层全连接,能在板子上跑起来、数码管或串口输出结果,这就是你的系统主体。创新线:在这个主体上加一两个「面向存算思路」的优化,比如权重一次性烧进BRAM不再反复读、把某些乘累加换成查找表、或者做一个分块复用输入的特征图缓存。答辩时你讲的是「我在资源受限的国产FPGA上探索了减少数据搬运的方法」,而不是「我做出了存算一体芯片」。
风险主要在两块。一是时间,Verilog写熟和能调通带AXI、带DMA的系统是两回事,卷积没跑过的话,光是把图像数据喂进去、把结果读出来就能卡你两周。二是心态,一旦你一开始就冲着完整存算阵列去,中期发现BRAM不够、时序跑不到,很容易整个项目崩掉。中途降级完全可行,而且应该是你主动规划好的Plan B,不是做不出来才认怂。你可以跟导师提前说清楚:主目标是小规模CNN加速器,存算作为优化方向,做不到就退成「权重常驻+访存优化」。导师一般能接受,因为创新点照样能写。
最后提醒一句,答辩评委里真正懂存算的没几个,他们更怕的是你PPT上讲得天花乱坠,一问「你这个数据怎么进去的」就答不上来。所以把数据流讲清楚,比堆概念有用得多。你现在板子到手了吗,还是还在选型阶段?

我把这件事拆成一条主线来说,因为它本质上不是「难不难」的问题,而是「你把目标定在哪一层」的问题。
存算一体的核心动机是减少数据在存储和计算单元之间的搬运,这个动机在任何平台上都成立,哪怕是高云。但「实现一个存算阵列」和「体现存算思想」是两件难度差一个数量级的事。前者需要你设计存储单元、位线控制、模拟或近似的乘累加电路,基本是研究生课题;后者只需要你在一个普通加速器里,把权重固定、把访存模式改一改,就能沾上边。本科毕设该选的是后者。
那具体怎么走?我建议按里程碑推进,而不是按模块推进。第一个里程碑:不涉及任何AI,先让高云的开发板能通过串口或摄像头拿到一张图,把它存进BRAM,再原样读出来验证。这一步听起来傻,但它决定了你后面所有数据通路是否可信。第二个里程碑:写一个最笨的卷积,就是三重循环直接展开的那种,不优化、不并行,先让MNIST的一位数识别正确。这一步会让你真正理解卷积在硬件里长什么样。第三个里程碑才是优化:把权重常驻、做行缓存、把部分乘法换成移位加法或查找表。到这里,你的「存算味道」就出来了,论文里也能写出对比数据,比如优化前后BRAM访问次数降了多少。
关于答辩,我的观察是评委的提问几乎都集中在两个方向:一是系统完整性,二是你自己做了什么。创新点他们未必懂,但他们能听出你是不是在背概念。所以你要准备的不是「存算一体的学术综述」,而是「我为什么这么设计、我试过什么、哪条路走不通」。把失败的尝试讲出来,反而比只讲成功更有说服力。
至于中途降级,我认为你不该把它当成退路,而应该一开始就写进计划。比如主目标是轻量CNN加速器,存算优化是加分项,做到哪算哪。这样无论进度如何,你都有一个能答辩的完整系统。真正会翻车的人,往往是前期把时间全花在啃存算论文上,代码一行没写。
一句话,题目不吓人,吓人的是你把它想成了一个必须做完的科研任务。先动手把数据跑通,剩下的边走边调。你导师对这个题目的预期,是要求你真做出阵列,还是只要有个能演示的原型?

先说结论:能过,但别按导师字面意思做。我见过不少本科毕设翻车不是因为题目太难,而是因为把「存算一体」当成了必须真的做出存内计算阵列。高云这类资源有限的FPGA上,你要真去搞模拟域乘累加、位线充放电那套,LUT和BRAM根本不够折腾,本科时间也不够。
导师说创新点好写,这话没错,但他说的创新点和答辩评委认的创新点,往往不是一回事。评委里大概率有做通信的、做控制的、做嵌入式的老师,他们判断标准很朴素:这东西跑没跑起来,你能不能讲清楚自己做了什么取舍。所以题目可以留着,内核要换。
我的建议是把整个毕设拆成一条主线:先有系统,再谈思想。第一步,不碰AI,先用高云的板子把数据通路打通——串口或摄像头进一张图,存进BRAM,再读出来验证一遍。这一步看着傻,但它决定你后面所有的时序和位宽是不是可信的。第二步,写一个最笨的卷积,三重循环直接展开,别优化,先在板子上跑出MNIST的结果。第三步,才是往存算上靠:权重一次性烧进BRAM不再反复读、输入特征图分块复用、把部分乘法换成查找表。
这三步走完,你就有了一个「轻量CNN加速器 + 面向存算思路的访存优化」。答辩时讲两层:一层是我实现了一个能跑的系统,一层是我为减少数据搬运做了这些取舍。前者保命,后者是创新点。真正的存算阵列你可以在论文的展望里写,那是研究生的事。
关于中途降级,完全可以,而且应该提前想好降级路线。如果卷积实在调不出来,就退到一个纯全连接的MNIST分类器,权重常驻片上,一样能挂存算的边。关键是你得在开题或中期就把这个退路跟导师说清楚,别到五月才发现做不完。
时间上,Verilog写熟和能调通一个带时序约束、带跨时钟域的系统,中间差着至少两个月。你现在的起点是「刚写熟」,那第一二步就要给自己留足时间,别一上来就想着上DMA和AXI。
最后问一句:你导师自己有没有做过FPGA上的加速器项目,还是只是觉得这个词热?这决定了你遇到问题时能不能得到实际帮助。

先别急着纠结「难不难」,我想先问你一个更实际的问题:你导师手上有没有现成的高云板子和上一届的代码?如果有,题目难度直接砍一半;如果全靠你自己从零摸,那这个毕设的变量就不只是算法了,还包括国产工具链本身。
高云的开发环境跟 Xilinx 那套差别不小,很多教程是野路子,遇到综合报错、时序不收敛、下载器识别不了,可能一卡就是一周。大四上学期你还得投简历、跑宣讲会,真正能安心调板子的时间往往只有寒假前后那几个月。所以我的判断是:题目能接,但你要提前给自己设好「止损线」。
一个比较稳的思路是把它当成两个独立目标。第一个目标是「系统能跑」:不管什么存算不存算,先让一张 28×28 的图从串口或 SD 卡进到片上,经过一个最小卷积网络,结果能输出出来。这个目标跟普通 CNN 加速器没区别,难度可控,也是你答辩时的底牌。第二个目标才是「沾存算的思想」,比如权重常驻 BRAM、减少中间特征图的反复读写、用查表替代一部分乘法。
关键在于:第二个目标做成了是加分,做不成也不影响你毕业。你论文里可以把前半部分写成系统实现,后半部分写成面向存算的优化尝试和取舍分析,哪怕优化效果一般,只要你能讲清楚「为什么这么改、代价是什么」,评委一般也认。
至于答辩重创新还是重系统,我的经验是评委先看你系统跑没跑起来,跑起来了才愿意听你讲创新。系统都没演示,创新点写得再漂亮也会被追问到崩。
顺便问一句,你导师是要求你真去碰模拟域的乘累加,还是只要架构上有存算的味道就行?这个区别挺大的。
发表回答
登录后可在本页底部提交回答