# Sequential Circuit **A circuit whose output depends on the present value of its inputs and the sequence of its past inputs.** A **sequential circuit** is a circuit that generates an output as a function of its current inputs and the sequence of previous inputs. This is in contrast to a combinational circuit which is a function of only its present input. Sequential circuits consists of a *combinational* circuit connected to *storage elements*. A *feedback path* connects the storage elements back as an input. ![[SequentialCircuit.svg]] Sequential circuits are described algebraically using [[State Equation|state equations]], in tabular form using [[State Table|state tables]], and graphically using [[State Diagram#Finite state machines|state diagrams]]. Sequential circuits can be optimised through [[state reduction]]. Sequential circuits are mathematically modelled as [[Finite State Transducer|finite state machines]]. Storage elements are characterised by their number of inputs and how the inputs affect their state. Sequential circuits can also be characterised as *synchronous* or *asynchronous* depending on if they rely on a clock signal. ## Types ### Synchronous sequential circuits A *synchronous* sequential circuit is a sequential circuit whose outputs only change at discrete instants of time. Synchronous circuits are timed using a *clock generator* which outputs a periodic train of pulses. As such, synchronous circuits are sometimes called *clocked sequential circuits*. Synchronous circuits are generally *more stable* and are *easier to design*. ![[SynchronousCircuit.svg]] ### Asynchronous sequential circuits An *asynchronous* sequential circuit is a sequential circuit whose outputs change whenever the inputs change. Asynchronous circuits commonly use *time delay devices* as storage elements. Time delay may be introduced by propagation delay instead, and therefore asynchronous circuits can be considered as just combinational circuits with *feedback*. ## Storage elements The two types of basic storage elements used in sequential circuits are: - [[Latch|Latches]] - [[Flip-Flop|Flip-flops]]