• Getting Started with FPGA

#### Project 1: Introduction to Digital...

This project sets up your FPGA board for use and shows you the steps in starting project files. It also gives you some basic knowledge on Digital Engineering. This is a getting started project with very little hands on w...

12.5K
• Switch Controlled Leds

#### Project 2: Use Switches to Control...

In this project, you will design and implement a circuit that controls an LED on your FPGA board with a slide switch. This project demonstrates how to use Verilog HDL to design a digital circuit and implement it on an FP...

9.20K
• Design Simple Logic Circuit

#### Project 3: Guess the Logic

In this project, you will download a bit file to your board to configure the FPGA with four different logic circuits. The circuits use buttons and switches for inputs, and LEDs for outputs. You must probe the logic circu...

5.99K
• Verilog® HDL: Overview

#### Background and History

Introduces the topic of Verilog® Hardware Description Language (HDL) and explains the history.

4.23K
• Verilog® HDL: The First Example

#### Module, I/O Ports, Bus, and Assign

An example of how to use Verilog® HDL. Includes information on module, I/O ports, bus, and assign statements.

6.83K
• Electric Charges, Voltage, and Current

#### Fundamentals of Electricity

Explains electrical fundamentals covering the topics of charge, voltage, and current.

3.74K
• Simple Combinational Circuit Design

#### Project 4: Majority of Five

How could you find a majority of the vote if each voter of five has a switch to vote for yes or no? The logic is fairly simple and will be used in this project. Any time there are three or more of the five who vote yes,...

5.27K
• Describe Combinational Logic Behaviorally

#### Project 5: Multiplexer, Decoder, En...

In this project, you will design a multiplexer, a decoder, an encoder, and a shifter using Verilog HDL. Instead of building the circuit using logic operators, you will learn to describe a circuit behaviorally according t...

7.29K

#### Project 6: A Simple Communication S...

In this project, you will design a 4-to-1 Mux and a decoder with an enable signal as a De-Mux to implement a simple serial data transmitter. Both Mux and De-mux will be implemented in two Verilog files for future re-use....

6.26K
• Simulate Glitch and Delay

#### Project 7: Simulate Glitch and Dela...

In this project, we are going to examine the delay in combinational circuits. We are going to tell the simulator of the delay of each gate in Verilog and simulate the circuits to see how delay can affect the behavior of...

4.33K
• SR-Latch

#### Project 8: Simulate SR-Latch

Latches are the fundamental bi-stable memory circuit in digital systems to store data and indicate the state of the system. In this project, we are going to implement and simulate the basic NAND cell of an SR-Latch and s...

12.6K
• Use Flip-Flops to Build a Clock Divider

Flip-flop is an edge-triggered memory circuit. In this project, we will implement a flip-flop behaviorally using Verilog, and use a bunch of flip-flops to implement a clock divider that blinks the LEDs.

17.4K
• Design Arithmetic Circuits

#### Project 10: Comparator, Adder, Mult...

In this project, we will design the arithmetic circuits in FPGA. We will build a 4-bit magnitude comparators, a ripple-carry adder, and a multiplier circuit. You can challenge yourself by integrating all those circuits t...

9.33K
• Counter and Clock Divider

#### Project 11: Counter and Clock Divid...

A lot of interesting things can be built by combining arithmetic circuits and sequential elements. In this project, we are going to provide arithmetic circuits with timing reference by integrating arithmetic circuits wit...

32.8K
• State Machine

In this project, we are going to design a serial adder. Serial Adder is a circuit that performs binary addition bit by bit, i.e. instead of presenting both operands at the inputs of an adder at the same time, the operand...

4.23K
• Control Seven Segment Display with Push Buttons

#### Design Challenge 1

In this challenge you will be asked to use push buttons to control the seven segment display on your FPGA board. Each digit of the seven segment display is composed of 7 LEDs arranged in a "figure 8" pattern with another...

11.4K
• Control Light with Multiple Switches

#### Design Challenge 2

In this challenge you will be asked to control a single light with multiple switches. An LED on-board is used to emulate the light, and 4 slide switches are used to emulate the switches.

2.57K
• Temperature Indicator

#### Design Challenge 3

In this challenge you will be asked to build and minimize a combinational circuit using K-Map that outputs a signal when temperature is in a specific range.

2.89K
• Seven Segment Display Controller

#### Design Challenge 4

In this design challenge, you are going to finish a seven-segment decoder circuit that can can drive the 4-digit 7sd device on the Digilent board. We will take a hierarchical design approach to this problem, and the modu...

12.7K
• Shift Registers

#### Design Challenge 5

In this design, you are going to use a chain of flip-flop to implement a shifter register. The shifter register will be clocked using the clock divider you build in previous projects.

3.68K
• VGA Display Controller

#### Design Challenge 6

In this design, you are going to be asked to do a VGA Controller to display something on your monitor. Actually, VGA controller is a quite simple design which only requires two counters and several comparators.

34.9K
• Stop Watch

#### Design Challenge 7

In this design challenge, you are going to be asked to put combinational circuit, sequential circuits and state machine together and design a stop watch on the FPGA board.

6.30K
• Multiplexers

#### Data Selectors

An in-depth examination of data selectors, or more commonly called multiplexers (or simply muxes).

15.9K
• Binary Decoders

#### Demultiplexers

An in-depth examination of binary decoders and demultiplexers.

5.28K
Getting Started with FPGA

#### Project 1: Introduction to Digital Engineering and FPGA Board

This project sets up your FPGA board for use and shows you the steps in starting project files. It also gives you some basic knowledge on Digital Engineering. This is a getting started project with very little hands on with your board but is a good reference if you ever forget how to start your projects.

12.5K
×
Switch Controlled Leds

#### Project 2: Use Switches to Control LEDs

In this project, you will design and implement a circuit that controls an LED on your FPGA board with a slide switch. This project demonstrates how to use Verilog HDL to design a digital circuit and implement it on an FPGA board.

9.20K
×
Design Simple Logic Circuit

#### Project 3: Guess the Logic

In this project, you will download a bit file to your board to configure the FPGA with four different logic circuits. The circuits use buttons and switches for inputs, and LEDs for outputs. You must probe the logic circuits by applying all possible combinations of input signals. From the results of applying all possible combinations you will be able to write logic equations that describe the circuits' behaviors. You will then rewrite the equations using Verilog HDL and re-implement them on FPGA and compare the circuit behavior with the given bit-file.

5.99K
×
Verilog® HDL: Overview

#### Background and History

Introduces the topic of Verilog® Hardware Description Language (HDL) and explains the history.

4.23K
×
Verilog® HDL: The First Example

#### Module, I/O Ports, Bus, and Assign

An example of how to use Verilog® HDL. Includes information on module, I/O ports, bus, and assign statements.

6.83K
×
Electric Charges, Voltage, and Current

#### Fundamentals of Electricity

Explains electrical fundamentals covering the topics of charge, voltage, and current.

3.74K
×
Simple Combinational Circuit Design

#### Project 4: Majority of Five

How could you find a majority of the vote if each voter of five has a switch to vote for yes or no? The logic is fairly simple and will be used in this project. Any time there are three or more of the five who vote yes, then there is a majority and the LED needs to turn on.

5.27K
×
Describe Combinational Logic Behaviorally

#### Project 5: Multiplexer, Decoder, Encoder, and Shifter

In this project, you will design a multiplexer, a decoder, an encoder, and a shifter using Verilog HDL. Instead of building the circuit using logic operators, you will learn to describe a circuit behaviorally according to the functionality you wish the circuit to perform.

7.29K
×

#### Project 6: A Simple Communication System

In this project, you will design a 4-to-1 Mux and a decoder with an enable signal as a De-Mux to implement a simple serial data transmitter. Both Mux and De-mux will be implemented in two Verilog files for future re-use. Another Verilog file will be used to wrap up the Mux and De-Mux to form a communication sytem. This hierarchical design methodology will help manage design complexity, promote design reuse, and allow parallel development.

6.26K
×
Simulate Glitch and Delay

#### Project 7: Simulate Glitch and Delay in Combinational Circuits

In this project, we are going to examine the delay in combinational circuits. We are going to tell the simulator of the delay of each gate in Verilog and simulate the circuits to see how delay can affect the behavior of a combinational circuit.

4.33K
×
SR-Latch

#### Project 8: Simulate SR-Latch

Latches are the fundamental bi-stable memory circuit in digital systems to store data and indicate the state of the system. In this project, we are going to implement and simulate the basic NAND cell of an SR-Latch and see how it functions.

12.6K
×
Use Flip-Flops to Build a Clock Divider

Flip-flop is an edge-triggered memory circuit. In this project, we will implement a flip-flop behaviorally using Verilog, and use a bunch of flip-flops to implement a clock divider that blinks the LEDs.

17.4K
×
Design Arithmetic Circuits

#### Project 10: Comparator, Adder, Multiplier, and ALU

In this project, we will design the arithmetic circuits in FPGA. We will build a 4-bit magnitude comparators, a ripple-carry adder, and a multiplier circuit. You can challenge yourself by integrating all those circuits together with some multiplexer to build an arithmetic logic unit (ALU).

9.33K
×
Counter and Clock Divider

#### Project 11: Counter and Clock Divider Revisit

A lot of interesting things can be built by combining arithmetic circuits and sequential elements. In this project, we are going to provide arithmetic circuits with timing reference by integrating arithmetic circuits with flip-flops. In the first part, we are going to use an adder with a register file (an array of flip-flops) to implement a counter that increase the number by 1 when rising edge of the clock arrives. In the second part, we are going to revisit clock divider and implement a clock divider whose frequency can be more precisely calculated compared to the clock divider that we implemented in the previous projects.

32.8K
×
State Machine

In this project, we are going to design a serial adder. Serial Adder is a circuit that performs binary addition bit by bit, i.e. instead of presenting both operands at the inputs of an adder at the same time, the operands are fed into the serial adder bit by bit and generates the answer on the fly. To design such a circuit, we are going to use the state diagram as the formalism to describe the behavior of the circuit, and then translate the state diagram into Verilog code.

4.23K
×
Control Seven Segment Display with Push Buttons

#### Design Challenge 1

In this challenge you will be asked to use push buttons to control the seven segment display on your FPGA board. Each digit of the seven segment display is composed of 7 LEDs arranged in a "figure 8" pattern with another LED for the decimal point. When the buttons are not pressed, all LEDs should be on. When a button is pressed, a digit should turn off.

11.4K
×
Control Light with Multiple Switches

#### Design Challenge 2

In this challenge you will be asked to control a single light with multiple switches. An LED on-board is used to emulate the light, and 4 slide switches are used to emulate the switches.

2.57K
×
Temperature Indicator

#### Design Challenge 3

In this challenge you will be asked to build and minimize a combinational circuit using K-Map that outputs a signal when temperature is in a specific range.

2.89K
×
Seven Segment Display Controller

#### Design Challenge 4

In this design challenge, you are going to finish a seven-segment decoder circuit that can can drive the 4-digit 7sd device on the Digilent board. We will take a hierarchical design approach to this problem, and the modules you designed in this design challenge will be reused in other projects as well.

12.7K
×
Shift Registers

#### Design Challenge 5

In this design, you are going to use a chain of flip-flop to implement a shifter register. The shifter register will be clocked using the clock divider you build in previous projects.

3.68K
×
VGA Display Controller

#### Design Challenge 6

In this design, you are going to be asked to do a VGA Controller to display something on your monitor. Actually, VGA controller is a quite simple design which only requires two counters and several comparators.

34.9K
×
Stop Watch

#### Design Challenge 7

In this design challenge, you are going to be asked to put combinational circuit, sequential circuits and state machine together and design a stop watch on the FPGA board.

6.30K
×
Multiplexers

#### Data Selectors

An in-depth examination of data selectors, or more commonly called multiplexers (or simply muxes).

15.9K
×
Binary Decoders

#### Demultiplexers

An in-depth examination of binary decoders and demultiplexers.

5.28K
×