Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
FPGA101: Digital System Design using Verilog and Python
Rating: 4.6 out of 5(13 ratings)
143 students

FPGA101: Digital System Design using Verilog and Python

From Verilog basics to building a miniature of Google's TPU
Created byErwin Ouyang
Last updated 9/2025
English

What you'll learn

  • Understand the fundamentals of Verilog and FPGA.
  • Understand RTL design, including combinational logic, sequential logic, FSM, and FSMD.
  • Interface the digital circuit on the FPGA to an ARM processor.
  • Build a miniature Google's TPU.

Course content

8 sections25 lectures2h 49m total length
  • Introduction4:26

    In this lecture, you are going to learn about how a chip is designed in brief and about the FPGA board for this course.

  • Source Code0:05

Requirements

  • Fundamentals of digital circuits and programming will give an added advantage.

Description

Updates:

  • 2025/09/05: Added embedded web application example.


FPGAs are often used to implement digital signal processing applications that require computation acceleration. FPGAs are also used to verify digital circuits before taping them out into silicon chips, called application-specific integrated circuits (ASICs). The Verilog/VHDL hardware description language (HDL) is used to describe the digital circuits, both for FPGA and ASIC targets. This course focuses on the Verilog language.

This course teaches the fundamentals of building digital circuits with Verilog. Four topics of fundamental digital circuits are explained: combinational logic, sequential logic, finite state machines (FSM), and finite state machines with data paths (FSMD). Three more topics about integrating the digital circuit on the FPGA into an ARM processor are explained. At the end of the course, a final project on how to build a miniature Google TPU is explained.

In the final project, you are going to learn the methodology design of an accelerator for a neural network based on a matrix multiplication core. Matrix multiplication is used in engineering for many applications. Once you get familiar with the methodology, then you should be able to apply the methodology design to any design that you want.

After finishing the course, you will receive a certified certificate of completion. A complete Udemy 30-day money-back guarantee if you are not satisfied with this course, allowing you to study with no risk.

See you within the course.

Who this course is for:

  • Anyone interested in learning the fundamentals of digital system design.