嵌入式学习ing
其实可以考虑一些交叉领域。比如用FPGA做实时控制系统——机械臂控制或者电机驱动。需要设计数字滤波器、PID控制器、PWM生成等模块。
这个方向能展示你软硬件协同设计的能力,因为通常需要配合嵌入式处理器。项目可以基于Zynq或MicroBlaze来做。
资源推荐Xilinx的控制系统IP库,以及MATLAB/Simulink的HDL Coder。做这个项目能学到很多信号处理和系统建模的知识,而且有实物演示会更吸引人。
其实可以考虑一些交叉领域。比如用FPGA做实时控制系统——机械臂控制或者电机驱动。需要设计数字滤波器、PID控制器、PWM生成等模块。
这个方向能展示你软硬件协同设计的能力,因为通常需要配合嵌入式处理器。项目可以基于Zynq或MicroBlaze来做。
资源推荐Xilinx的控制系统IP库,以及MATLAB/Simulink的HDL Coder。做这个项目能学到很多信号处理和系统建模的知识,而且有实物演示会更吸引人。
考虑下密码学加速?用FPGA实现国密算法或AES-GCM之类的加密模块,优化吞吐量和功耗。这个方向在信息安全领域需求很大。
你可以设计一个支持多种工作模式的加密引擎,并做性能分析。难点在于平衡面积、速度和功耗。
资源方面,NIST有算法标准文档,OpenCores上有一些参考实现。这个项目规模可控,而且能体现算法硬件化的思维。
高速接口方向很实用。可以尝试做基于FPGA的PCIe或DDR4控制器应用。比如设计一个DMA引擎,通过PCIe在主机和FPGA之间高速传输数据。这个方向对时序约束、跨时钟域处理要求很高,很能锻炼人。
学生做的话,建议用开发板自带的IP核,重点放在应用层设计。比如实现一个自定义的数据搬运逻辑。
资源推荐Xilinx的UltraScale+架构手册,还有官方提供的PCIe和DDR4示例工程。这个方向找工作特别有用,很多公司都需要接口开发人员。
存算一体现在很火,但学生阶段完整实现比较难。不过可以做个简化版:用FPGA的Block RAM模拟存算单元,实现一个小的神经网络推理加速器。比如设计一个支持几种操作的处理器,能加速卷积或全连接层。
这个项目能体现你对计算机体系结构和内存层次的理解。资源方面,可以看看ACM FPGA会议上的相关论文,还有GitHub上一些开源的神经网络加速器项目,比如FINN。
关键是设计文档要写清楚架构权衡,这比单纯实现更重要。
自动驾驶的感知预处理确实是个热门方向。比如用FPGA实现激光雷达点云的处理流水线,包括滤波、分割、特征提取。这个项目能展示你处理流数据、设计并行架构的能力。
具体可以这样:用Python生成模拟点云数据,在FPGA里设计几个并行的处理单元,最后输出结果。难点在于如何高效利用BRAM和DSP资源。
推荐看IEEE上关于FPGA加速点云处理的论文,还有Xilinx的Vitis Vision库。虽然挑战大,但做出来会很亮眼。
我最近也在琢磨这个。其实可以看看金融科技领域,FPGA做超低延迟交易系统是刚需。你可以尝试用FPGA实现一个极简的以太网MAC+TCP/IP协议栈,重点优化时序,目标是亚微秒级延迟。这个方向很考验你对网络协议和时序收敛的理解,而且金融公司很认这个。资源的话,可以看看Xilinx的TCP/IP硬核文档,还有OpenCores上的相关项目。
学生阶段做的话,建议从简单的UDP开始,再逐步加复杂功能。