Flip-flops are bistable devices used in digital electronics to store a single bit of information. A flip-flop has two stable states (representing 0 and 1) and can change its state based on inputs and clock signals. Flip-flops are a crucial building block in sequential circuits like registers, counters, and memory units. They are different from latches in that flip-flops are edge-triggered, meaning they change state based on a clock signal's edge (either rising or falling).
There are several types of flip-flops, each with different inputs and functionalities. The most common flip-flops are SR flip-flop, JK flip-flop, T flip-flop, and D flip-flop.
The SR flip-flop is one of the simplest types of flip-flops. It has two inputs: S (Set) and R (Reset), and two outputs: Q and Q' (complement of Q). The SR flip-flop is level-triggered, meaning it responds to the level of the input, not the edge of the clock.
| S | R | Q (Output) | Q' (Complementary Output) |
|---|---|---|---|
| 0 | 0 | Q (Previous State) | Q' (Previous State) |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | Undefined (Invalid) | Undefined (Invalid) |
Note: The SR flip-flop has an invalid state (S=1, R=1), so it's not widely used in practice. The JK flip-flop is an improved version that avoids this issue.
The JK flip-flop is a more versatile version of the SR flip-flop. It eliminates the invalid state issue by handling the case where both inputs are 1. In a JK flip-flop, when J = K = 1, the output toggles between 0 and 1 with each clock pulse, making it useful in counters and other applications that require toggling behavior.
| J | K | Q (Output) | Q' (Complementary Output) |
|---|---|---|---|
| 0 | 0 | Q (Previous State) | Q' (Previous State) |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | Toggle (Flip) | Toggle (Flip) |
Note: The JK flip-flop is commonly used in counters, frequency dividers, and shift registers because it has no invalid states and provides the toggle functionality.
The T flip-flop is derived from the JK flip-flop by tying both the J and K inputs together, so the flip-flop toggles its state whenever the T input is 1.
| T | Q (Output) | Q' (Complementary Output) |
|---|---|---|
| 0 | Q (Previous State) | Q' (Previous State) |
| 1 | Toggle (Flip) | Toggle (Flip) |
Note: The T flip-flop is commonly used in binary counters because of its ability to toggle its output state.
The D flip-flop is one of the most commonly used flip-flops because of its simplicity and ease of use. It has a single D (Data) input and a clock signal (C). The value of the D input is transferred to the output Q on the rising (or falling) edge of the clock signal.
| C (Clock) | D (Data Input) | Q (Output) | Q' (Complementary Output) |
|---|---|---|---|
| 0 | X | Q (Previous State) | Q' (Previous State) |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
Note: The D flip-flop is widely used in registers, memory elements, and synchronizing data signals in digital systems.
| Flip-Flop | Inputs | Outputs | Function | Common Uses |
|---|---|---|---|---|
| SR Flip-Flop | S, R | Q, Q' | Stores 1 bit of data, Set/Reset control | Simple memory, control circuits |
| JK Flip-Flop | J, K | Q, Q' | Stores 1 bit, toggles when both inputs are 1 | Counters, state machines |
| T Flip-Flop | T | Q, Q' | Toggles its state on each clock pulse | Counters, frequency dividers |
| D Flip-Flop | D, C | Q, Q' | Captures the value of D on the clock edge | Registers, memory elements, data synchronization |
Flip-flops are fundamental sequential logic circuits that store one bit of data and change their state based on clock signals and inputs. The main types of flip-flops—SR flip-flop, JK flip-flop, T flip-flop, and D flip-flop—each have specific functions and applications:
These flip-flops are crucial for creating complex sequential circuits like memory systems, counters, and digital registers.
Open this section to load past papers