碎碎思 · 2023年12月18日

国外大学生都用FPGA做什么项目(一)

image.png

  • 看看国外大学的FPGA开发项目

据我了解,目前国内很多大学是没有开设FPGA相关课程的,所以很多同学都是自学,但是自学需要一定的目标和项目,今天我们就去看看常春藤盟校Cornell University 康奈尔大学开设的FPGA项目课程,大部分课程是有源码的,而且和国内使用习惯类似都是Verilog开发,还是很有借鉴意义的。

项目链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/

项目介绍

Spring 2023 开发板 CycloneV DE1-SoC

Heat equation simulator-热方程模拟器

该项目的目标是使用离散域上的热方程创建交互式热扩散模拟,允许用户在 VGA 屏幕上选择sources和sinks,并在 VGA 屏幕上实时模拟所产生的反应。公众号:OpenFPGA

image.png

  • 视频链接
https://www.youtube.com/watch?v=-vn-13N2p3s&list=PLDqMkB5cbBA7nUwrxsLgtrOsce9UgJXJb&index=11
  • 代码链接
https://github.com/fran07981/ece5760finalproject
FPGA based power estimator-基于 FPGA 的功耗估算器

功率估算器的整体设计如下图所示。使用霍尔效应来测量通过内部熔丝输入引脚的电流,并具有约 1.2mΩ 的极低串联电阻,这不会影响提供给 FPGA 的电流。为了加速调试,该项目还实现了七段显示器来显示测量的电流。

image.png

  • 项目介绍
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
HPP gas simulator-HPP 气体模拟器

气体模拟是通过用打印在 VGA 显示器上的像素来表示粒子来完成的,粒子之间的碰撞表示为遵循理想气体定律。改变几个参数(压力、盒子体积、颗粒数量和温度)并观察对颗粒行为的影响。

image.png

  • 项目介绍
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
FHP gas Cellular Automaton on FPGA-FPGA 上的 FHP 气体晶格自动机

Frisch-Hasslacher-Pomeau (FHP) 模型是一种晶格气体自动机,是一类用于模拟流体动力学的元胞自动机。它首先由 U. Frisch、B. Hasslacher 和 Y. Pomeau 于 1986 年推出,是对早期 Hardy-Pomeau-de Pazzis (HPP) 模型的改进。FHP 模型采用六方晶格,与 HPP 模型的方晶格相比,它更能近似各向同性。晶格上的每个交叉点都可以被认为是一个可以包含粒子的单元。这些粒子可以沿着六方晶格的六个方向移动到相邻的细胞。

image.png

  • 项目介绍
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-跳舞的机器人

Dancing Boids 使用 boid(类鸟对象)群体模拟来可视化音乐频率,其中群体根据音乐的频率分散或聚集。

image.png

image.png

  • 项目介绍
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
FPGA accelerated boid algorithm-FPGA 加速 boid 算法

项目结合使用 ARM A9 处理器和 DE1 SoC FPGA,成功模拟了动态 boid(“bird-oid object”)聚集模式,重点是优化周期要求和执行时间。

image.png

  • 项目介绍
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
2D N-Body Gravity Simulator-2D N-Body重力模拟器

项目的目标使用 FPGA是创建一个有趣的重力模拟器。使用标准CPU模拟天体(恒星、行星、小行星等)之间的重力是有限的,因为它只能进行顺序计算,导致仿真时间很长。本项目的目标是通过发送每个天体的信息到FPGA,让它并行计算其他天体之间的相互作用,然后将结果发送回ARM,最后显示在监视器上。

image.png

image.png

  • 项目介绍
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
N-body Gravity Simulator-N-body重力模拟器

和上面项目类似。

image.png

  • 项目介绍
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
Real-Time Polyphonic Pitch Shifter for Electric Guitar-电吉他实时复调音高变换器

探索 FPGA 在多通道音频输入的实时、并行音调转换中的应用。特别是,我们针对电吉他的复调(即多个同时音符)音高转换。

image.png

  • 项目介绍
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
Sobel Edge Detection on FPGA-FPGA 上的 Sobel 边缘检测

image.png

  • 项目介绍
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
Interactive Hardware Based Forest Fire Simulator-基于交互式硬件的森林火灾模拟器

开发了一种基于硬件的交互式森林火灾模拟器。我们系统的目的不是高精度地模拟森林火灾。

image.png

  • 项目介绍
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
FILTERS AND LENSES USING OPENCV-使用 OPENCV 的滤镜和镜头

设计项目的目标是为基于机器学习的面部识别算法设计和创建硬件加速器。

设计使用 FPGA 通过 VGA 捕获视频数据来运行。将单帧视频数据发送到芯片上的 ARM 系统,然后计算图像的灰度。该灰度图像是机器学习算法的输入,机器学习算法在能够使用 OpenCV 检测到面部特征的坐标。这包括脸部本身和两只眼睛。然后,这些坐标被发送回 FPGA,此时使用 Verilog 状态机在检测到的眼睛上绘制一副太阳镜。我们还演示了预处理加速器的RTL 模型。该加速器根据源图像计算积分图像的像素值。

image.png

image.png

  • 项目介绍
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
Simulated Pinball Machine-模拟弹球机

项目是一个模拟弹球机,允许用户玩经典的街机弹球机。使用 FPGA 上的开关,玩家可以设置球的初始速度,该速度通过六角形显示屏上的功率条显示。然后,用户按下按钮将球释放到柜子中,球将根据其当前的速度和方向与周围的物体进行交互。玩家可以按下另外两个按钮来控制左右两个拨片,尝试将移动的球保持在柜子中。分数根据球的比赛时长进行记录,当球离开柜子/显示器时游戏结束。

image.png

  • 项目介绍
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
ADIOS - A Deployable Internal OScilloscope-ADIOS - 可部署到FPGA内部的示波器

将其包装到可以在任何项目中导入和使用的 Qsys 模块中,并使用 HPS 按顺序对数据字和触发器进行后处理使逻辑分析仪输出可以在波形查看器(例如 GTKWave)中查看。

image.png

  • 项目介绍
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

Spring 2022 开发板 CycloneV DE1-SoC

Guitar Hero on DE1-SOC-DE1-SOC 上的吉他英雄

该游戏允许用户尽可能准确地弹奏“吉他”以及他们最喜欢的歌曲以获得高分。用户控制器“吉他”由五个键组成:绿色、红色、黄色、蓝色和橙色,以及一个用于“弹奏”音符。玩游戏时,彩色音符会向屏幕底部下降,用户必须在指定的时间按下相应音符的按键。

image.png

image.png

  • 项目介绍
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
Bombe Machine-炸弹机

image.png

  • 项目介绍
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
FPGA Based Simple CNN MNIST Digit Classifier-基于 FPGA 的简单 CNN MNIST 数字分类器

使用 Verilog 系统地开发了简单的卷积神经网络。

image.png

  • 项目介绍
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
Diamond Square Fractal Landscapes-钻石方形分形景观

image.png

image.png

  • 项目介绍
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
2D Molecular Dynamics Simulation using Leonard Jones-使用 Leonard Jones 进行二维分子动力学模拟

image.png
image.png

  • 项目介绍
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年。应该有一部分项目没有展现出来,大部分都有视频介绍,但是我看了一些视频,都是简单演示一下功能,并没有设计思路,所以需要自行查看项目文档。今天只更新一部分,关注我,后续带来更多项目

原文:OpenFPGA
作者:碎碎思

相关文章推荐

更多FPGA干货请关注FPGA的逻辑技术专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
10599
内容数
561
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息