Digital system design using FSMs : a practical learning approach A finite state machine (FSM) is a computation model that can be implemented with hardware or software and can be used to simulate sequential logic and some computer programs. Finite state machines can be used to model problems in many fields including mathematics artificial intelligence games and linguistics. This is a complete update of the authors earlier book FSM Based Digital Design using Verilog HDL (Wiley 2008). Whilst the essential foundation content remains the book has been considerably refreshed to cover the design of Finite State Machines (FSM) in place of Microprocessors using a novel form of State Machines based on Toggle Flip Flops (TFF) and Data Flip Flops (DFF). It follows a Linear Programmed Learning approach enabling the reader to learn at their own pace and to design their own FSM based systems.