Skip to content

Flip-Flops#

Definition: Flip-Flop

A flip-flop is an edge-triggered digital circuit which store a single bit of information by switching between two stable states of its outputs.

D Flip-Flops#

A D flip-flop is a flip-flop implemented using two D latches in the so called master-slave configuration:

D Flip-Flops

The left D latch is known as the master latch, while the right D latch is called the slave latch.

For the D flip-flop with a positive edge trigger:
- When \(Clk\) is in a stable state of \(0\), the inverter makes the master active and its output is the same as \(D\). However, the slave is blocked because \(Clk = 0\), so the final output remains unchanged and does not yet reflect the input \(D\).
- When \(Clk\) transitions from \(0\) to \(1\), the inverter switches from \(1\) to \(0\), blocking the master latch (which freezes the current value of \(D\)). Simultaneously, the slave becomes active and the output of the master can now propagate to the final output.
- When \(Clk\) is in a stable state of \(1\), the slave is active and its output is equal to the output of the master latch. However, the master is blocked by the inverter, which means changes in input \(D\) do not affect the stored value in the master or the final output.
- When \(Clk\) transitions from \(1\) to \(0\), the slave becomes blocked (holding the final output stable) while the inverter makes the master active, allowing it to track the input \(D\) again.

For the D flip-flop with a negative edge trigger:
- When \(Clk\) is in a stable state of \(0\), the inverter makes the slave active and its output is equal to the output of the master latch. However, it is not possible to change the output of the master latch because it is blocked, since \(Clk = 0\).
- When \(Clk\) transitions from \(0\) to \(1\), it enables the master latch which updates its output to \(D\), but the inverter switches from \(1\) to \(0\), blocking the slave.
- When \(Clk\) is in a stable state of \(1\), the master is active and its output is the same as \(D\). However, the inverter blocks the slave which means that it cannot update its final output.
- When \(Clk\) transitions from \(1\) to \(0\), the master becomes blocked (latching the current value) while the inverter makes the slave active, allowing the output of the master to propagate to the final outputs.

Notation

The following symbols are used for D flip-flops:

D Flip-Flop Symbols

Whether the D flip-flop has a positive edge trigger or a negative edge trigger must be inferred from context.

In practice, D flip-flops almost always have a positive edge trigger.