-
Let’s take a look at FPGA development projects at international universities.
As far as I know, many universities in China do not offer courses related to FPGA, so many students are self-taught. However, self-learning requires certain goals and projects. Today, let’s look at the FPGA project courses offered by Cornell University, an Ivy League school. Most of the courses come with source code, and they are developed in Verilog, similar to the practices in China, which is quite enlightening.
Project Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/
Project Introductions
Spring 2023 Development Board CycloneV DE1-SoC
Heat Equation Simulator
The goal of this project is to create an interactive heat diffusion simulation using the heat equation in a discrete domain, allowing users to select sources and sinks on a VGA screen and simulate the resulting reactions in real-time. Official account: OpenFPGA
-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/heat_sim/ECE5760_HeatSim.github.io/index.html

-
Video Links
-
Code Links
https://github.com/fran07981/ece5760finalproject
FPGA Based Power Estimator
The overall design of the power estimator is shown in the figure below. It uses the Hall effect to measure the current through the internal fuse input pin, with a very low series resistance of about 1.2mΩ, which does not affect the current supplied to the FPGA. To speed up debugging, the project also implements a seven-segment display to show the measured current. Official account:OpenFPGA

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/yj253_yl3524/yj253_yl3524/project_details.html
-
Video Links
-
Code Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/yj253_yl3524/yj253_yl3524/project_code.html
HPP Gas Simulator
The gas simulation is accomplished by representing particles with pixels printed on the VGA display, with collisions between particles represented as following the ideal gas law. Change several parameters (pressure, box volume, particle number, and temperature) and observe the effects on particle behavior.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/afp65_sje57/afp65_sje57/index.html
-
Video Links
-
Code Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/afp65_sje57/afp65_sje57/index.html
FHP Gas Cellular Automaton on FPGA
The Frisch-Hasslacher-Pomeau (FHP) model is a lattice gas automaton, a class of cellular automata used to simulate fluid dynamics. It was first introduced by U. Frisch, B. Hasslacher, and Y. Pomeau in 1986 and is an improvement over the earlier Hardy-Pomeau-de Pazzis (HPP) model. The FHP model uses a hexagonal lattice, which approximates isotropy better than the square lattice of the HPP model. Each intersection on the lattice can be considered a cell that can contain particles. These particles can move to adjacent cells in six directions along the hexagonal lattice.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/ks977_zw652_zl647/ks977_zw652_zl647/index.html
-
Video Links
-
Code Links
https://github.com/zechenwang00/ECE-5760-FHP
Dancing Boids
Dancing Boids uses a boid (bird-like object) swarm simulation to visualize music frequencies, where the swarm disperses or gathers based on the frequency of the music. Official account:OpenFPGA


-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/yw575_mk2592_rc627/yw575_mk2592_rc627/index.html
-
Video Links
-
Code Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/yw575_mk2592_rc627/yw575_mk2592_rc627/index.html#design
FPGA Accelerated Boid Algorithm
The project combines the ARM A9 processor and DE1 SoC FPGA to successfully simulate dynamic boid (“bird-oid object”) aggregation patterns, focusing on optimizing cycle requirements and execution time.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/yw2464_yl2924_mah426/yw2464_yl2924_mah426/index.html
-
Video Links
-
Code Links
https://github.com/Svorpal/FPGA_website/tree/main
2D N-Body Gravity Simulator
The goal of the project is to create an interesting gravity simulator using FPGA. Using standard CPU to simulate the gravity between celestial bodies (stars, planets, asteroids, etc.) is limited because it can only perform sequential calculations, resulting in long simulation times. The goal of this project is to send each celestial body’s information to the FPGA, allowing it to compute interactions between other celestial bodies in parallel, and then send the results back to the ARM, which will finally display on the monitor.


-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/raf269_nkg37_tjw234/raf269_nkg37_tjw234/index.html
-
Video Links
-
Code Links
https://github.com/rafCodes/GravSim
N-body Gravity Simulator
Similar to the above project.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/zw543_yz2797_hl992/zw543_yz2797_hl992/index.html
-
Video Links
-
Code Links
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
Exploring the application of FPGA in real-time, parallel pitch shifting for multi-channel audio input. In particular, we focus on the pitch shifting of polyphony (i.e., multiple simultaneous notes) for electric guitars.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/cds258_eph48_jwl266/cds258_eph48_jwl266/index.html
-
Video Links
-
Code Links
https://github.com/cycfi/nu
Sobel Edge Detection on FPGA

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/cp444_xz598/cp444_xz598/index.html
-
Video Links
Interactive Hardware Based Forest Fire Simulator
Developed an interactive forest fire simulator based on hardware. The purpose of our system is not to simulate forest fires with high precision.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/zap8_nrb74/zap8_nrb74/index.html
-
Video Links
-
Code Links
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
The goal of the design project is to design and create a hardware accelerator for machine learning-based facial recognition algorithms. Official account:OpenFPGA
The design uses FPGA to capture video data via VGA. The single frame of video data is sent to the ARM system on the chip, which then computes the grayscale of the image. This grayscale image is the input for the machine learning algorithm, which can detect the coordinates of facial features using OpenCV. This includes the face itself and the two eyes. These coordinates are then sent back to the FPGA, which uses a Verilog state machine to draw sunglasses on the detected eyes. We also demonstrate the RTL model of the pre-processing accelerator. This accelerator computes the pixel values of the integral image based on the source image.


-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/ajs667_gtz4_nnd25/ece5760_website/index.html
-
Video Links
-
Code Links
https://github.com/ajs667/ece_5760_final_proj/tree/main
Simulated Pinball Machine
The project is a simulated pinball machine that allows users to play classic arcade pinball machines. Using switches on the FPGA, players can set the initial speed of the ball, which is displayed on a power bar on the hex display. The user then presses a button to release the ball into the cabinet, and the ball will interact with surrounding objects based on its current speed and direction. Players can press two additional buttons to control the left and right flippers, trying to keep the moving ball in the cabinet. The score is recorded based on the duration of the ball in play, and the game ends when the ball leaves the cabinet/display.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/sec322_smc447_cc2698/sec322_smc447_cc2698/index.html
-
Video Links
-
Code Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/sec322_smc447_cc2698/sec322_smc447_cc2698/index.html
ADIOS – A Deployable Internal Oscilloscope
Wrap it into a Qsys module that can be imported and used in any project, and use HPS to post-process the data words and triggers so that the logic analyzer output can be viewed in a waveform viewer (e.g., GTKWave).

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/kae87ber72gly6/kae87ber72gly6/index.html
-
Video Links
-
Code Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2023/kae87ber72gly6/kae87ber72gly6/HOLA_V2.zip
Spring 2022 Development Board CycloneV DE1-SoC
Guitar Hero on DE1-SOC
This game allows users to play the “guitar” as accurately as possible along with their favorite songs to score high points. The user controller “guitar” consists of five keys: green, red, yellow, blue, and orange, along with one for “playing” notes. During the game, colored notes fall towards the bottom of the screen, and the user must press the corresponding key at the specified time.


-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/ki88_djl357_jtb237/ki88_djl357_jtb237/index.html
-
Video Links
-
Code Links
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/ki88_djl357_jtb237/ki88_djl357_jtb237/index.html
Bombe Machine

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/az292_kw456_lh479/az292_kw456_lh479/index.html
-
Video Links
-
Code Links
https://github.com/AngelaZou2000/ECE5760/tree/master
FPGA Based Simple CNN MNIST Digit Classifier
A simple convolutional neural network was systematically developed using Verilog.

-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/zx83_kh548_ys566/final_report.html
-
Video Links
-
Code Links
https://github.com/Min4649/CNN-FPGA-Implementation
Diamond Square Fractal Landscapes


-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/sgp62_rbm244_hlg66/sgp62_rbm244_hlg66/index.html
-
Video Links
-
Code Links
https://github.com/sgp62/ECE5760/tree/gh-pages
2D Molecular Dynamics Simulation using Leonard Jones


-
Project Introduction
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2022/pjm326_pm623_tji8/pjm326_pm623_tji8/index.html
-
Video Links
-
Code Links
https://github.com/PMogalipuvvu/MolecularDynamicsSimulation
Summary
There are many projects from 2016 to 2023. There should be some projects that are not displayed. Most of them have video introductions, but I found that some videos only demonstrate the functions simply and do not provide design ideas, so it is necessary to check the project documentation by yourself. Today, only a portion has been updated. Follow me for more projects to come.