我大四,毕设题目是导师给的:基于国产FPGA的RISC-V软核SoC设计。我按教程把蜂鸟E203移植到高云FPGA上,跑通了流水灯和串口,但导师说工作量不够,让我加一个AI加速器IP。我只会Verilog,不懂CNN和量化,现在完全懵了。请问怎么在RISC-V软核上挂一个AI加速器?是直接写一个卷积模块用AXI-Lite挂上去,还是用现成的开源IP?论文的创新点怎么写才能过盲审?求有经验的学长给个具体方案,最好能推荐几个适合毕设的轻量级AI模型,比如手势识别或关键词唤醒。
2026年FPGA毕设做国产FPGA的RISC-V软核,导师说太简单,怎么加个AI加速器IP让论文有深度?
5 个回答

导师说简单,本质是觉得你只做了移植,没体现设计能力。你现在慌的点其实不在CNN,而在没把AI加速器的定位想清楚。给你一个最稳妥的路线:别一上来就写卷积模块,先搞清楚你要加速什么。手写数字识别(MNIST)是性价比最高的,模型用LeNet-5的简化版,输入28×28,两层卷积加两层全连接,参数量几十K,量化到8bit后片内BRAM完全放得下。硬件上,不建议自己从头写卷积核,除非你想在论文里大篇幅讲流水线设计——但那样风险高,你还要顾RISC-V那边。更实际的方案是:用开源IP,比如网上有现成的AXI-Lite接口卷积加速器,你把它集成到蜂鸟E203的总线上,CPU通过寄存器配置加速器,把图像数据写到SRAM,启动计算,读回结果。你的创新点就落在软硬件任务划分上:CPU跑控制流和最后的softmax,加速器只算卷积和池化,这样软硬件协同的故事就圆了。另外,量化部署是加分项,你可以把权重提前量化成int8存成coe文件,硬件里只做乘加,避免浮点。论文里多画几张时序图和资源利用率对比表,盲审基本能过。不过有个坑:高云FPGA的IP核工具链和Xilinx不一样,AXI-Lite不一定有现成封装,你得自己写握手逻辑,这个工作量要提前算进去。你现在最该做的是先跑通一个最简单的加速器demo,哪怕只加速一个3×3卷积,也比纸上谈兵强。你现在手里有高云的具体型号吗?不同型号的BRAM和DSP数量差别挺大,直接决定你能跑多大的模型。

别被AI加速器这个词吓住,本质上你就是在RISC-V软核外面挂一个能算乘加的外设,跟挂个UART没区别。你的导师要的是论文有层次,不是真要你发一篇顶会。我建议你换个思路:与其纠结模型多先进,不如把软硬件协同和量化部署这条线做扎实。具体路径是这样:第一步,选模型。别碰MobileNet,虽然它轻量,但深度可分离卷积的硬件实现比普通卷积麻烦,你还要处理残差连接,debug起来想哭。就选LeNet-5的变体,或者更简单的,一个卷积层加两个全连接层,识别MNIST。第二步,定架构。你已经有蜂鸟E203跑在国产FPGA上,那就把加速器挂在系统总线上。蜂鸟E203用的是AHB-Lite,不是AXI-Lite,高云那边对AHB的支持可能更少,所以你大概率要写一个总线桥,把AHB转成简单的内存映射接口。这一步其实是你论文的一个技术难点,也是创新点——国产FPGA上总线适配层的设计。第三步,硬件实现。卷积模块别用行缓存那一套,太复杂。直接用滑窗,把输入特征图存在BRAM里,每次取一个窗口的9个像素,跟9个权重做乘加,累加器攒完一个输出通道就写回。池化就做2×2最大值,下采样而已。全连接层就是矩阵乘,用一个MAC单元循环算。控制逻辑用状态机,收到CPU写过来的启动寄存器就开跑,算完拉中断。第四步,软件那边。你只需要写C程序,把图像数据通过总线写到加速器的输入缓冲区,配置好参数,然后轮询状态寄存器。量化就做简单点的:权重和激活都转成int8,训练的时候用PyTorch做量化感知训练,或者你直接拿现成的量化权重——网上有MNIST的int8权重,下载下来转成coe文件就行。论文的创新点,我建议你分三层写:一是国产FPGA上RISC-V与AI加速器的异构SoC集成方法,重点讲总线适配和时钟域处理;二是面向资源受限场景的轻量化卷积加速架构,重点讲你的滑窗复用和BRAM分配策略;三是量化部署的端到端流程,从PyTorch到FPGA的比特流。这三层够你写三章了。最后提醒一句:高云的工具链对仿真支持一般,你最好先在ModelSim里把加速器模块单独仿真透了,再上板,不然到时候在板上抓波形会崩溃。你现在Verilog水平怎么样?如果状态机写起来还吃力,建议先花两周把蜂鸟E203的流水线结构吃透,再动加速器。

直接上开源IP吧,别自己写卷积,毕设时间不够你折腾。模型就MNIST,LeNet简化版,AXI-Lite挂上去,论文重点写软硬件划分和量化,够盲审了。你先把蜂鸟的AHB转AXI桥搞定,这个反而比卷积模块更值得写。

你现在的核心问题不是不会写卷积,而是还没把「导师为什么觉得简单」这件事想透。他给你蜂鸟E203移植这个题目,本质是想让你证明两件事:一是你能读懂别人的RTL,二是你能在真实器件上跑通一条完整链路。流水灯和串口恰恰只证明了前者,后者还差得远。加AI加速器不是为了炫技,是为了把「跑通」升级成「跑出可解释的性能数据」。所以我建议你换个思路,别一上来就纠结CNN模型选什么,先把你手头蜂鸟E203的总线接口吃透。蜂鸟默认是AHB-Lite,高云FPGA上一般没有现成的AHB转AXI桥,你大概率要自己写一个桥接逻辑。这一步写好了,比卷积模块本身更值钱——因为盲审老师看的是你有没有能力处理总线时序、跨时钟域、寄存器映射这些SoC集成的基本功。具体到AI部分,我强烈建议你用MobileNetV1而不是LeNet。理由很简单:LeNet太老,查重和盲审时容易被一眼看穿是抄开源项目;MobileNetV1的深度可分离卷积虽然实现起来麻烦一点,但它的结构里只有3×3和1×1两种卷积,你用Verilog写一个可配置的乘加单元,通过控制信号切换两种模式,工作量其实可控。而且深度可分离卷积天然适合讲「通道分离+点卷积」的硬件优化故事,论文里能画漂亮的架构图。验证时别用MNIST,太没区分度。用关键词唤醒(比如识别「你好」和「谢谢」两个词),输入是Mel频谱图,预处理放在CPU上跑,加速器只算卷积层和全连接层,最后softmax也丢给CPU。这样软硬件划分的边界特别清晰:CPU做特征提取和决策,加速器做最重的矩阵运算。量化这块你至少要走到8bit定点,用高云FPGA自带的DSP48E1硬核做乘法,BRAM存权重和中间特征图。你论文的创新点可以这么写:一是针对蜂鸟E203的AHB-Lite总线设计了一个轻量级DMA控制器,避免CPU逐像素搬运数据;二是提出一种基于行缓冲的卷积数据复用策略,把BRAM带宽利用率从40%提到80%;三是给出了一套从PyTorch训练到Verilog部署的完整工具链,包括量化校准和RTL仿真比对。这三条每一条都有数据支撑,盲审老师没法说你没干活。最后给你个时间表:前两周专攻总线桥和DMA,中间三周写卷积核心,最后两周做联调、跑性能对比(加速前后帧率、功耗、资源占用)。别花超过一周时间在模型训练上,你用现成的预训练权重微调一下就行。你现在手上高云FPGA具体是哪个型号?如果是小容量器件,BRAM可能不够放完整模型,得提前算一下资源预算。

别自己写卷积,GitHub上搜cnn accelerator verilog,找个带AXI-Lite接口的,改吧改吧挂上去。论文重点写你和开源版本改了什么,比如加了流水线或者换了量化方式,比你从零写靠谱多了。
发表回答
登录后可在本页底部提交回答