An Introduction To FPGA and CPLD

This course is meant to create a pathway into learning about FPGA and CPLD electronics, for people who are scared of the code, tools and general trickery that usually comes with it. A hands-on approach is taken in this course through a combination of lecture and experimentation to teach you about the different features of both the development tools and languages used in the world of FPGA. Additionally, visuals are used throughout lectures like step-by-step schematic building and line-by-line code explanations so that everything gets explained.

  1. Lesson 1: The Intro

    Lesson 1: The Intro

    Want to learn about FPGA and CPLD? Please start here! This lesson explains the course content, what expectations you should have and what parts are needed for the course.

    • Lesson 2: Hardware Hello World

      Lesson 2: Hardware Hello World

      Building a ‘hello world’ application signifies a time honored approach to learning how to program. In this lesson, we will explore the first steps necessary for building and loading images onto a CPLD.

      • Lesson 3: Input and Output

        Lesson 3: Input and Output

        All FPGA and CPLD devices have general purpose input and output pins, often called GPIO. Here we will take a look at how to build a CPLD image and hardware to accept push-button input in order to affect output LEDs.

        • Lesson 4: Combinatorial Logic

          Lesson 4: Combinatorial Logic

          In the Introduction to Digital Electronics course, we explored AND, OR, NOT, NOR and other logic gates. Now we’ll harness the power of programmed logic to dynamically create and use these gates in a CPLD.


          Generally, electronics is a difficult subject mathematically, however theoretically it's actually not as bad if you take a hands-on approach and create vivid imagery to demonstrate what is going on. Using this approach, virtually anyone with a basic math background and a desire to know more about electronics can get started. So the following prerequisites are necessary for this course:



          This Introduction To FPGA and CPLD course will be split up into 10 lessons with the lecture video for each lesson hosted on youtube. The lectures will be to 8-12 minutes in length so that you have enough time to see the information and can go over it twice to perform any of the experiments while following along with the video. Each lecture will contain 4 main sections: an introduction, theoretical explanation, experiment(s) and real world example(s). In addition, each lesson video will be hosted at PyroEDU with downloadable offline information and material like homework, schematics, formulas and parts information.

          Course Content

          1. Introduction (Live!)
          2. Hardware Hello World (Live!)
          3. Input and Output (Live!)
          4. Combinatorial Logic (Live!)
          5. Procedural Logic (7/24/2014)
          6. Design a Binary Counter (7/31/2014)
          7. Parallel Hardware (8/7/2014)
          8. LED Dimming via PWM (8/14/2014)
          9. Design a Handheld POV (8/21/2014)
          10. VHDL vs Verilog vs Schematic (8/28/2014)


          This course is meant to take you, the learner, from a blank slate to a more informed individual by teaching about electronics in a hands-on way, as the lecture videos will emphasize and guide you with experimentation. You should expect to learn the basics for designing and implementing FPGA and CPLD designs using Altera development tools. Beyond that, you should also expect to get experiencing building digital hardware and controlling it using FPGA code.

          Additional information

          This course and its additional material is located at:


          From there you can access all of the lectures (as we do them) and download homework, schematics, formulas and extra parts information.

          Teacher qualifications

          Hello! Aside from building many electronics tutorials and projects, and posting their full hardware schematics and source code on PyroElectro.com, I studied computer and electrical engineering at university and have Bachelor's + Master's degrees in the subject. My work is typically more slanted to digital hardware, however the basics are the same no matter if you're an analog designer or a digital designer.

          Latest Update
          CPLD Combinatorial Logic - PyroEDU Lesson4 (2014-07-21 23:34:41)

          "Last week we released a new lesson .... Lesson 4: Combinatorial Logic in our new PyroEDU course: An Introduction to CPLD and FPGA. Here’s an overview of the lesson:

          In the Introduction to Digital Electronics course, we explored AND, OR, NOT, NOR and other logic gates. Now we’ll harness the power of programmed logic to dynamically create and use these gates in a CPLD.

          link: http://www.pyroelectro.com/edu/fpga/combinatorial_logic/

          If you have any questions or want to post homework answers, please head over to our forums."