-
Let’s take a look at FPGA development projects at international universities
As far as I know, many universities in China do not offer FPGA-related courses, so many students are self-taught. However, self-learning requires certain goals and projects. Today, we will explore the FPGA project courses offered by Ivy League Cornell University. Most courses come with source code, and like the domestic usage habits, they are developed in Verilog, which is quite meaningful for reference.
Project Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/
Project Introduction
Spring 2017 Development Board CycloneV SoC
Realtime pitch shifter

A real-time pitch shifter was designed on the DE1-SoC FPGA, controlled by an ARM core using a GUI. It can perform the following tasks: independently change the pitch of left and right audio outputs through manual pitch adjustment, generate speech harmony audio output with the original speech using left and right audio, and produce time-varying pitch changes by modulating appropriate parameters at different rates. The final product can produce many different speech effects while being controlled through a simple, user-friendly GUI displayed on a VGA monitor.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/jmt329_swc63_gzm3/jmt329_swc63_gzm3/PitchShifter/index.html
-
Hackaday Project Introduction
-
Video Links
-
Code Links
https://github.com/jmt329/PitchShifter
Digital oscilloscope

A SillyScope digital oscilloscope was built using DE1 SoC, which is a 4-channel oscilloscope. Users can control the oscilloscope using HPS. They can control voltage scale, time scale, offset, and trigger channels. Users can also perform ‘mathematical’ operations such as addition and subtraction using two channels. This project uses HPS for user interaction, while FPGA samples the signal and displays it on a VGA screen.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/ijt5_jgf82_jls633/ijt5_jgf82_jls633/sillyscope/index.html
-
Video Links
-
Code Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/ijt5_jgf82_jls633/ijt5_jgf82_jls633/sillyscope/triggered_scope.zip
Big Red Strings: A FPGA Musical Trio

A music player was implemented on DE1-SoC. The design simultaneously uses FPGA and ARM processors. Using the Karplus-Strong algorithm, multiple strings corresponding to three instruments are generated on the FPGA, allowing for the production of different notes. The AC program running on HPS handles file input from a folder containing transcribed scores and controls the speed. A GUI was also generated on the VGA display, allowing users to select preloaded songs to play. The system allows HPS and FPGA to read music and synthesize sounds similar to real instruments.


-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/eli8_sjy33_awx2/ece5760finalproject/ece5760finalproject/index.html
-
Hackaday Project Introduction
-
Video Links
-
Code Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/eli8_sjy33_awx2/ece5760finalproject/ece5760finalproject/files/stringsynth_verilog.zip
Catch Bruce if you Can: A video hand tracking Game

A game named “Catch Bruce if you Can” was designed, which matches the cursor position of the user’s hand coordinate information with a randomly generated image of Professor Bruce. Successfully matching the cursor position with Professor Bruce’s image will increase the score by one point.



-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/amg432_srs383_gkt27/amg432_srs383_gkt27/amg432_srs383_gkt27/ECE5760FinalProject.htm
-
Video Links
-
Code Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/amg432_srs383_gkt27/amg432_srs383_gkt27/amg432_srs383_gkt27/ECE5760FinalProject/DE1_SoC_TV.zip
Character Recognition Using OpenCV on DE1-SOC

This project involves using a speaker, VGA display, and camera. The project is divided into three main parts: recording audio and playing it on the speaker, displaying a real-time video source on the VGA monitor, and being able to capture and save frames from that source, as well as performing word or character recognition using OpenCV. Character and word recognition is based on a template matching technique that compares various template images with actual images to determine the degree of similarity between the templates and the image content. By creating templates for each letter, the system can determine which letters are present.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/fck22_asm356_rr697/fck22_asm356_rr697/fck22_asm356_rr697/index.html
-
Video Links
-
Code Links
https://github.coecis.cornell.edu/asm356/ECE5760-Lab1/tree/master/Project
HPS-powered Logic Analyzer debugging FPGA

The purpose of this project is to build a system that captures and visualizes signals in real-time on a VGA monitor to debug real-time signals in FPGA designs. The system also features a USB mouse interface for zooming in/out and scrolling waveforms.


-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/md874/md874/LogicAnalyzer.htm
-
Hackaday Project Introduction
-
Video Links
-
Code Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/md874/md874/LogicAnalyzer/final_project_5760_hw.zip
Robot Operating System Stereo Vision Accelerator

A stereo camera is a camera that captures three-dimensional images using two or more lenses. Our project transforms the FPGA into a device capable of reducing the time required to generate a stereo image from calibrated image sources. Afterwards, we integrated our system into a ROS node, allowing our hardware to be easily used by any ROS system.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/rk534_ty252_jdf258/rk534_ty252_jdf258/index.html
-
Video Links
-
Code Links
https://github.coecis.cornell.edu/rk534/stereo_cam_node
Julia Set Renderer

This project provides users with an interface through the ssh terminal, where they can input formulas (e.g., z^2 + c) and plot the corresponding Julia set on the VGA screen. Users can use the mouse to pan/zoom the plotted set.
-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/ipb7/ipb7/ipb7/JuliaProcessor.html
-
Video Links
None
-
Code Links
https://github.com/ipburbank/ECE5760-Julia/archive/master.zip
Real-Time Vision-based Object Identification and Tracking

To simulate product variation, our factory “produces” Spree candies, which consist of five different colored hard candies. A servo system controlled by FPGA drives a conveyor belt that feeds the Sprees into the view of an NTSC camera. The FPGA then runs multiple image transformations to process each frame of the raw video input. Finally, HPS analyzes each processed image, providing the total count of each colored Spree in the frame. The program also tracks the movement of each Spree along the conveyor belt, calculating the total number of Sprees “manufactured” by our assembly line.


-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/yz424_clc288/yz424_clc288/final_website/index.html
-
Hackaday Project Introduction
-
Video Links
-
Code Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/yz424_clc288/yz424_clc288/final_website/index.html
HPP lattice Gas Automaton


Our program is a lattice gas automaton that uses the HPP model to simulate gases and liquids.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/bh475_nds64_wm226/bh475_nds64_wm226/bh475_nds64_wm226/ECE5760FinalProject.htm
-
Video Links
None
-
Code Links
https://github.com/nds64/ece5760
3D paint using video tracking

A system was designed that receives real-time video of the user’s brush movements to generate 3D drawings.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/jss459_ssd56_aj373/jss459_ssd56_aj373/index.html
-
Video Links
-
Code Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/jss459_ssd56_aj373/jss459_ssd56_aj373/index.html
Spooky Tag: Spatial sound cues

Humans perceive sounds in space by processing the subtle differences between sounds received by each ear. The subtle differences mainly arise from the propagation of sound through the head and ear cavity (also known as the pinna). We can synthesize sounds perceived as coming from specific locations using HRTF processing.
We integrated this concept into the Tag framework, providing functionality to use echolocation as the primary means of locating and avoiding pursuers.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/arl228_dhl72_wpa26/arl228_dhl72_wpa26/5760%20website/index.html
-
Hackaday Project Introduction
-
Video Links
-
Code Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/arl228_dhl72_wpa26/arl228_dhl72_wpa26/5760%20website/index.html
Sound controlled video game
A simple video game was created using the player’s voice as a control mechanism. The game’s setting is that you control a spaceship flying in space, with meteors coming towards you that you must dodge. The player moves the spaceship up and down based on the volume of their voice speaking into the microphone, trying to avoid the meteors.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/cs886_bc472/cs886_bc472/cs886_bc472/index.html
-
Video Links
-
Code Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/cs886_bc472/cs886_bc472/cs886_bc472/code/code.zip
Summary
There are many projects, from 2016 to 2023, and some projects may not be displayed. Most have video introductions, but I found some videos to be simple demonstrations of functionality without design ideas, so it’s necessary to check the documentation in the source code by yourself.