Sequential Logic: Circuits with memory

By using a circuit output as an input to itself so that the next output depends not only on the input signals that are applied at the moment but also on its current state (by feeding back the signal, which was in turn generated by a combination of previous inputs and outputs), we can create circuit that work in steps (sequentially).

To accomplish this we first need a subcircuit that will hold an output even if the inputs change. The most basic circuit that accomplishes this is called a latch.