Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Build an FPGA Oscilloscope with VHDL and C#
New
20 students

Build an FPGA Oscilloscope with VHDL and C#

Design an FPGA-based USB oscilloscope from scratch using VHDL and a C# desktop application
Created byL Athukorala
Last updated 6/2026
English

What you'll learn

  • Learn how to interface an FPGA with an ADC using SPI in VHDL.
  • Design and implement a simple UART transmitter in VHDL.
  • Transfer real-time sample data from FPGA hardware to a PC over USB (Virtual Comm Port).
  • Develop a C# Windows application to receive and process serial data.
  • Create a real-time oscilloscope-style waveform display on the PC.

Course content

1 section9 lectures1h 51m total length
  • Introduction8:23
  • Where to get the FPGA Explorer Development Board0:05
  • Designing the ADC SPI Interface16:31
  • UART Transmitter Design13:44
  • VHDL Top Level Design15:47
  • Creating the Quartus Project13:45
  • Basic Testing With Potentiometer3:31
  • Basic PC Oscilloscope Design With C#32:02
  • Course Conclusion & Resources7:59

Requirements

  • Must have a basic understanding of the VHDL language
  • Understanding clocks, resets, and synchronous logic
  • If you have completed an introductory VHDL course, you are well prepared for this material.

Description

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.

Who this course is for:

  • Students with basic VHDL knowledge looking to move beyond simple demos
  • Hobbyists and makers interested in FPGA projects
  • Engineers or embedded developers who want hands-on FPGA experience
  • Learners who want to build reusable skills for advanced FPGA projects
  • Anyone curious about low-level FPGA SPI and UART interfaces