CE2704 · Digital Logic Design
Theme 4 · Combinational building blocks

The combinational design method

You can read, write, and minimise logic. Now turn a sentence into a circuit — with a four-step recipe that works every time and scales to the whole ALU.

Built from first principles.

Before you start

What you need first

  • English → Boolean — turning a requirement into a logic statement.
  • Truth tables & canonical forms — listing every input case as SOP.
  • K-maps — minimising the expression you read off the table.

What you'll be able to do

  • State the four steps of combinational design.
  • Take a plain-English spec all the way to a gate circuit.
  • Know where the truth table and K-map fit in the flow.

First: what "combinational" means

A combinational circuit's output depends only on its inputs right now — no memory, no clock, no history. Give it the same inputs and you always get the same output. (Circuits that remember come later, in Theme 5.)

Because there's no memory, a combinational circuit is fully described by a truth table — one output row for every input combination. That single fact is what makes the design method below work.

The four-step recipe

Never jump straight from a requirement to gates — you'll miss cases and build something bigger than needed. Always walk these four steps in order:

1 · Specify say it in words 2 · Truth table every input row 3 · Simplify algebra / K-map 4 · Draw circuit gates (or HDL)
The recipe never changes — only the function inside it does.
StepWhat you doTool
1 · SpecifyWrite exactly when the output is 1, in plain words.English → Boolean
2 · Truth tableList every input combination and its output. Nothing is left ambiguous.truth table
3 · SimplifyRead the SOP off the 1-rows, then minimise it.algebra or K-map
4 · DrawTranslate the minimal expression into gates (or write HDL).gate symbols / Verilog
Why start at the truth table (step 2)? It is a complete, unambiguous specification — it forces you to decide the output for every single case before you optimise. Skip it and you are guessing.
📐 Worked example

Design: "output is 1 when exactly one input is high"

Step 1 — Specify. Two inputs A, B. Output Y = 1 when exactly one of them is 1 (not both, not neither).

Step 2 — Truth table. Write all four rows:

ABY
000
011
101
110

Step 3 — Simplify. Read the SOP from the two 1-rows (row 01 gives A′·B, row 10 gives A·B′):

$$ Y = A'\cdot B + A\cdot B' $$

Only two terms, no shared variable to factor — this is already minimal. (A K-map would show two single cells that cannot be grouped.)

Step 4 — Draw. That expression is the well-known exclusive-OR, A ⊕ B — so common it has its own symbol:

ABY
One XOR gate — the finished circuit.

The raw form needs two NOTs, two ANDs and an OR. Recognising it as A ⊕ B collapses it to a single gate.

Steps 1→3 are always the same work. Step 4 just rewrites your minimal expression as a picture — the drawing is the expression, laid out in space.

Why this matters for the rest of the theme

Every block in this theme — the adder, the comparator, the multiplexer, the decoder, even the ALU — is just this method applied to a bigger spec. Once a block is designed and tested, you treat it as a single labelled box and wire boxes together. That habit, building bigger blocks from tested smaller ones, is called hierarchical design, and it runs through all of engineering.

✏️ Try it yourself

(a) List the four steps in order. (b) Which step produces a complete, unambiguous spec? (c) At which step do you use a K-map? (d) "Y = 1 only when both inputs are 1." Give the truth table output column (rows 00, 01, 10, 11) and the expression.

(a) specify → truth table → simplify → draw the circuit. (b) the truth table (step 2). (c) step 3, simplify. (d) column 0,0,0,1; expression Y = A·B (a single AND gate).

Recap — the whole topic on one screen

IdeaWhat you own now
Combinationaloutput depends only on present inputs — no memory
The methodspecify → truth table → simplify → draw
Truth tablethe complete spec; written before any optimising
K-map's placestep 3 only — minimise, don't specify
Hierarchical designtested blocks become boxes you wire together

Next topic

The adder: half → full

Time to run the method on the most important block in any processor: the circuit that adds. We'll design the half adder, then the full adder — the cell every wider adder is built from.

→ The adder: half → full