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!

Lucid Reference

Lucid Reference Guide

This is an excerpt from my book Learning FPGAs: Digital Design for Beginners with Mojo and Lucid HDL.

Initial Setup

These tutorials walk you through setting up the required software.

Helpful Background

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.

Beginner Tutorials

These tutorials should be followed in order. Each one relies heavily on the information learned in the tutorials before it.

Intermediate Tutorials

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

Advanced Tutorials

These tutorials explore the more advanced features of FPGAs. You should have a solid foundation before proceeding with these. 

  • SDRAM - learn how SDRAM works and how to use the controller
  • HDMI - learn how to decode and encode HDMI streams
  • Sound Locating - learn how to detect the direction of sounds