Storage latches are fundamental building blocks in digital electronics used to store a single bit of data. They are bistable multivibrators, meaning they have two stable states, representing binary 0 and 1. The most basic type of latch is the SR (Set-Reset) latch, which can be constructed using NOR or NAND gates.
In an SR latch made with NOR gates, there are two inputs: S (Set) and R (Reset), and two outputs: Q and Q' (Q not). When the S input is activated (logic 1) and R is deactivated (logic 0), the latch sets, making Q = 1 and Q' = 0. Conversely, when R is activated and S is deactivated, the latch resets, making Q = 0 and Q' = 1. If both S and R are deactivated, the latch maintains its current state. However, if both inputs are activated simultaneously, it leads to an invalid state.
A more advanced type is the D (Data or Delay) latch, which eliminates the invalid state by ensuring that only one input is used to control the latch. The D latch has a single data input and a control input called the enable or clock. When the enable is active, the data input is transferred to the output. When the enable is inactive, the latch retains its previous state.
Latches are level-sensitive devices, meaning they respond to the level of the control signal rather than its edge. This characteristic differentiates them from flip-flops, which are edge-triggered. Latches are used in various applications, including temporary data storage, data synchronization, and as building blocks for more complex memory elements like flip-flops and registers.