Latch vs Flip-Flop: Differences Explained
Both store one bit, but they are triggered differently. A latch is level-sensitive: while its enable signal is active it is transparent and passes the input straight to the output, and when the enable goes inactive it holds the value. A flip-flop is edge-triggered: it captures the input only at the clock edge and ignores changes in between. A flip-flop is built from two latches working in opposite phases.
| Aspect | Latch | Flip-flop |
|---|---|---|
| Trigger | Level-sensitive: acts while the enable is active | Edge-triggered: acts only at the rising or falling clock edge |
| Output behavior | Follows the input while transparent, then holds | Changes only at the clock edge, stable otherwise |
| Construction | A single storage stage | Two latches in series, working in opposite phases (master-slave) |
| Size and power | Smaller, with lower power | Larger, roughly twice the transistors |
| Timing analysis | More complex: time borrowing across the transparent phase | Simple: setup and hold times around the clock edge |
| Sensitivity to glitches | Glitches and races pass through while transparent | Immune to input changes between clock edges |
| Typical uses | Custom high-speed designs with time borrowing, clock-gating cells | Registers, counters and state machines in synchronous design |
Figures are typical orders of magnitude and vary by process generation and product.