时间:2024-08-09 来源:网络搜集 关于我们 0
据我了解,目前国内很多大学是没有开设FPGA相关课程的,所以很多同学都是自学,但是自学需要一定的目标和项目,今天我们就去看看常春藤盟校Cornell University 康奈尔大学开设的FPGA项目课程,大部分课程是有源码的,而且和国内使用习惯类似都是Verilog开发,还是很有借鉴意义的。
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/
该项目的目标是使用离散域上的热方程创建交互式热扩散模拟,允许用户在 VGA 屏幕上选择sources和sinks,并在 VGA 屏幕上实时模拟所产生的反应。公众号:OpenFPGA
项目介绍https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/heat_sim/ECE5760_HeatSim.github.io/index.html
视频链接https://www.youtube.com/watch?v=-vn-13N2p3s&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=11
代码链接https://github.com/fran07981/ece5760finalproject
功率估算器的整体设计如下图所示。使用霍尔效应来测量通过内部熔丝输入引脚的电流,并具有约 1.2mΩ 的极低串联电阻,这不会影响提供给 FPGA 的电流。为了加速调试,该项目还实现了七段显示器来显示测量的电流。公众号:OpenFPGA
项目介绍https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/yj253_yl3524/yj253_yl3524/project_details.html
视频链接https://www.youtube.com/watch?v=2ISn8jLiJNo&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=1
代码链接https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/yj253_yl3524/yj253_yl3524/project_code.html
气体模拟是通过用打印在 VGA 显示器上的像素来表示粒子来完成的,粒子之间的碰撞表示为遵循理想气体定律。改变几个参数(压力、盒子体积、颗粒数量和温度)并观察对颗粒行为的影响。
项目介绍https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/afp65_sje57/afp65_sje57/index.html
视频链接https://www.youtube.com/watch?v=hCmxI-XthL8&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=3
代码链接https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/afp65_sje57/afp65_sje57/index.html
Frisch-Hasslacher-Pomeau (FHP) 模型是一种晶格气体自动机,是一类用于模拟流体动力学的元胞自动机。它首先由 U. Frisch、B. Hasslacher 和 Y. Pomeau 于 1986 年推出,是对早期 Hardy-Pomeau-de Pazzis (HPP) 模型的改进。FHP 模型采用六方晶格,与 HPP 模型的方晶格相比,它更能近似各向同性。晶格上的每个交叉点都可以被认为是一个可以包含粒子的单元。这些粒子可以沿着六方晶格的六个方向移动到相邻的细胞。
项目介绍https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/ks977_zw652_zl647/ks977_zw652_zl647/index.html
视频链接https://www.youtube.com/watch?v=VQENUEkmY2I&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=6
代码链接https://github.com/zechenwang00/ECE-5760-FHP
Dancing Boids 使用 boid(类鸟对象)群体模拟来可视化音乐频率,其中群体根据音乐的频率分散或聚集。公众号:OpenFPGA
项目介绍https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/yw575_mk2592_rc627/yw575_mk2592_rc627/index.html
视频链接https://www.youtube.com/watch?v=6UIeqExGgog&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=13
代码链接https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/yw575_mk2592_rc627/yw575_mk2592_rc627/index.html#design
项目结合使用 ARM A9 处理器和 DE1 SoC FPGA,成功模拟了动态 boid(“bird-oid object”)聚集模式,重点是优化周期要求和执行时间。
项目介绍https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/yw2464_yl2924_mah426/yw2464_yl2924_mah426/index.html
视频链接https://www.youtube.com/watch?v=Z_ePWHn3OK8&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=8
代码链接https://github.com/Svorpal/FPGA_website/tree/main
项目的目标使用 FPGA是创建一个有趣的重力模拟器。使用标准CPU模拟天体(恒星、行星、小行星等)之间的重力是有限的,因为它只能进行顺序计算,导致仿真时间很长。本项目的目标是通过发送每个天体的信息到FPGA,让它并行计算其他天体之间的相互作用,然后将结果发送回ARM,最后显示在监视器上。
项目介绍https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/raf269_nkg37_tjw234/raf269_nkg37_tjw234/index.html
视频链接https://www.youtube.com/watch?v=I-tN022fdpk&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=5
代码链接https://github.com/rafCodes/GravSim
和上面项目类似。
项目介绍https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/zw543_yz2797_hl992/zw543_yz2797_hl992/index.html
视频链接https://www.youtube.com/watch?v=dYCYFpdHTns&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=14
代码链接https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/zw543_yz2797_hl992/zw543_yz2797_hl992/index.html
探索 FPGA 在多通道音频输入的实时、并行音调转换中的应用。特别是,我们针对电吉他的复调(即多个同时音符)音高转换。
项目介绍https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/cds258_eph48_jwl266/cds258_eph48_jwl266/index.html
视频链接https://www.youtube.com/watch?v=DMSbwtfD8Pw&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=2
代码链接https://github.com/cycfi/nu
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/cp444_xz598/cp444_xz598/index.html
视频链接https://www.youtube.com/watch?v=iJKD-HcfQ8Q&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=9
开发了一种基于硬件的交互式森林火灾模拟器。我们系统的目的不是高精度地模拟森林火灾。
项目介绍https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/zap8_nrb74/zap8_nrb74/index.html
视频链接https://www.youtube.com/watch?v=Bmex5SqS4oE&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=7
代码链接https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/zap8_nrb74/zap8_nrb74/index.html
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/zap8_nrb74/zap8_nrb74/index.html
设计项目的目标是为基于机器学习的面部识别算法设计和创建硬件加速器。公众号:OpenFPGA
设计使用 FPGA 通过 VGA 捕获视频数据来运行。将单帧视频数据发送到芯片上的 ARM 系统,然后计算图像的灰度。该灰度图像是机器学习算法的输入,机器学习算法在能够使用 OpenCV 检测到面部特征的坐标。这包括脸部本身和两只眼睛。然后,这些坐标被发送回 FPGA,此时使用 Verilog 状态机在检测到的眼睛上绘制一副太阳镜。我们还演示了预处理加速器的RTL 模型。该加速器根据源图像计算积分图像的像素值。
项目介绍https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/ajs667_gtz4_nnd25/ece5760_website/index.html
视频链接https://www.youtube.com/watch?v=5JQme-UCKQw&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=4
代码链接https://github.com/ajs667/ece_5760_final_proj/tree/main
项目是一个模拟弹球机,允许用户玩经典的街机弹球机。使用 FPGA 上的开关,玩家可以设置球的初始速度,该速度通过六角形显示屏上的功率条显示。然后,用户按下按钮将球释放到柜子中,球将根据其当前的速度和方向与周围的物体进行交互。玩家可以按下另外两个按钮来控制左右两个拨片,尝试将移动的球保持在柜子中。分数根据球的比赛时长进行记录,当球离开柜子/显示器时游戏结束。
项目介绍https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/sec322_smc447_cc2698/sec322_smc447_cc2698/index.html
视频链接https://www.youtube.com/watch?v=DIWOYmKIbhQ&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=10
代码链接https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/sec322_smc447_cc2698/sec322_smc447_cc2698/index.html
将其包装到可以在任何项目中导入和使用的 Qsys 模块中,并使用 HPS 按顺序对数据字和触发器进行后处理使逻辑分析仪输出可以在波形查看器(例如 GTKWave)中查看。
项目介绍https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/kae87ber72gly6/kae87ber72gly6/index.html
视频链接https://www.youtube.com/watch?v=lsF0CcdYNg4&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=12
代码链接https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/kae87ber72gly6/kae87ber72gly6/HOLA_V2.zip
该游戏允许用户尽可能准确地弹奏“吉他”以及他们最喜欢的歌曲以获得高分。用户控制器“吉他”由五个键组成:绿色、红色、黄色、蓝色和橙色,以及一个用于“弹奏”音符。玩游戏时,彩色音符会向屏幕底部下降,用户必须在指定的时间按下相应音符的按键。
项目介绍https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/ki88_djl357_jtb237/ki88_djl357_jtb237/index.html
视频链接https://youtu.be/qhmE1IepYgg
代码链接https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/ki88_djl357_jtb237/ki88_djl357_jtb237/index.html
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/az292_kw456_lh479/az292_kw456_lh479/index.html
视频链接https://youtu.be/id8X-yvV6cw
代码链接https://github.com/AngelaZou2000/ECE5760/tree/master
使用 Verilog 系统地开发了简单的卷积神经网络。
项目介绍https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/zx83_kh548_ys566/final_report.html
视频链接https://youtu.be/c1UtKyA6q7Q
代码链接https://github.com/Min4649/CNN-FPGA-Implementation
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/sgp62_rbm244_hlg66/sgp62_rbm244_hlg66/index.html
视频链接https://youtu.be/cTo0VKEKx4s
代码链接https://github.com/sgp62/ECE5760/tree/gh-pages
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/pjm326_pm623_tji8/pjm326_pm623_tji8/index.html
视频链接https://youtu.be/mpDcrlHr-kI
代码链接https://github.com/PMogalipuvvu/MolecularDynamicsSimulation
项目很多,从2016~2023年。应该有一部分项目没有展现出来,大部分都有视频介绍,但是我看了一些视频,都是简单演示一下功能,并没有设计思路,所以需要自行查看项目文档。今天只更新一部分,关注我,后续带来更多项目