- 看看国外大学的FPGA开发项目
据我了解,目前国内很多大学是没有开设FPGA相关课程的,所以很多同学都是自学,但是自学需要一定的目标和项目,今天我们就去看看常春藤盟校Cornell University 康奈尔大学开设的FPGA项目课程,大部分课程是有源码的,而且和国内使用习惯类似都是Verilog开发,还是很有借鉴意义的。
项目链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/
项目介绍
Spring 2016 开发板 CycloneIV
Ambient light from TV signal (video) (rgb-hsv code)-电视环境照明(RGB转HSV)
使用 NTSC 视频信号以低功耗方式模拟电视的灯光效果。为了实现这一功能,系统必须能够跟上电视信号的闪烁和更新速度,因此需要专用的实时处理器-FPGA。该项目的目标是创建一种可以完成此任务的通用算法,并使用 PWM 输出来驱动控制 RGB LED 电路。用户可以发送任何 NTSC 视频信号,并在视频主色发生变化时看到 LED 上的即时变化。
- 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/svr24/svr24/index.html
- hackaday项目介绍
http://hackaday.com/2016/05/20/using-an-fpga-to-generate-ambient-color-from-video/
- 视频链接
https://www.youtube.com/watch?v=jbla_nbcfxk&list=PL2E0D05BEC0140F13&index=1
- 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/svr24/svr24/code/ece5760-final-project.zip
Camera-based Finger tip detection-基于摄像头的指尖检测
这是一个基于手指检测的项目,使用摄像头来检测用户手指相对于VGA屏幕的位置,并在屏幕上显示光标,以达到伪触摸屏的效果。VGA屏幕上显示一个棋盘,通过触摸棋盘,用户可以在棋盘上放置一个棋子,进行“五连棋子”游戏,将任意五个棋子连成一排,用户就可以赢得比赛。
- 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/jc2954_zy259/jc2954_zy259/jc2954_zy259.html
- hackaday项目介绍
http://hackaday.com/2016/06/04/real-time-fpga-finger-detection/
- 视频链接
https://www.youtube.com/watch?v=2rWrv-5ZufY
- 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/jc2954_zy259/jc2954_zy259/code/ECE5760_Final.qar
Audio signal visualization-音频信号可视化
制作了一个音乐可视化器,通过 Altera DE2-115 上的线路输入播放的歌曲的节奏和频谱内容,图形模块利用此信息来渲染向用户显示输入歌曲的频谱内容的帧,并在屏幕上为四个舞者制作动画。当检测到音乐时,模块将采用最低频率滤波器的输出来解释歌曲的节拍,并将该信息传播到图形模块以控制舞者的动画。
- 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/cwa37_nml45/cwa37_nml45/cwa37_nml45/index.html
- hackaday项目介绍
http://hackaday.com/2016/06/16/no-frame-buffer-for-fpga-vga-graphics/
- 视频链接
https://www.youtube.com/watch?v=RYJPcRr-yeI&list=PL2E0D05BEC0140F13&index=1
- 代码链接
https://github.com/carchard/ECE5760_Epiphyte
RGB LED Matrix Audio Visualizer - RGB LED 矩阵音频可视化器
在 64x64 LED 矩阵上设计了一个音频可视化器。我们的目标是创建一个能够实时响应输入音乐源的系统。显示器有多种不同的动画模式供用户选择:条形、球和粒子。这些不同的场景为用户创造了愉快的聆听体验,因为他们有某种图形显示来伴随着音乐。
- 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/sgm82_skg73_mm889/sgm82_skg73_mm889/sgm82_skg73_mm889/index.html
- hackaday项目介绍
http://hackaday.com/2016/06/13/fpga-powers-blazingly-fast-led-matrix-audio-visualizer/
- 视频链接
https://www.youtube.com/watch?v=swapwjI-fT8&index=1&list=PL2E0D05BEC0140F13
- 代码链接
https://github.com/sm11963/led-matrix-visualizer
Levitating a ball-悬浮球
该项目的目标是在 Altera DE2-115 FPGA 板上构建闭环控制系统,利用磁悬浮技术悬浮铁球。我们创建的系统使用电磁体拾取铁球并将其悬浮在水平静止点和电磁体金属芯之间的空中。
- 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/crl233_gp348_nds55/gp348_crl233_nds55/gp348_crl233_nds55/index.html
- hackaday项目介绍
http://hackaday.com/2016/06/13/fpga-powers-blazingly-fast-led-matrix-audio-visualizer/
- 视频链接
https://vimeo.com/167056844
- 代码链接
Nintendo sound unit-任天堂声音单元
实现了一个模拟任天堂系统的音频处理单元(APU)的音频系统。通过将 APU 的 Verilog 实现与 SD 读卡器和 6502 处理器的软件模拟器相结合,使用系统来读取和播放视频游戏原声带和原始芯片曲封面。
- 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/avh34_sz296/ece5760_Final_Project_avh34_sz296/ece5760_Final_Project_avh34_sz296/ece5760.Final.Project.Report/ece5760.Final.Project.Report.html
- hackaday项目介绍
http://hackaday.com/2016/06/19/recreating-chiptunes-in-verilog/
- 视频链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/avh34_sz296/ece5760_Final_Project_avh34_sz296/ece5760_Final_Project_avh34_sz296/ece5760.Final.Project.Report/mp3/Shovel.Knight.mp3
- 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/avh34_sz296/ece5760_Final_Project_avh34_sz296/ece5760_Final_Project_avh34_sz296/ece5760.Final.Project.Report/code/nes_apu.zip
Gesture Tetris-手势控制俄罗斯方块
俄罗斯方块于 1984 年发布,从那时起就成为一款标志性游戏。使用 VGA 作为输出和能够检测肤色的摄像头,用户可以使用手势控制来玩游戏。屏幕有四个主要区域。这些区域控制块是否向右、向左、旋转或向下移动两倍的速度。通过过滤视频流并在 YUV 颜色空间中查找特定类型的颜色,硬件可以识别用户的手何时进入四个部分之一并向游戏发送信号,指示它如何处理该块。该游戏包括允许玩家向左/向右移动棋子或旋转、倒计时直到游戏结束以及跟踪玩家得分的功能。
- 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/rjb297_map379_cs795/rjb297_map379_cs795/rjb297_map379_cs795/index.html
- hackaday项目介绍
http://hackaday.com/2016/05/28/hand-gestures-play-tetris/
- 视频链接
https://www.youtube.com/watch?v=v-qqfSnmufg
- 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/rjb297_map379_cs795/rjb297_map379_cs795/rjb297_map379_cs795/tetris_code.zip
Cricket 2007 Auto-batter-板球 2007 自动击球
我们在 DE1-SOC 上创建了一个自动击球手游戏,可以玩模拟游戏板球 cricket 07。该游戏在 PC 上运行,VGA 输出路由到 FPGA,FPGA 对传入帧执行图像处理,然后发送按键命令传回 PC。最终,FPGA AI能够击败游戏内置AI。
- 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/mjf332_mkp53_sm893/mjf332_mkp53_sm893/index.html
- hackaday项目介绍
http://hackaday.com/2016/05/23/computers-beating-computers-at-cricket/
- 视频链接
https://www.youtube.com/watch?v=TcaY5SJkQ9Y
- 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/mjf332_mkp53_sm893/mjf332_mkp53_sm893/ECE_5760_Cricket_AI_files/Cricket_2007_AutoBatter.zip
Evolution game - 进化游戏
设计了一款游戏,可以在其中扮演一个小而简单的世界之神。玩家可以在 320x240 的小世界中调整环境参数,这反过来又会影响世界上的生物不断进化并相互作用。网格中的每个位置都有自己的位置环境参数,并根据这些参数,生物进食、狩猎、漫游、交配或死亡。
- 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/msm294_tj93/msm294_tj93/index.html
- 视频链接
无
- 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2016/msm294_tj93/msm294_tj93/index.html
总结
项目很多,从2016~2023年,应该有一部分项目没有展现出来,大部分都有视频介绍,但是我看了一些视频,都是简单演示一下功能,并没有设计思路,所以需要自行查看源码中的文档。
原文:OpenFPGA
作者:碎碎思
相关文章推荐
更多FPGA干货请关注FPGA的逻辑技术专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。