Stateflow^{®} charts can contain sequential decision logic based on state machines. A
*finite state machine* is a representation of an event-driven
(reactive) system. In an event-driven system, the system makes a transition from one
state (mode) to another, if the condition defining the change is true.

For example, you can use a state machine to represent the automatic transmission of a car. The transmission has these operating states: park, reverse, neutral, drive, and low. As the driver shifts from one position to another, the system makes a transition from one state to another, for example, from park to reverse.

Traditionally, designers used truth tables to represent relationships among the inputs, outputs, and states of a finite state machine. The resulting table describes the logic necessary to control the behavior of the system under study. Another approach to designing event-driven systems is to model the behavior of the system by describing it in terms of transitions among states. The occurrence of events under certain conditions determine the state that is active. State-transition charts and bubble charts are graphical representations based on this approach.

A Stateflow chart can contain sequential and combinatorial logic in the form of
state transition diagrams, flow charts, state transition tables, and truth tables. A
state transition diagram is a graphical representation of a finite state machine.
*States* and *transitions* form the
basic building blocks of a sequential logic system. Another way to represent
sequential logic is a state transition table, which allows you to enter the state
logic in tabular form. You can also represent combinatorial logic in a chart with
flow charts and truth tables.

You can include Stateflow charts as blocks in a Simulink^{®} model. The collection of these blocks in a Simulink model is the Stateflow machine.

A Stateflow chart enables the representation of hierarchy, parallelism, and history. You can organize complex systems by defining a parent and offspring object structure. For example, you can organize states within other higher-level states. A system with parallelism can have two or more orthogonal states active at the same time. You can also specify the destination state of a transition based on historical information.

Notation defines a set of objects and the rules that govern the relationships between those objects. Stateflow chart notation provides a way to communicate the design information in a Stateflow chart.

Stateflow chart notation consists of these elements:

A set of graphical objects

A set of nongraphical text-based objects

Defined relationships between those objects

Semantics describe how to interpret chart notation. A typical Stateflow chart contains actions associated with transitions and states. The semantics describe the sequence of these actions during chart execution.

[1] Harel, D "Statecharts:
A Visual Formalism for Complex Systems." *Science of Computer
Programming* Vol. 8, 1987, pp. 231-274.

[2] Hatley, D. J. and I.
A. Pirbhai. *Strategies for Real-Time System Specification.*
New York, NY: Dorset House Publishing, 1988.

Chart | State Transition Table | Truth Table