This document provides an overview of finite state machines (FSMs). It defines an FSM as a digital circuit whose output depends on both the current input and state. There are two main types of FSMs: Moore machines whose output depends only on the current state, and Mealy machines whose output depends on both the current state and input. The document discusses state diagrams, state tables, basic circuit organization including latches to represent states and combinational logic for next states and outputs. It also covers topics like state assignment methods including one-hot encoding commonly used to map FSMs onto field programmable gate arrays due to their register-rich architecture.