看看国外大学的FPGA开发项目,据我了解,目前国内很多大学是没有开设FPGA相关课程的,所以很多同学都是自学,但是自学需要一定的目标和项目,今天我们就去看看常春藤盟校Cornell University 康奈尔大学开设的FPGA项目课程,大部分课程是有源码的,而且和国内使用习惯类似都是Verilog开发,还是很有借鉴意义的。
今天介绍完2019年之前的项目,之前的项目详情请查看《国外大学生都用FPGA做什么项目(一)》,项目链接,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/,项目介绍,Spring 2022 开发板 CycloneV DE1-SoC,跟多项目>
https://editor.mdnice.com/?outId=5a521c2baa234432bc31acd5c8f76bdf,Mandelbrot Set Animation rate Optimization-Mandelbrot 设置动画速率优化,通过添加更精细的缩放并引入动画功能来提高渲染器。
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/sjz38_dap263/sjz38_dap263/index.html,视频链接,https://youtu.be/2Gb_gybhv3A,代码链接,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/sjz38_dap263/sjz38_dap263/appendix.html,HPP Cellular Automaton-HPP Cellular自动机,设计、实现并测试了一个 HPP Cellular自动机,它可以在 640 x 480 VGA 屏幕上可视化。HPP 模型是用于模拟气体和液体的基本晶格气体自动机(引自百科)。除了粒子模拟的功能外,系统还支持各种用户交互,以探索多达 120 万个粒子的无限可能性。
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/qd39_kh537_sq85/HPP-cellular-automaton-FPGA/index.html,视频链接,https://youtu.be/qGom1fkaAP0,代码链接,https://github.com/qd39l/HPP-cellular-automaton-FPGA/tree/main,FFT based Landscape Generation-基于 FFT 的景观生成,设计一个自动生成 3D 景观并显示它们的系统。希望包含可移动光源的功能,该光源可以在显示的图像中产生阴影。通过旋转 VGA 屏幕上的风景并改变光线的方向,用户可以随机探索不同的视角。我们的实现利用 FFT 算法将随机输入图像转换为输出图像,其像素值在最终结果中被解释为景观高度。
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/jjw254_lmm343_ag988/ece5760-gh-pages/index.html,视频链接,https://youtu.be/9IEg6CW8-yE,代码链接,https://drive.google.com/file/d/1wjD5AT4hd3rRkt8GshjbtnR-DHFf804R/view,Anaglyph 3D from video input-来自视频输入的立体 3D,通过 FPGA 上的硬件加速创建了逼真、实时的浮雕 3D 视频和相关深度图。
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/jad452_ezw2_edk52/docs/index.html,视频链接,https://youtu.be/WhVD_qxHhO8,代码链接,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/jad452_ezw2_edk52/docs/index.html#appendix,Gesture Based User Interface-基于手势的用户交互接口,开发了一个基于手势的用户界面,它使用 NTSC 摄像头来跟踪特定颜色。允许用户持有魔杖(或任何该颜色的东西)作为实时、非接触式手写笔。视频流和颜色检测算法在硬件上实现。为了展示该项目的多功能性,我们创建了三个(半) 使用这种基于手势的用户界面的迷你游戏。
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/zen3-rmt229-spb228/index.html,视频链接,https://youtu.be/t3wiyY3wj0o,代码链接,https://github.coecis.cornell.edu/spb228/ECE5760_Team18,Fourier Drawing and sound synthesis-傅里叶绘图和声音合成,在这个项目中,我们的目标是使用傅里叶分析和合成在VGA上重绘用户输入的图像并播放图像的声音。当按顺序给出坐标时,傅里叶分析和合成得出近似于用户输入图像的谐波方程。
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/yy796_hh543_ja499/yy796_hh543_ja499/final.html,视频链接,https://youtu.be/RKkkq6O9Xi8,代码链接,https://people.ece.cornell.edu/land/courses/ece5760/DE1_SOC/HPS_peripherials/DSP_index.html,Particle Projectile Simulator-粒子弹丸模拟器,该项目的目的是使用 DE1-SoC 上的 FPGA 模拟粒子射弹系统。该解决方案使用硬件中的运动学方程迭代粒子,并将生成的射弹显示在 640x480 VGA 显示屏上。
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/aei23/FinalWebsite/Index.html,视频链接,https://www.youtube.com/watch?v=7bCqdMEtbe8,代码链接,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/aei23/FinalWebsite/Index.html,Neural net-神经网络,未开放
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/jfw225_klt45/jfw225_klt45/index.html,视频链接,https://youtu.be/w3I1DwIM_Wg,Fall 2020开发板CycloneV SoC,Connect Four AI-AI四子棋,
在 FPGA 上的硬件中创建 Connect Four AI。我们的目标不仅是开发一种对人类玩家具有一定程度挑战的人工智能,而且是加速程序的执行和决策速度,比具有相同行为的基于软件的人工智能快得多。我们的最终结果是一个虚拟的四子棋玩家,其决策与人类玩家的游戏方式惊人相似,因为我们基于直觉开发了最终人工智能所包含的多个逻辑层。
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2020/aht53_mb2532_ra462/websiteStuff/index.html,视频链接,https://youtu.be/0pyqyh4LQd0,代码链接,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2020/aht53_mb2532_ra462/websiteStuff/index.html#appendix,Matrix Multiplication Accelerator-矩阵乘法加速器,
设计一个基于 FPGA 的矩阵乘法加速器,不仅加快了操作速度,还允许卸载执行以释放一般处理器时间。
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2020/bjd86_lgp36/bjd86_lgp36/index.html,视频链接,https://youtu.be/0pyqyh4LQd0,代码链接,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2020/bjd86_lgp36/bjd86_lgp36/index.html,Capital Letter Recognition with Harris Corner-使用 Harris Corner 进行大写字母识别,
Harris 角点检测是一种角点检测算子,通常在计算机视觉系统中用于提取图像的某些类型的特征。它常用于图像配准、3D 重建和对象识别。项目是在 FPGA 上使用Harris算法的字母识别系统。在我们的设计中,用户将通过命令控制台将图像像素阵列发送到HPS,并且该值将通过SRAM与FPGA共享。然后,像素数据将与给定的3x3高斯滤波器矩阵进行卷积,并使用Harris角点方程进行计算,获得每个像素的角点权重。最后,结果数组将与训练数据库进行比较,找到最可能的字母并将答案显示在 VGA 显示屏上。
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2020/hj399_sl3292_jw2597/hj399_sl3292_jw2597/index.html,视频链接,https://www.youtube.com/watch?v=vaEQ_IAY9V8&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=8,代码链接,https://github.com/victorjing1104/ECE5750-Capital-Letter-Recognition-with-Harris-Corner-,Fractal Landscapes-分形景观,
1982 年的《星际迷航 2》使用分形景观来模拟外星球!
在 FPGA 上创建分形景观,并在 VGA 上显示。分形景观是程序生成的景观,以一定程度的随机性进行分形计算,使它们看起来非常自然。
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2020/keb278_ajh322_nl392/keb278_ajh322_nl392/keb278_ajh322_nl392.html,视频链接,https://www.youtube.com/watch?v=2iGEP-gRrzk&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=3,代码链接,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2020/keb278_ajh322_nl392/keb278_ajh322_nl392/DE1_SoC_Computer.v,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2020/keb278_ajh322_nl392/keb278_ajh322_nl392/final_hps.c,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2020/keb278_ajh322_nl392/keb278_ajh322_nl392/diamondsquares.m,Bolero Surround Sound-Bolero 环绕声,
莫里斯·拉威尔的《波莱罗舞曲》是一首由多种乐器承载并沿着同一旋律线传递的作品。该项目旨在重现站在音乐家房间里演奏这部标志性作品片段的体验。用户能够改变乐器的位置并听到它们的部件来自不同方向。VGA 在不同位置绘制仪器,并随着用户移动仪器而更新声音。
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2020/ov37_dms486/ECE5760_FINAL-main/index.html,视频链接,https://www.youtube.com/watch?v=l3B7Ojo7a4g&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=2&t=67s,代码链接,https://github.com/ov37/ECE5760_FINAL,RF Signal Modulation Predictor-射频信号调制预测器,
创建了一个无线电调制分类器,可通过在 FPGA 上实现的卷积神经网络来预测接收到的无线信号的调制方案。
它利用了软件定义无线电(RTL-SDR)——通过 USB 连接到 ARM 处理器——获得本地无线电信号。然后,无线电信号被发送到 FPGA,由 CNN(AM-SSB、WBFM、GFSK)进行分类。此外,信号 Walsh-Hadamard 变换的频谱图被绘制在 VGA 屏幕上,以可视化接收到的信号。
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2020/plm93_yz2625_jo299/plm93_yz2625_jo299/index.html,视频链接,https://www.youtube.com/watch?v=4QyU-ckhWz4&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=7,代码链接,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2020/plm93_yz2625_jo299/plm93_yz2625_jo299/index.html,Graphing L-Systems on the FPGA-在 FPGA 上绘制 L 系统图,
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2020/psk92_mr858_cs968/index.html,视频链接,https://www.youtube.com/watch?v=NIYnzu1di3o&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=5,代码链接,https://github.com/priyakatt/FPGA_L-Systems,F1 Tire Prediction-F1 轮胎预测
在这个项目中为F1车队设计和开发轮胎退化神经网络模型,能够在考虑比赛策略时评估所有车手在比赛期间的轮胎状况。
项目介绍,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2020/sn438_fs383_rs872/sn438_fs383_rs872/index.html,视频链接,https://www.youtube.com/watch?v=883qqANxAV8&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=4,代码链接,https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2020/sn438_fs383_rs872/sn438_fs383_rs872/index.html,总结,项目很多,从2016~2023年,应该有一部分项目没有展现出来,大部分都有视频介绍,但是我看了一些视频,都是简单演示一下功能,并没有设计思路,所以需要自行查看源码中的文档。