Welcome to the Verilog tutorials page! This page has all the information you need to get started using the Au, Cu, or Mojo with Verilog.
If you are a beginner, we recommend following the Lucid tutorials instead. Lucid is a language we developed to make working with FPGAs easier. We believe this is the best place for a beginner to start.
These tutorials walk you through setting up the required software.
These tutorials may or may not be necessary based on your background. These are more conceptual tutorials and don't require any hardware to follow.
- Digital Logic - covers basic logic gates (AND, OR, XOR, etc)
- Combinational Logic
- What is an FPGA?
- How does an FPGA work?
- Encodings - covers binary, hexadecimal, 2's complement, Gray, and one-hot
- Addition - covers how circuits perform addition
- Subtraction - covers how addition and subtraction are related
- Verilog Operators - useful reference for Verilog
These tutorials should be followed in order. Each one relies heavily on the information learned in the tutorials before it.
- Creating a Project
- Synchronous Logic
- Pulse Width Modulation
- Writing Test Benches
- External IO
- Metastability and Debouncing
- FPGA Timing
- Finite State Machines
- Hello World!
These tutorials teach you some particular technique or component but don't necessarily build off each other. Feel free to pick and choose from these.