Welcome to the Lucid tutorials page! This page has all the information you need to learn to program FPGAs using the Alchitry Au, Alchitry Cu, or Mojo with Lucid. Lucid is a language we developed to make working with FPGAs easier. This is the best place for a beginner to start!
This is an excerpt from my book Learning FPGAs: Digital Design for Beginners with Mojo and Lucid HDL.
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
These tutorials should be followed in order. Each one relies heavily on the information learned in the tutorials before it.
- Your First FPGA Project
- Synchronous Logic
- Io Element
- Components (Alchitry)
- Components (Mojo)
- ROMs and FSMs (Alchitry)
- ROMs and FSMs (Mojo)
- Hello YOUR_NAME_HERE!
- External IO
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.
- Analog Inputs - learn to read from the Mojo's analog inputs
- Servos - learn to control servos with a PWM signal
- Basic CPU - create a simple CPU and write code for it
- Register Interface - learn about a simple interface from the Mojo to your computer
- Camera - learn to capture images from a camera
These tutorials explore the more advanced features of FPGAs. You should have a solid foundation before proceeding with these.