点击蓝字关注我们
关注、星标公众号,精彩内容每日送达
来源:网络素材
看看国外大学的FPGA开发项目
据我了解,目前国内很多大学是没有开设FPGA相关课程的,所以很多同学都是自学,但是自学需要一定的目标和项目,今天我们就去看看常春藤盟校Cornell University 康奈尔大学开设的FPGA项目课程,大部分课程是有源码的,而且和国内使用习惯类似都是Verilog开发,还是很有借鉴意义的。
项目链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/
项目介绍
Fall 2010 开发板 CycloneII
Falling Sand Game - Falling Sand 游戏
2D 粒子模拟器模拟“落沙”的某些动力学。
项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ss868/ss868/index.html
hackaday项目介绍
http://hackaday.com/2010/12/15/falling-sand-game-on-and-fpga/
视频链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ss868/ss868/ss868_p1.avi
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ss868/ss868/ss868_p2.avi
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ss868/ss868/ss868_p3.avi
代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ss868/ss868/index.html
Video Realtime Cartoonifier - 实时视频卡通化
项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/kaf42_jay29_teg25/teg25_jay29_kaf42/index.html
视频链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/kaf42_jay29_teg25/Demo_1_tom.MOV
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/kaf42_jay29_teg25/Demo_2_jeff_line.MOV
代码链接
Virtual Paint - 虚拟绘画
虚拟绘画是可用于使用手部动作和手指(带有彩色带)在任何平面(例如墙壁)上绘制彩色图片的系统。该项目的灵感来自于麻省理工学院媒体实验室完成的第六感项目(http://www.pranavmistry.com/projects/sixthsense/#ABOUT),使用不同的手势检测和颜色分割技术,在手持计算设备上运行的软件执行各种不同的任务,例如在空中做笔记、阅读带有投影的新闻报纸视频、用手动作拍摄照片,甚至在墙上画画。因此,在硬件和时间的限制下,我们实现了虚拟绘画。
项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/dj238_ssb224_aa764/MyWebSites/index.htm
视频链接
http://www.youtube.com/watch?v=-U31GxYNMEA
http://www.youtube.com/watch?v=FbLjXyvnrO0
代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/dj238_ssb224_aa764/Virtual%20Paint.zip
Stereographic Depth Mapping - 立体深度映射
随着立体电视、电脑显示器以及 3D 电影的兴起,三维视觉感知变得越来越普遍。通过在图像中添加基于硬件的深度信息,该技术可以开辟各种实际应用。一个例子是一种电子乐器,其中所演奏的音符的音高或音调取决于弦或条相对于深度相机放置的距离。我们的目标是使用两个完全由硬件处理的相同相机来设计一种非常高效且具有成本效益的实时视频深度相机。
项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/pfk5_jk459/pfk5_jk459/index.html
视频链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/pfk5_jk459/Stereo_1.MOV
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/pfk5_jk459/depth_image.jpg
代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/pfk5_jk459/pfk5_jk459/code/
Fractal Landscape - 分形景观
本项目随机生成 2D 分形景观并创建该景观的 3D 投影图像。为了实现这一点,我们使用了菱形平方算法,该算法通常用于在计算机中创建高度图。我们在 verilog 中实现了菱形平方算法 8 次迭代,将生成分形景观的二维高度图。然后添加了高斯模糊算法使高度图更加真实。最后,我们添加了一种算法,使用正交投影从 2D 高度图创建 3D 投影视图。该算法以自定义时间间隔扫描 0 到 90 度,并显示每个角度的正交投影。
项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/tss64_rs423/rs423_tss64/index.html
视频链接
http://www.youtube.com/watch?v=jCGw_JQi2nA
http://www.youtube.com/watch?v=lr58PStpBD4
代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/tss64_rs423/rs423_tss64/code/rs423_tss64_FractalLandscape_files.zip
3D pong with video overlay - 带视频叠加的 3D pong
POTION 是一种动作控制的游戏系统,允许两名玩家正面交锋,或者允许一名玩家与 AI 争夺乒乓球冠军。
项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ssc88_yl477/ssc88_yl477/index.html
hackaday项目介绍
http://hackedgadgets.com/2010/12/15/altera-de2-based-3d-pong-game/
视频链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ssc88_yl477/game_1.MOV
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ssc88_yl477/game_2.MOV
代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ssc88_yl477/ssc88_yl477/source/potion_slave.zip
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ssc88_yl477/ssc88_yl477/source/potion_master.zip
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ssc88_yl477/ssc88_yl477/source/potion_software.zip
Music Visualization - 音乐可视化
该项目的主要重点和测试是通过计算机播放音乐。该项目使用的 FPGA 板、板载音频编解码器和带有外部显示器的 VGA 显示驱动器。该设置让用户在板上线路上输入音乐,然后我们项目的逻辑将根据传入的信号在 VGA 端口上输出视觉效果。
项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/der34_mpl56/mpl56_der34/musicvisualization.html
视频链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/der34_mpl56/music_1.MOV
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/der34_mpl56/music_4.MOV
代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/der34_mpl56/mpl56_der34/musicvisualization.html
PID temperature controller - PID温度控制器
该项目的目标是在 FPGA 上实现用于控制应用的数字 PID 控制器。我们设计了一个控制器来跟踪和维持水箱的设定点温度,以尽可能低的超调,同时保持最大可能的上升时间。使用多个控制器和加热器来有效地控制温度。我们使用 MATLAB 设计控制器并根据实验数据开发系统模型。加热器使用来自 FPGA 的 PWM 信号进行驱动,该信号使用 BUZ 73 晶体管进行放大。
项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ma638_ca325_as2454/ma638_ca325_as2454/index.html
代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ma638_ca325_as2454/ma638_ca325_as2454/
WAV player - WAV播放器
我们实现了一个功能齐全的音乐播放器,能够通过 FPGA 开发板播放音乐文件。
项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/vs327_rw363/WAV_player/ECE%205760.htm
代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/vs327_rw363/WAV_player/c%20code.zip
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/vs327_rw363/WAV_player/DE2_SD_Card_Audio.v
Word recognition - 实时语音识别引擎
实现了一个实时语音识别引擎,将来自麦克风的时域信号作为输入,并对样本执行频域特征提取识别正在说出的单词。
项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/np276_ksp55_aj355/np276_ksp55_aj355/index.html
代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/np276_ksp55_aj355/np276_ksp55_aj355/index.html
总结
项目很多,从2006~2023年,应该有一部分项目没有展现出来,大部分都有视频介绍,但是我看了一些视频,都是简单演示一下功能,并没有设计思路,所以需要自行查看源码中的文档。