Combinational logic circuits are fundamental building blocks of digital systems in which the output depends only on the present values of the inputs. Unlike sequential circuits, combinational circuits do not store previous states or require memory elements. They are constructed using logic gates and are widely used in arithmetic units, data-selection circuits, coding systems, processors, communication hardware, and control systems. In this tutorial, we will study the complete design methodology of combinational circuits and develop important circuits step by step, including Half Adders, Full Adders, Half Subtractors, Full Subtractors, Multiplexers, Demultiplexers, Encoders, Decoders, and Magnitude Comparators. We will derive their truth tables, Boolean expressions, logic equations, and practical applications.

Table of Contents
1. What Is a Combinational Logic Circuit?
A combinational logic circuit is a digital circuit whose output is determined entirely by its current inputs.
Mathematically:
where:
- represents the current input variables.
- represents the output variables.
- represents the Boolean function implemented by the circuit.
The important point is that the output does not depend on previous input conditions.
For example, if a circuit has inputs and :
Changing or immediately changes the logic conditions that determine , subject to the circuit’s propagation delay.
2. Combinational vs Sequential Circuits
Digital circuits are broadly divided into two categories:
Digital Circuits
│
├── Combinational Logic
│
└── Sequential Logic
The fundamental difference is memory.
| Feature | Combinational Circuit | Sequential Circuit |
|---|---|---|
| Output depends on | Present inputs | Present inputs + previous state |
| Memory | No | Yes |
| Feedback | Normally absent | Commonly present |
| Clock | Not required | Often used |
| Examples | Adder, MUX, Decoder | Counter, Register, Flip-Flop |
A useful way to remember this is:
3. Basic Structure of a Combinational Circuit
A general combinational circuit can be represented as:
Inputs
A B C D
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────────┐
│ Combinational │
│ Logic Network │
└─────────────────┘
│
▼
Outputs
Y1 Y2 Y3
There is no storage element between the inputs and outputs.
The circuit implements one or more Boolean functions:
and so on.
4. Characteristics of Combinational Circuits
A combinational circuit generally has the following characteristics:
1. No memory
It does not store previous input information.
2. Output depends on current input
For a given input combination, the circuit produces a corresponding output combination.
3. No clock is inherently required
Combinational logic itself does not require a clock signal.
4. Can be represented using truth tables
Every possible input combination can be associated with an output.
5. Can be described using Boolean expressions
The circuit behavior can be represented mathematically.
6. Can be implemented using logic gates
AND, OR, NOT, NAND, NOR, XOR, XNOR, and other gates can be used.
5. General Design Procedure
Designing a combinational circuit usually follows a systematic process.
Problem Statement
↓
Identify Inputs & Outputs
↓
Construct Truth Table
↓
Derive Boolean Functions
↓
Simplify Boolean Functions
↓
Draw Logic Circuit
↓
Verify the Design
Let’s examine each step.
6. Step 1 — Identify Inputs and Outputs
First determine:
- What are the input signals?
- What are the output signals?
- What does each signal represent?
For example, in a half adder:
Inputs:
A, B
Outputs:
Sum, Carry
7. Step 2 — Construct the Truth Table
A truth table lists every possible input combination.
For inputs, the number of possible combinations is:
For two inputs:
Therefore, a two-input circuit requires four truth-table rows.
8. Step 3 — Derive Boolean Expressions
From the truth table, identify the input combinations that produce output 1.
For SOP representation:
The Boolean expression can then be simplified using:
- Boolean algebra
- Karnaugh maps
- Logic minimization techniques
9. Step 4 — Implement the Logic
After obtaining the simplified Boolean expression, convert it into a gate-level circuit.
For example:
requires:
- AND gate for
- OR gate to combine and
10. Half Adder
A Half Adder is a combinational circuit used to add two single-bit binary numbers.
It has:
Inputs
Outputs
Block representation:
A ─────┐
│
▼
┌───────────┐
│ Half │
│ Adder │
└───────────┘
│ │
▼ ▼
S C
B ─────┘
11. Half Adder Truth Table
| A | B | Sum | Carry |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Observe that the Sum output is 1 when the inputs are different.
That is exactly the behavior of an XOR gate.
Therefore:
The Carry output is 1 only when both inputs are 1:
12. Half Adder Logic
The Half Adder therefore requires:
Sum → XOR gate
Carry → AND gate
Its equations are:
Using only AND, OR, and NOT gates:
Therefore:
13. Limitation of the Half Adder
The Half Adder cannot accept a carry input from a previous bit position.
This becomes a problem when adding multi-bit binary numbers.
For example, when adding:
1011
+ 0110
------
a carry generated by one bit position must be passed into the next position.
A Half Adder has no carry-in input.
This leads to the Full Adder.
14. Full Adder
A Full Adder adds three single-bit inputs:
where:
It produces:
and:
Block representation:
A ───────┐
B ───────┼──► Full Adder ───► S
Cin ─────┘ └──► Cout
15. Full Adder Truth Table
| A | B | S | ||
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 |
16. Full Adder Sum Equation
The Sum output is 1 for:
Therefore:
The standard Boolean expression is:
This simplifies to the XOR form:
17. Full Adder Carry Equation
The Carry output is 1 whenever at least two of the three inputs are 1.
Therefore:
This is an important equation to remember.
The complete Full Adder equations are:
18. Full Adder Using Two Half Adders
A Full Adder can be constructed using:
- Two Half Adders
- One OR gate
First Half Adder:
Second Half Adder:
Final carry:
Therefore:
which is equivalent to:
19. Multi-Bit Binary Addition
Full Adders can be connected to create multi-bit adders.
For a 4-bit addition:
A0 B0 ─► FA0 ─► C1
A1 B1 ─► FA1 ─► C2
A2 B2 ─► FA2 ─► C3
A3 B3 ─► FA3 ─► C4
The carry output from one stage becomes the carry input of the next stage.
This structure is called a ripple-carry adder.
20. Ripple-Carry Adder
A ripple-carry adder consists of multiple Full Adders connected in cascade.
For four bits:
The carry effectively propagates from the least significant bit toward the most significant bit.
This propagation introduces delay.
That limitation motivates faster adder architectures such as carry-lookahead adders.
21. Half Subtractor
A Half Subtractor subtracts one single-bit binary number from another.
Inputs:
where is the minuend and is the subtrahend.
Outputs:
22. Half Subtractor Truth Table
| A | B | Difference | Borrow |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
The Difference behaves like XOR:
Borrow occurs only when:
Therefore:
23. Full Subtractor
A Full Subtractor performs subtraction involving:
- Minuend
- Subtrahend
- Borrow-in
Outputs:
- Difference
- Borrow-out
24. Full Subtractor Truth Table
| A | B | D | ||
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 0 |
| 1 | 1 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 | 1 |
The Difference equation is:
The Borrow-out equation can be written as:
25. Multiplexer
A Multiplexer, commonly called a MUX, is a digital data-selection circuit.
It selects one input from multiple input lines and connects the selected input to a single output.
A basic 2-to-1 MUX has:
Inputs:
I0
I1
Select:
S
Output:
Y
Block representation:
I0 ─────┐
│
I1 ─────┤ MUX ───► Y
│
S ─────┘
26. 2-to-1 Multiplexer Truth Table
| S | Output |
|---|---|
| 0 | |
| 1 |
Therefore:
When:
When:
27. Why Is a MUX Important?
A multiplexer allows several data sources to share a single output path.
It can be used for:
- Data selection
- Bus routing
- Processor datapaths
- Communication systems
- Digital switching
- Logic-function implementation
A MUX can also be used to implement Boolean functions.
28. 4-to-1 Multiplexer
A 4-to-1 MUX has:
Because:
Two select lines are sufficient to select one of four inputs.
The inputs are:
Select lines:
29. 4-to-1 MUX Selection Table
| Output | ||
|---|---|---|
| 0 | 0 | |
| 0 | 1 | |
| 1 | 0 | |
| 1 | 1 |
The Boolean expression is:
30. Demultiplexer
A Demultiplexer, or DEMUX, performs the opposite type of routing operation from a MUX.
A DEMUX takes:
and routes it to one of several outputs according to the select lines.
Conceptually:
┌───────────┐
Input ──────►│ DEMUX ├──► Y0
Select ─────►│ ├──► Y1
│ ├──► Y2
│ └──► Y3
└───────────┘
31. 1-to-4 DEMUX
A 1-to-4 DEMUX has:
- One data input
- Two select lines
- Four outputs
The outputs are:
Only one output receives the input signal for a given select combination.
32. Encoder
An Encoder converts one active input among several input lines into a binary code.
A basic encoder can have:
and:
For example:
means:
8 input lines
↓
Encoder
↓
3-bit binary output
33. 4-to-2 Encoder
A basic 4-to-2 encoder has:
Inputs:
D0 D1 D2 D3
Outputs:
Y1 Y0
Assuming only one input is active at a time:
| Active Input | |
|---|---|
| 00 | |
| 01 | |
| 10 | |
| 11 |
The Boolean equations are:
A practical encoder often needs an additional valid output or priority mechanism when multiple inputs may be active.
34. Priority Encoder
A normal encoder assumes that only one input is active at a time.
A priority encoder resolves situations where multiple inputs are active by assigning priority to one input.
For example:
Highest priority
↓
D3
D2
D1
D0
↓
Lowest priority
If both and are active, the encoder outputs the code corresponding to .
Priority encoders are widely used in interrupt systems and arbitration logic.
35. Decoder
A Decoder performs the reverse conceptual operation of an encoder.
It converts an -bit binary input into one of up to:
output lines.
For example:
means:
2-bit input
↓
Decoder
↓
4 output lines
36. 2-to-4 Decoder
Inputs:
Outputs:
The outputs are:
37. 2-to-4 Decoder Truth Table
| A | B | ||||
|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 | 0 | 1 |
Only one output is active for each input combination, assuming an active-high decoder with no enable input.
38. Decoder Applications
Decoders are widely used in:
- Memory address decoding
- Instruction decoding
- Display systems
- Chip selection
- Data routing
- Control systems
A decoder can also be used to generate minterms of a Boolean function.
39. Multiplexer vs Demultiplexer
| Feature | MUX | DEMUX |
|---|---|---|
| Basic function | Selects one input | Routes one input |
| Data inputs | Multiple | One |
| Data outputs | One | Multiple |
| Select lines | Used to select input | Used to select output |
| Common use | Data selection | Data distribution |
Simple memory aid:
40. Encoder vs Decoder
| Feature | Encoder | Decoder |
|---|---|---|
| Conversion | ||
| Purpose | Generate binary code | Activate selected output |
| Example | 8-to-3 | 3-to-8 |
| Typical use | Keyboards, priority logic | Memory selection, decoding |
Memory aid:
41. Magnitude Comparator
A Magnitude Comparator compares two binary numbers and determines whether:
or:
For two single-bit inputs and , there are three possible relationships.
42. 1-Bit Comparator
The equality output is:
where represents XNOR.
Equivalently:
The greater-than output is:
The less-than output is:
43. Comparator Truth Table
| A | B | |||
|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 0 | 0 |
| 1 | 1 | 0 | 1 | 0 |
Notice that exactly one of the three comparison outputs is active for each input combination.
44. Multi-Bit Comparator
For multi-bit numbers, comparison begins with the most significant bit (MSB).
Suppose:
and:
First compare:
If they differ, the result is determined immediately.
If they are equal, compare:
and continue toward the LSB.
This is the fundamental principle behind multi-bit magnitude comparison.
45. Parity Generator
Another important combinational circuit is the parity generator.
Parity is commonly used for simple error detection.
For three data bits:
an even-parity bit can be generated using:
The parity bit is selected so that the total number of 1s becomes even.
A corresponding parity checker can use XOR gates to test the received data and parity bit.
46. Combinational Circuit Design Example
Let’s design a simple circuit whose output is 1 whenever at least two of three inputs are 1.
Inputs:
Output:
The truth table gives:
| A | B | C | Y |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Therefore:
The simplified Boolean expression is:
This circuit is a majority function because the output becomes 1 whenever at least two inputs are 1.
47. Why K-Maps Matter Here
Notice the progression:
Truth Table
↓
Minterms
↓
K-map
↓
Boolean Simplification
↓
Logic Circuit
This connects the previous blog directly to combinational circuit design.
K-maps are therefore not an isolated topic. They are a practical design tool.
48. Universal Gates in Combinational Logic
Combinational circuits can be implemented using:
- AND
- OR
- NOT
- NAND
- NOR
- XOR
- XNOR
Two gates are especially important because they are universal gates:
and:
Any Boolean function can theoretically be implemented using only NAND gates or only NOR gates.
This is important in practical digital hardware design.
49. Propagation Delay
Although combinational circuits do not have memory, their outputs are not physically instantaneous.
When an input changes, the signal takes a finite amount of time to propagate through the gates.
This is called propagation delay.
Conceptually:
Input changes
↓
Gate 1 delay
↓
Gate 2 delay
↓
Gate 3 delay
↓
Output changes
Longer logic paths generally create greater propagation delay.
This is another reason why Boolean minimization and efficient circuit architecture matter.
50. Hazards in Combinational Circuits
Combinational circuits can experience temporary unwanted output transitions called hazards.
They can occur because different logic paths have different propagation delays.
For example, two paths that theoretically change at the same time may physically arrive at slightly different times.
This can produce a short unwanted pulse.
Hazards are especially important in high-speed digital systems and asynchronous logic.
K-map analysis can also be used to identify and eliminate certain static hazards by adding appropriate redundant terms.
51. Important Combinational Circuits
At this point, the major circuits in this category can be summarized as:
| Circuit | Main Function |
|---|---|
| Half Adder | Adds 2 bits |
| Full Adder | Adds 3 bits including carry |
| Half Subtractor | Subtracts 2 bits |
| Full Subtractor | Subtracts with borrow-in |
| Multiplexer | Selects data |
| Demultiplexer | Distributes data |
| Encoder | Converts active input to code |
| Decoder | Converts code to active output |
| Comparator | Compares binary values |
| Parity Generator | Generates parity information |
52. Important Equations
Half Adder
Full Adder
Half Subtractor
Full Subtractor
2-to-1 MUX
1-Bit Comparator
53. Common Mistakes
Mistake 1 — Confusing Carry and Sum
For a Half Adder:
Do not interchange these equations.
Mistake 2 — Forgetting Carry-In
A Full Adder has three inputs:
A Half Adder has only:
Mistake 3 — Confusing MUX and DEMUX
Remember:
Mistake 4 — Confusing Encoder and Decoder
Remember:
Mistake 5 — Incorrect Full-Adder Carry Equation
The standard Full Adder carry equation is:
54. Practice Problems
Problem 1
Derive the Boolean expressions for a Half Adder.
Problem 2
Derive the Sum and Carry equations of a Full Adder.
Problem 3
Design a Half Subtractor and derive its Difference and Borrow equations.
Problem 4
Derive the Boolean expression for a 2-to-1 MUX.
Problem 5
How many select lines are required for a 16-to-1 MUX?
Problem 6
How many outputs are present in a 3-to-8 Decoder?
Problem 7
How many input lines does an 8-to-3 Encoder have?
Problem 8
For a 1-bit comparator, derive the equations for:
55. Answers
Problem 1
Problem 2
Problem 3
Problem 4
Problem 5
For 16 inputs:
Therefore:
Problem 6
Problem 7
Problem 8
56. Quick Revision Sheet
COMBINATIONAL LOGIC
↓
Output depends only on present inputs
↓
No memory
↓
No previous state required
Adders
Subtractors
Multiplexer
Demultiplexer
Encoder
Decoder
Comparator
Conclusion
Combinational logic circuits form the foundation of digital hardware because they transform current input conditions into useful outputs without storing previous states. Starting from simple Half Adders and Full Adders, we can build arithmetic systems capable of performing multi-bit operations. Similarly, subtractors, multiplexers, demultiplexers, encoders, decoders, comparators, and parity circuits provide essential functions for data processing, routing, coding, comparison, and control.
The most important design workflow is:
Understanding this workflow is more important than memorizing individual circuits because it gives you the ability to design a new combinational circuit from its required behavior.
Next Blog — Sequential Logic Circuits
The next stage of the Digital Electronics series is Sequential Logic.
We will move from circuits with no memory to circuits that can store and respond to previous states.
Topics will include:
- Sequential vs combinational logic
- Latches
- SR latch
- D latch
- Flip-flops
- SR flip-flop
- JK flip-flop
- D flip-flop
- T flip-flop
- Characteristic equations
- Excitation tables
- Race-around condition
- Master-slave flip-flops
- Registers
- Shift registers
- Counters
- Synchronous and asynchronous counters
- State diagrams
- State tables
The progression becomes: Boolean Algebra→K-Maps→Combinational Logic→Sequential Logic


