
Design a simple UART transmitter in VHDL to send ADC samples over a 25 megahertz FPGA clock, using a 10-bit shift register and 115200 baud.
Design the top-level VHDL oscilloscope module that instantiates the ADC and UART transmitter, interfaces SPI signals, uses a 25 MHz clock and reset, and subsamples to 5 kHz for transmission.
Create the Quartus project for the oscilloscope, add the VHDL files, map pins for the Cyclone 10 FPGA Explorer board, and compile.
Test the ADC accuracy by connecting the potentiometer output to ADC input, observe codewords representing 0–255 as you rotate 0–3.3 volts, and verify the VHDL UART and ADC operate correctly.
Program the FPGA Explorer's embedded flash to a non-volatile configuration, converting SOF to POF via active serial, and validate the end-to-end USB oscilloscope workflow with the C# app.
In this hands-on FPGA course, you will learn how to build a simple USB-based PC oscilloscope from start to finish using VHDL and C#. The course uses the FPGA Explorer Development Board as the development platform.
The course begins by showing how to interface an FPGA with an on-board Analog-to-Digital Converter (ADC) using the SPI protocol. You will then design UART communication logic in VHDL to stream real-time ADC sample data from the FPGA to a PC through the development board’s USB-to-UART interface.
On the software side, you will develop a C# Windows desktop application capable of receiving serial data from the FPGA and displaying it as a live real-time waveform graph, creating a basic oscilloscope-style real time signal plotting interface.
This course is designed to provide practical experience with FPGA development and hardware/software integration while introducing several important embedded engineering concepts, including:
SPI communication in VHDL
UART transmitter design
Real-time data acquisition
USB serial communication
FPGA-to-PC interfacing
C# serial port programming
Real-time waveform plotting
While this project is intentionally simple and not a full-featured commercial oscilloscope, the concepts you will learn are extremely important and widely used in embedded systems and FPGA development. You will gain practical experience with FPGA design, serial communication, real-time data acquisition, and hardware/software integration.
By the end of the course, you will have a complete working project and a strong understanding of how FPGA hardware and PC software can work together to create real-time measurement and visualization systems.
Whether you are interested in FPGA development, digital design, embedded systems, or hardware/software integration, this project-based course will give you practical skills you can build upon for more advanced designs in the future.