Course 04 Free course 15 volumes · 77 sub-modules All 15 volumes are live ~30 hours

State Machines from Zero: Design, Code, Test and Make Them Safe

A state machine is how a circuit remembers what it is doing. Traffic lights, lifts, vending machines and the receiver in every serial port are all state machines. This course starts from zero - no electronics and no code assumed. By the end you will design a state machine on paper, write it in Verilog, test it, make it safe, and explain it in an interview.

Start here

Start with Volume 00, even if you think you know the basics. It takes under an hour, and it teaches exactly the few ideas this course needs: bits, gates, flip-flops, timing diagrams, and how to run Verilog for free. Then go through the volumes in order. Each one uses only what came before it.

Every lesson is written in simple English. Each new word is underlined with dots - point at it (or tap it) to see what it means. Every sub-module ends with a quick check, so you always know whether an idea has landed before you move on.

Already know some digital design?

Take the quick checks in Volume 00 and Volume 01 without reading the lessons. If you get them all right, jump to Volume 04, where the Verilog starts. For a shorter, faster treatment of the same topic, see Volume 04 of the Verilog course. This course is the slower, deeper version, with every step shown.

Practise with FSM StudioFill in a state table and watch the state diagram, the Verilog and a self-checking testbench appear, then run your machine one clock edge at a time. Every example in this course is built in.
Open FSM Studio

Full syllabus

Part I - The ideas, on paper

Part II - From paper to Verilog

Part III - Building real machines

Part IV - Better machines

Part V - Revision and interviews

What you need before starting

What Why Free option
Nothing but curiosity Volume 00 teaches every idea the course uses -
A web browser To run Verilog without installing anything EDA Playground (free account)
Optional: your own simulator To work offline Icarus Verilog and GTKWave, both free and open source
Optional: an FPGA board To see your machine run on real hardware Any small board works - the course never needs one