当前位置:   article > 正文

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

fpga能做的简单项目

9c115d964b641090515c976a22d4ef13.png

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

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

项目链接

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

项目介绍

2007 开发板 CycloneII

System-on-Chip Toolkit - 片上系统工具包

该项目是为软件和硬件工具包设计,目标是实现功能齐全的片上计算机系统。需要准确设计所有不同的子系统和体系结构系统,这些子系统和体系结构系统必须组合在一起才能使程序在这样的系统上运行。下面是系统的演示配置图,该系统支持用户通过 PS2 键盘输入和通过 VGA 显示器输出。

9e896afde19c22cb76d2a21360d949c7.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/ib54/SysToolkitwebsite/index.html

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/ib54/SysToolkitwebsite/SysOnChipToolkit.zip

FPGA BBQ Stick video game - BBQ 串视频游戏

84ebda251cc0a501c6a078d8e4467ec7.png

一款由 USB 鼠标控制的名为 BBQ 串的视频游戏。这款视频游戏背后的中心思想是借助烧烤棒捕捉美味的烧烤肉丸。你抓到的越多,你就会变得越胖,得分也越高。

4f71f3fd57a96cf31a7dab9c6bbfc97c.png dc62145c0230ad8c29c457dd162df391.png e6dd78d32be52b3fb63083edb0fb95c8.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/ms882_yc292/ms882_yc292/appendix.htm

  • 视频链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/pictures/BBQstick.MP4

  • 代码链接

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

Real time Edge extraction - 实时边缘提取(Sobel)

3581e03ad111e3857d588d5294c8a706.png a95b14d0f45c7f360e7f9ddf82d0d4e1.png

实时SOBEL边缘检测。

f69d661ab05705c123a9ed6bb49372ba.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/hc454_gtc32/hc454_gtc32/index.html

  • 视频链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/pictures/EdgeDetection.MP4

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/hc454_gtc32/hc454_gtc32/#appendix

Real time Spectrograph - 实时频谱仪

实时频谱图项目可以计算音频信号的频谱并在标准 VGA 监视器上显示。

e55f96c58be17b619e07c8795c25529d.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/tjs49aw259/index.html

  • 视频链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/pictures/SpectroTedCompressed.MP4

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/pictures/SpectrogramCompressed.MP4

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/tjs49aw259/#appendix

Real time, Single Image, Random Dot Stereogram - 实时、单图像、随机点立体图

444b16d80ecd60806b55eafeaaf2fec1.png

一个实时、单图像、随机点立体图(SIRDS)生成平台。我们的平台可以从深度图(记录到图像中每个像素的距离)生成 3D 立体图像。

f6dc7b903ca08810eba1f3130113f558.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/awh24_mdj23/awh24_mdj23/index.html

  • 视频链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/pictures/Stereogram.MOV

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/pictures/Stereogram.jpg

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/awh24_mdj23/awh24_mdj23/sirds.v

Real time audio pitch shifter - 实时音频变调器

b6eaa35a15798729956dd9887f51db9b.png

基音移位可以使用各种数字音频处理技术在FPGA上实时执行。可以对信号进行快速傅立叶变换(FFT),在频域中对其进行更改,然后进行逆FFT。这被称为频域基音偏移。

  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/dah64_dp239/index.htm

  • 视频链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/pictures/PitchShifter.MP4

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/dah64_dp239/index.htm

FPGA Paint - FPGA 绘画

a5b9cd5d245d84d9e8352d906d85aaf0.png

使用 NIOS II CPU 进行鼠标移动检测和 VGA 进行显示,在 FPGA 实现画笔应用程序。

ed01bb51b5622dc46fb2a59eb25db595.png 8ccd744c22ee45ab2fc9b33ce3f3e30a.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/rc437_mj288/rc437_mj288/rc437_mj288/index.html

  • 视频链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/pictures/RanjaniCompressed.MP4

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/rc437_mj288/rc437_mj288/rc437_mj288/source/PaintBrush.zip

Parallelized Knuth-Morris-Pratt Search Algorithm - Knuth-Morris-Pratt 搜索算法并行化

99015bd8b6c9f995dc9460beb30c0765.png

Knuth-Morris-Pratt 算法(算法导论中有详细介绍)的高度并行化和模块化版本.

  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/cd247_rmz8/cd247_rmz8/index.html

  • 在线示例

http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/cd247_rmz8/cd247_rmz8/rmz8cd247project.zip

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/cd247_rmz8/cd247_rmz8/rawpacket.zip

UDP Network Hardware - UDP 网络硬件

完整硬件 UDP协议栈的实现。包括完整的 IPv4 协议和用于 MAC 地址解析的 ARP 协议。

a6215f89abb1134fabb33d80a81ee371.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/mjk64_hmm32_jdp45/mjk64_hmm32_jdp45/index.html

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/mjk64_hmm32_jdp45/mjk64_hmm32_jdp45/#appa

3D WireMesh Generator - 3D 线网格生成器

c21ecb40538f79a398da7f24453e823c.png bb0ad0e267fdcb3c98961b24b452c3c7.png

FPGA 上创建硬件转换单元和 3D 光栅化系统。

31c6723e5823635a3f847471ce263f7b.png 7af09a871000bf5a748768b809513d4c.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/ms883_sa453/ms883_sa453/index.html

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/ms883_sa453/ms883_sa453/index.html#h5

Light Source Motion Tracking - 光源运动跟踪

f7b6b6e2fefc47302d6e779c2049952f.png

准确检测运动并报告相机视图中移动光源的速度。

1691438fca6bad80979348e4e41d9760.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/pl328/pl328/index.html

  • 代码链接

http://home.comcast.net/~pinghonglu/DE2_CCD_detect_noos.zip

Laser tracker - 激光跟踪仪

ef219347a97db0c7314a187320fcefae.png bf0e776caafc26164fb9fdf72c57f042.png

使用 FPGA 锁定并跟踪激光笔或小型光源。

9d8728e4cffaa78116761ae8f1cc96c9.png 631f7af7c44ad9e2eb45d07d427e7b81.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/bjc54_wh84/bjc54_wh84/index.html

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/bjc54_wh84/bjc54_wh84/code/laser_tracker.zip

FPGA Jezzball - FPGA 杰兹球

2fadf2d538664dba927b5c9f0e2ec626.png

游戏的目标是通过画线切断球可以漫游的区域,将弹跳的球困在尽可能小的空间内。要玩这个游戏,将鼠标移动到想要绘制线条的位置。如果单击鼠标左键,则会从该点绘制一条垂直线;如果单击右键,则会绘制一条水平线。如果该线到达两侧边界而球未击中该线,则该线将成为球的新边界。

a96dca4faaebd310136efcfee849956f.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/nry6/nry6/index.html

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/nry6/nry6/DE2_NIOS_HOST_MOUSE_VGA.zip

FPGA DSO - 数字示波器

97be53ef7190d6d4f518aa69a5cef107.png

在 FPGA 上创建数字示波器。

4e7363db251a5d1140c3083387761c96.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/chc58/index.htm

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/chc58/DSO.zip

Programmable Discrete Graphics Hardware - 可编程GPU

创建一个可编程图形处理单元(GPU),可以在硬件中编码,甚至可以生成对象和边缘。

  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/bc226/576_report05_website/index.html

  • 文档介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/bc226/576_report05_website/576_report05.pdf

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/bc226/576_report05_website/576_lab5.zip

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/bc226/576_report05_website/576_lab5_dev.zip

SimpleGPU - 简单GPU

5cbe046ecae5136ac77e83d604c67749.png 72d79384ef080254750dfa93f6e06328.png

创建一个简单的图形处理器(GPU)。能够使用 NIOS 2 编写简单的软件命令,通过硬件和辅助支持软件将其显示在显示器上。

6e76bf78b96ae673cea74af5e44f66b7.png 97be7e8a0ed9e5fcd14348896bce9d4c.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/jas328_asl45/jas328_asl45/index.htm

  • 代码链接

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

3D wiremesh - 3D 丝网

493a2de2fc08aa5886561beab4b617b8.png 2c1fc46580b2ab96cb52a304c19ad409.png

尝试使用 VGA 在 320 x 240 像素分辨率下显示 FPGA 上实现的超级任天堂娱乐系统 (SNES) 中游戏 Starfox(失败了,代码也删除了)。

5e94d4563da28aa0600d695449caab09.png 2089be1a16cb25359fd185dfaae43084.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/hkc2_zk29/hkc2_zk29/index.htm

  • 代码链接

总结

项目很多,从2006~2023年,应该有一部分项目没有展现出来,大部分都有视频介绍,但是我看了一些视频,都是简单演示一下功能,并没有设计思路,所以需要自行查看源码中的文档。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/773053
推荐阅读
相关标签
  

闽ICP备14008679号