# Finite state machine with datapath

A **Finite State Machine with Datapath** (FSMD) is a mathematical abstraction that is sometimes used to design digital logic or computer programs.

An FSMD is a digital system composed of a finite-state machine, which controls the program flow, and a datapath, which performs data processing operations.

FSMDs are essentially sequential programs in which statements have been scheduled into states, thus resulting in more complex state diagrams.

Here, a program is converted into a complex state diagram in which states and arcs may include arithmetic expressions, and those expressions may use external inputs and outputs as well as variables.

FSMs do not use variables or arithmetic operations/conditions, thus FSMDs are more powerful than FSMs.

The FSMD level of abstraction is often referred to as the register-transfer level.

FSMD is equivalent to Turing machine in power.