大四准备做 FPGA 方向的毕业设计,但是身边不少师兄的毕设要么是「照抄参考设计改个参数」,要么就是目标太大最后只做了个 demo。我的基础:会基本 Verilog、能看懂简单时序约束,做过 LED 跑马灯、按键消抖、小型串口收发。希望毕设题目:1)实现工作量适中,3~4 个月能做完;2)可以在答辩时有清晰的 Demo 展示;3)最好和图像/通信/嵌入式有一点交叉。想听听大家有没有踩过坑后的推荐选题思路和具体题目示例。
想做 FPGA 本科毕设,有哪些题目既不太水又能实现?
提问
回答 3

我当年毕设做的就是摄像头图像采集加VGA显示,用的是OV7670和一块便宜的FPGA开发板。这个题目最大的好处是资料多,网上能找到很多参考代码和教程,而且每一步都有明确的阶段性成果:先调通摄像头初始化,再搞定SDRAM缓存,最后显示出来。你还可以在显示之前加一个Sobel边缘检测或者灰度化,这样论文里就能写算法原理和实现细节,答辩演示时也能看到处理前后的对比,效果很直观。唯一要注意的是SDRAM控制器时序比较麻烦,建议直接用现成的IP核或者开源代码,否则容易卡很久。整体下来3个月足够,工作量也饱满。

如果你想走通信方向,我推荐做一个简易的逻辑分析仪或者协议分析仪,核心就是FPGA采集外部信号并解析UART、I2C、SPI这些常见协议。这个题目很务实,因为每个模块都是独立的:先实现一个信号采集模块,然后用状态机解析协议,最后通过串口或USB把数据发到上位机显示。你可以先做UART解析,再扩展I2C和SPI,这样工作量可以灵活控制。答辩时用信号发生器和示波器对比展示,能清楚说明你的设计思路。踩过的坑是不要一开始就想支持所有协议,先做一两个,把精度和稳定性做好。

我推荐你做FPGA加ARM协同的方案,比如用Zynq或者国产的紫光同创平台,FPGA部分做一个高速数据采集或者简单的数字滤波,ARM端负责配置参数和显示结果。这个题目既有嵌入式交叉的味道,又不会太复杂,因为你不用自己设计整个SoC,只需要在FPGA里写几个硬件加速模块,然后通过AXI总线跟ARM通信。示例如:FPGA做实时均值滤波或FFT,ARM读取结果并显示波形。答辩时可以用串口助手或者QT界面展示数据变化,很能体现工程能力。注意先确认开发板的ARM裸机或Linux例程是否齐全,否则环境搭建会占用太多时间。
发表回答
登录后可在本页底部提交回答
