👍

04-Digital Circuits and FPGA

A pleasant learning journey of Digital Circuits and FPGAs

Get Started!

What is an FPGA?

An FPGA, or Field-Programmable Gate Array, is a digital integrated circuit that can be reprogrammed to perform a variety of tasks. It consists of arrays of logic gates and memory cells that can be interconnected in customizable ways, allowing designers to implement specific functions or computational tasks directly on the hardware. Think of FPGAs as digital LEGOs: just as you can reassemble LEGO blocks to create various structures, you can rearrange FPGA's building blocks to form anything from simple logic gates to complex digital systems.

About this Learning Kit

Overview

This course brings a comprehensive and hands-on journey curated especially for those with basic knowledge in digital logic, with a keen interest in exploring deeper into digital circuit design and FPGA technology. The extensive 200-page tutorial is replete with illustrative examples, codes, experiments, and projects. The course hardware kit includes with our unique STEPFPGA featured as "the most user-friendly board for beginners", and a comprehensive kit with assortment of components, sensors, and motors, which offers learners a tangible and engaging "learn-by-doing" experience.
The codes of all experiments and projects in this book are written in Verilog and all published in Github. All experiments are fully compatible with STEPFPGA.

Learning Objective

  1. 1.
    Tangible Learning: Understand the fundamental concepts of digital circuits through tangible experiments and projects with this beginner-friendly FPGA board.
  2. 2.
    Practical Application: Transition from theory to real-world applications, learning how to design and implement various modules such as encoders, decoders, counters... in a digital system.
  3. 3.
    Digital Design Practice: Perceive the entire digital design process and mindset, from basic logic gates to practical modules to interface with sensors and actuators.
  4. 4.
    Engaging Project: Consolidate your acquired knowledge and skills by undertaking a capstone digital piano project, incorporating advanced techniques related to signals and DDS.

Audience

  • Students who completed our prior courses and seeking to expand knowledge of digital circuits
  • Individuals with basic prior knowledge of logic operations or computer basics
  • Arduino or microcontroller players who heard of FPGAs and want to have a test drive
  • Students preparing for computer archeitecture and digital design in university curriculum

Tutorial

Our high-quality tutorial guides you through digital circuit fundamentals, FPGA basics, and practical uses of Hardware Description Language with interactive, hands-on modules for an engaging learning experience.

Hardware & Components

This package comes with a STEPFPGA board, a full-color printed version of the tutorial book, and all the necessary components & modules required for the hands-on activities, experiments, and projects covered in the course.

Barrier for Beginners

Digital Circuits are too Abstract

Many of us have encountered logic gates and truth tables in our educational journeys. These elements such as AND, OR, NAND gates...though very important and foundational in modern digital systems design, can often seem abstract, existing only on paper or in theoretical discussions.
We might learn about components like adders, encoders, decoders, multiplexers, flip-flops, and counters... but without tangible experiments and projects to anchor this knowledge, it's easy to lose sight of their real-world applications. Even though you can gain some insights from paper analysis or simulations, but what can I do with a decoder on an actual circuit? Why counter is so important in digital system design? Everything only make sense when you actually implement something tangible and physical based on these concepts.

No Feasible Tools for Beginners

When it comes to hands-on experiments and projects at the board level, one approach is to use logic chips, prominently the 74xx and 40xx series, alongside devices like the 555 timer or dedicated oscillators to generate clock signals. While this approach provides a tangible understanding of basic circuit designsis, the intricacies of more advanced digital systems can use of hundreds of such chips which becomes impractical and uneconomical for experimental setups and hobbyist endeavors.
Another more adapted approach is to use programmable logic chips such as FPGAs, which offered flexibility, scalability, and rapid prototyping, streamlining the design and testing processes for more complex digital systems. However, one major challenge for beginners to start learning FPGAs is that most FPGA development boards and courses are designed for advanced users. Beginners often find extremely challenging or simply get lost when dealing with all sorts of hardware configurations and environmental setup for the boards.
Hardware aside, these boards usually come with sophisticated software development tools. For those just started with FPGAs, navigating these tools can feel like deciphering a foreign language. The interfaces are often cluttered with advanced features and options, which, while powerful, can be overwhelming for novices.

Lacking of Fun Projects

Interest is essential for maintaining the motivation to learn. Without engaging projects to accompany the learning process, it can quickly become monotonous. While platforms like Arduino and Raspberry Pi provide many beginner-friendly projects, FPGA platforms tend to offer projects that are more complex and advanced, which can be very challenging for beginners as kickoff hands-on activities.

Our Solution

FPGA is a hardware technology that plays crucial roles in many advanced applications. However, at its core, an FPGA is just a tool, and the true focus of learning should be on digital design. Drawing from years of experience as a student, engineer, and educator, I have recognized the unparalleled value of hands-on learning through examples, experiments, and structured projects. Motivated by this realization, I dedicated over two years to craft this educational kit tailored specifically for beginners.
STEPFPGA
Tutorial
Components

Hardware

You will use STEPFPGA for hardware development.
The STEPFPGA board comes with unsoldered header pins, a Type-C cable and a user manual for quick starter guide.

Software

You have permanent free access to this WEB browser-based IDE tool to develop the board.

To Purchase this Kit

The kit will be available to purchase on our E-shop after the Kickstarter campaign is ended.
We also recommend buying a Lab-On-The-Go kit, which helps you setup/measure your circuits more conveniently but it is not an essential element for this learning package.

Community Support

Join our Discord group: https://discord.com/invite/KP8vhPaMF6