Skip to content
BetterDL

Synchronous design

Also called: synchronous design rules, fully synchronous design

A design style where every flip-flop shares one clock and all state lives in flip-flops, so timing reduces to setup and hold checks.

Synchronous design is the set of habits that makes digital hardware predictable. Follow them and every path needs only two checks, setup and hold.

The rules:

  • One clock. Every flip-flop is driven by the same, clean clock.
  • State lives in flip-flops. No loops of combinational logic that feed back on themselves.
  • Logic sits between registers. Every path starts and ends at a flip-flop (a register to register path).
  • Never gate the clock with logic. To make a register sometimes hold, use a clock enable in front of D, not a gated clock.
  • Synchronize asynchronous inputs with a two flip flop synchronizer before using them.

The payoff: a flip-flop only looks at D in a small window around each edge. Glitches in the logic between registers die out long before that window, as long as the setup constraint holds. So designers can ignore glitches almost everywhere.

Glitches still matter wherever something reacts at once: clock pins, asynchronous clear and preset inputs, and outputs that leave the chip.

Worked example

Example

Spotting rule breaks

A student's design has: (1) a counter clocked by the output of an AND gate, (2) a push button wired straight to three flip-flops, and (3) a register whose clear input is driven by a decoder output. Which rules are broken?

  1. 1.

    (1) A gated clock. Use the system clock and a load or count enable instead.

  2. 2.

    (2) An unsynchronized asynchronous input fanned out to several flip-flops. Synchronize it once with two flip-flops, then fan out.

  3. 3.

    (3) A combinational, possibly glitchy, signal on an asynchronous clear. A glitch could clear the register. Use a synchronous clear, or register the decoder output first.

Common mistakes

  • Thinking glitches never matter in a synchronous design. They still matter on clocks, asynchronous inputs and chip outputs.

  • Adding an AND gate on the clock to save power or add an enable. Put the choice in front of D.

Practice Synchronous design

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

Learn it step by step

Synchronous design is taught in Timing and Sequential Logic.