Course 5: FPGA and CPLD

Lessons

Lesson 1: Introduction to FPGA and CPLD 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 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 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 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.
Lesson 5: Procedural Logic FPGA and CPLD devices offer a separate type of logic which happens in series. This is called procedural logic and it uses a clock source to drive the logic contained within the procedure.
Lesson 6: Design a Binary Counter We built a binary counter using all hardware components in the Digital Course, but now let's build a binary counter by programming it using VHDL code.
Lesson 7: Parallel Hardware A powerful tool of CPLD and FPGA design is being able to create multiple modules that perform operations in parallel. Let's explore how this is done and why it is so awesome.
Lesson 8: LED Dimming Via PWM We have used PWM in many other courses before, but creating PWM in an FPGA or CPLD requires a different way of thinking. Let's make our own PWM output module to change the brightness of some LEDs.
Lesson 9: Design a Handheld POV A very fascinating effect called persistence of vision can easily be created by repeatedly telling a single row of LEDs to output a message. Let's build a POV with a secret message!
Lesson 10: VHDL vs Verilog vs Schematic There are many ways to create a CPLD or FPGA image. The most common methods are with VHDL, Verilog or schematic capture. In this lesson we'll explore and compare all three.