Skip to content
BetterDL

Load enable

Also called: LD, load control, load signal, register with load, load-enable register, load enable input

A register control input that loads new data at the clock edge when it is 1 and makes the register hold its value when it is 0.

A basic register overwrites itself at every clock edge. Most registers must instead keep their value for many cycles and change only when told to. The load enable (L, or LD on schematics) is that instruction.

  • L = 1 at the edge: the register loads the new data.
  • L = 0 at the edge: the register holds its current value.

How it is built: each flip-flop gets a 2:1 multiplexer in front of its D input, with L on the select line. The MUX chooses between two candidates for the next value: keep (the flip-flop's own Q, fed back) or new (the data bit N).

D =

With L = 0 the MUX feeds Q back in, so the flip-flop reloads the value it already has. The clock still reaches every flip-flop at every edge; only what they sample changes. An n-bit register needs n of these 2:1 MUXes.

The tempting alternative, ANDing the clock with L, is called clock gating and should be avoided in hand-built logic: it adds skew and can create false edges.

In a CPU, every register has a load enable, and the control unit's job is to raise the right ones at the right edges. A register transfer such as T1: R2 ← R1 is simply T1 driving R2's load enable.

LNQD

Worked examples

Example

Four edges of a load-enable register

A 4-bit load-enable register starts at 1010. At each edge, ask: is the MUX passing keep or new?

  1. 1.

    Edge 1: L = 1, data 0111. New. After: 0111.

  2. 2.

    Edge 2: L = 0, data 1111. Keep. After: 0111.

  3. 3.

    Edge 3: L = 0, data 0000. Keep. After: 0111.

  4. 4.

    Edge 4: L = 1, data 1100. New. After: 1100.

  5. 5.

    Shortcut: the register holds the data from the last edge where L was 1.

Example

Checking the MUX equation

One bit has Q = 1, N = 0. Find D for L = 0 and for L = 1 using D = .

  1. 1.

    L = 0: D = 0·0 + 1·1 = 1. D equals Q, so the bit holds its 1.

  2. 2.

    L = 1: D = 1·0 + 0·1 = 0. D equals N, so the bit loads 0.

Common mistakes

  • Thinking L = 0 clears the register. It holds the current value.

  • Writing D = alone. With L = 0 that gives D = 0, which clears instead of holding; the term is what feeds the old value back.

  • Gating the clock with L instead of using a MUX in front of D.

  • Caring about L between edges. Only its value at the rising edge matters.

Practice Load enable

Interactive questions with instant feedback and a worked solution for every wrong answer.

Learn it step by step

Load enable is taught in Registers and Basic CPU / Computer Architecture.