FPGA入门生
别想太复杂,本科毕设关键是把一个点做透。比如就做UART转SPI的控制器,看似简单,但可以深入优化状态机、添加FIFO、做性能分析。资料巨多,容易上手。步骤:明确功能、写Verilog/VHDL、做仿真(自己写testbench)、综合、上板测试。工具用免费的Quartus Lite或Vivado Webpack就行,仿真可以用免费的iverilog+GTKWave。重点是把设计流程走完整,写出规范代码,再做个GUI上位机显示数据,就很完整了。老师喜欢这种扎实的。
别想太复杂,本科毕设关键是把一个点做透。比如就做UART转SPI的控制器,看似简单,但可以深入优化状态机、添加FIFO、做性能分析。资料巨多,容易上手。步骤:明确功能、写Verilog/VHDL、做仿真(自己写testbench)、综合、上板测试。工具用免费的Quartus Lite或Vivado Webpack就行,仿真可以用免费的iverilog+GTKWave。重点是把设计流程走完整,写出规范代码,再做个GUI上位机显示数据,就很完整了。老师喜欢这种扎实的。
推荐一个稍微冷门但有意思的:用FPGA做神经网络加速器,比如实现一个简单的CNN层(如卷积层)。现在AI火,这个题目很前沿。你可以从MNIST手写数字识别做起,用HLS(高层次综合)或纯RTL都行。网上开源项目不少,像Vivado HLS的教程。步骤大概是:学习神经网络基础、选定简化模型、设计硬件架构(考虑并行、流水线)、实现优化、评估性能。需要工具除了Vivado/Quartus,可能还要用Python训练模型。难度可控,因为可以限制规模,体现的技术含量却很高。
接口应用其实很实用,比如做一个基于FPGA的USB 3.0或PCIe的数据采集系统。不过协议比较复杂,建议做简化版,或者用现成IP核。资料方面,Xilinx的PG文档很全,但英文要多啃啃。步骤:先搞通协议基础,然后搭建IP核的测试环境,再设计自己的控制逻辑,最后联调。工具就是Vivado(Xilinx)或Quartus(Intel),可能还要用到ChipScope/SignalTap抓波形。这个方向对时序约束和高速电路理解有帮助,适合想搞硬件的同学。
可以考虑做数字下变频(DDC)或数字上变频(DUC),这是软件无线电里的核心部分,有深度但不算太偏。资料的话,Xilinx和Intel都有相关IP核和应用笔记,可以学习怎么用DSP48单元。步骤上,重点在算法理解、MATLAB浮点建模、定点化、然后写RTL实现。工具除了常规的EDA工具,可能还需要MATLAB/Simulink做算法验证。这个方向对通信原理和数字信号处理要求高一点,但做出来答辩会很出彩。
我去年做的毕设是基于FPGA的实时图像边缘检测系统,感觉挺合适的。用Sobel算子,资料网上很多,从MATLAB仿真到Verilog实现都有参考。难度适中,既能学图像处理又能练FPGA设计。步骤的话,一般是选题、查文献、定方案、写代码、仿真、上板调试、写论文。工具就是Vivado或Quartus,加个仿真工具像ModelSim。记得早点买开发板,我用的是黑金的AX301,带摄像头和显示屏,比较方便。