Combinational Circuit

Definition

A Combinational Circuit can provide output instantly based on the current input. It only listens for input signal and and generates output no matter what is the past input as it has no feedback or memory component.

Based on this property of caring only about the present input, we can use the idea of function in maths to vividly understand combinational circuits.

Combinational circuits are functions

In the figure below, the combinational circuit actually acts as a function ff. Given the same input (input signal) in whatever order, it will always generate the same output (output signal).

Combinational Design Process

1

Capture the function

  1. Form the truth table according to the given behavior, and write down the SOm or POM.

  2. Form the equation (SOm or POM) directly by counting all the possible desired cases.

2

Convert to circuit

  1. Create equation: First, if you used a truth table in Step 1, create equations

  2. Implement using gates: For each output (term in the equation above), create a circuit corresponding to that output's equation.

Example: Three 1s Pattern Detector

Problem Statement (Behavior description): Detect three adjacent 1's in an 8-bit input. For example, 00011101 -> 1, 10110011 -> 0, 01110001 -> 1, etc.

1

Capture the function

There are 8 inputs here, and it will be too tedious if we create a truth table. So, we write the SOm directly, and it will be

y=abc+bcd+cde+def+efg+fghy=abc+bcd+cde+def+efg+fgh

where yy is the output, a,b,c,d,e,f,g,ha,b,c,d,e,f,g,h describes the eight inputs

2

Convert to Circuit

  1. Create equation: We have already create equation in step 1, and it is obviously not the simplest standard form. But we still can use the expression to implement the gate, it's just that it will be a bit tedious.

  2. Implement using gates: For each output term, like abcabc, we will use a AND gate with three inputs and one output (denoted as abc on the output line). The final gate level implementation should look as follows

Decoder

A decoder is a basic circuit that takes a binary input number, and outputs a corresponding one-hot output.

Attention

In general, decoders can be referred to as n-m decoders. e.g., 2-4 decoder, 3-8 decoder, etc.

Internal Design

Based on the property of the decoder, to design a decoder, we can use AND gate for each output to detect input combination. e.g., the following is the internal design for a 2-4 decoder.

Example: 7-Segment Decoder

A seven segment decoder is a basic circuit that maps a 4-bit binary input to a 7-bit binary output, where in the output, multiple bits can be set to HIGH, and each bit is connected to one LED.

Implement a 7-Segment Decoder

1

Capture the Function

Here, we form the truth table for the 7-segment decoder.

Decimal
Input (wxyz)
a
b
c
d
e
f
g
abcdefg

0

0000

1

1

1

1

1

1

0

1111110

1

0001

0

1

1

0

0

0

0

0110000

2

0010

1

1

0

1

1

0

1

1101101

3

0011

1

1

1

1

0

0

1

1111001

4

0100

0

1

1

0

0

1

1

0110011

5

0101

1

0

1

1

0

1

1

1011011

6

0110

1

0

1

1

1

1

1

1011111

7

0111

1

1

1

0

0

0

0

1110000

8

1000

1

1

1

1

1

1

1

1111111

9

1001

1

1

1

1

0

1

1

1111011

2

Convert to Circuit

  1. Create equation: Here, we need to create a circuit for each segment, thus we should generate a K-map for each segment/output a,b,c,d,e,f,g, and then obtain the Boolean Expression for each segment/output.

  2. Implement using gates: Nothing tricky here. Just use gates to implement out the Boolean expression for each segment.

Is 7-segment decoder a decoder?

Technically, a 7 segment decoder cannot be considered as a decoder because its output is not one-hot. In a 7 segment decoder, multiple bits in its output can be set to HIGH.

But, broadly speaking, in digital design, the term "decoder" is often used more broadly to mean

A logic circuit that translates or maps an input pattern into a useful output format.

In that sense, a 7-segment decoder "decodes" a 4-bit binary digit into signals that drive the display segments. So while it's not a pure one-hot decoder, it serves a decoding function — turning binary numbers into human-readable digits on a display.

Notes

1

In combinational circuit, each output bit has its own logic circuit

In this 7-segment decoder example, we notice that each segment/output bit has its own boolean expression, a.k.a, has its own logic circuit. This is actually a very common design in combinational circuit, where each output bit is designed independently, using its own Boolean expression (derived from truth tables or K-maps).

Multiplexer

A multiplexer (MUX) is a device that selects one of several input signals and forwards it to a single output line. Thus, a multiplexer will have

  1. Several input signal lines

  2. One or several select lines

  3. "One" output signal line

Attention

Internal Design

The internal design of a multiplexer also uses an AND gate to "filter" each input signal according to the select line input and then combine them together using a OR gate.

The internal design of a 4x1 multiplexer

Example: Use multiplexer to select multiple bits

This is done by combining several multiplexers together. e.g., the following is a 4bit 2x1 multiplexer, which means the two inputs are two 4-bit signal, and the one select line will select which 4-bit input will be forwarded to the output. (This is the meaning behind the "One" from above)

In the implementation, it is actually done by combining four 2x1 multiplexers which shares the same select line to select between A and B.

Notes

1

Multiplexer Drawing Convention

MUXes are so common that they are often drawn using their own symbol.

Timing Diagram

Definition

Timing diagram is a diagram that shows the behavior of a circuit with progression of time.

Example: AND Gate

The timing diagram for an AND gate is shown as follows,

Attention

Last updated