Combinational Circuits - 3
Combinational Circuits - 3
Part I
Objectives
• Decoders
• Encoders
• Multiplexers
• DeMultiplexers
Functional Blocks
• Digital systems
consists of many
components (blocks)
• Useful blocks needed
in many designs
• Arithmetic blocks
• Decoders
• Encoders
• Multiplexers
n-to-2n .
n inputs . 2n outputs
.
Decoder
.
Add
Sub
And
op0 3-to-8 Xor
op1 Decoder Not Light
op2 C0 2-to-4 A/C
Load
Store C1 Decoder Door
Jump Light-A/C
Load a
Add b
Store c
.
.
Decoder with Enable
n-to-2n .
n inputs . 2n outputs
.
Decoder
.
Enable bit
2-to-4 Decoder
• A 2-to-4 Decoder
– 2 inputs (A1, A0)
– 22 = 4 outputs (D3, D2, D1, D0)
2-to-4 Decoder
• A 2-to-4 Decoder
– 2 inputs (A1, A0)
– 22 = 4 outputs (D3, D2, D1, D0)
– Truth Table
A1 A0 D0 D1 D2 D3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1
2-to-4 Decoder
• A 2-to-4 Decoder
– 2 inputs (A1, A0)
– 22 = 4 outputs (D3, D2, D1, D0)
– Truth Table
A1 A0 D0 D1 D2 D3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1
Src: Mano’s book
2-to-4 Decoder with Enable
Truth Table
EN A1 A0 D0 D1 D2 D3
0 X X 0 0 0 0
1 0 0 1 0 0 0
1 0 1 0 1 0 0
1 1 0 0 0 1 0
1 1 1 0 0 0 1
2-to-4 Decoder with Enable
Truth Table
EN A1 A0 D0 D1 D2 D3
0 X X 0 0 0 0
1 0 0 1 0 0 0
1 0 1 0 1 0 0
1 1 0 0 0 1 0
1 1 1 0 0 0 1
D0
D1
D2
A0 3-to-8 D3
A1
Decoder D4
A2 D5
D6
D7
3-to-8 Decoder
A2 A1 A0 D0 D1 D2 D3 D4 D5 D6 D7
D0
D1 0 0 0 1 0 0 0 0 0 0 0
D2 0 0 1 0 1 0 0 0 0 0 0
A0 3-to-8 D3
A1 0 1 0 0 0 1 0 0 0 0 0
Decoder D4
A2 D5
D6 0 1 1 0 0 0 1 0 0 0 0
D7
1 0 0 0 0 0 0 1 0 0 0
1 0 1 0 0 0 0 0 1 0 0
1 1 0 0 0 0 0 0 0 1 0
1 1 1 0 0 0 0 0 0 0 1
3-to-8 Decoder
D0
D1
D2
A0 3-to-8 D3
A1
Decoder D4
A2 D5
D6
D7
3-to-8 Decoder (using 2 2-to-4 decoders)
D0
D0 A0 2-to-4 D1
D1 A1 Decoder D2
D2 D3
A0 E
3-to-8 D3
A1
Decoder D4 A2
A2 D5
D6
D7 D4
A0 2-to-4 D5
A1 Decoder D6
E D7
Decoder-Based Combinational Circuits
S = ∑m (1,2,4,7)
C = ∑m (3,5,6,7)
X Y Z C S
3 inputs and 8 possible minterms
0 0 0 0 0 3-to-8 decoder can be used for implementing this circuit
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
Decoder-Based Combinational Circuits
(Example)
S = ∑m (1,2,4,7)
C = ∑m (3,5,6,7)
X Y Z C S
3 inputs and 8 possible minterms
0 0 0 0 0 3-to-8 decoder can be used for implementing this circuit
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
• Good if:
• Many output functions with same inputs
• Each output has few minterms
• Hint:
• Check if the function complement has fewer
minterms and use NOR instead of OR.
Encoder
. 2n-to-n
2n inputs . n outputs
.
Encoder
.
•Description:
•23 = 8 inputs, 3 outputs
inputs outputs
D7 D6 D5 D4 D3 D2 D1 D0 A2 A1 A0
D0
D1 0 0 0 0 0 0 0 1 0 0 0
D2
D3 8-to-3 A0 0 0 0 0 0 0 1 0 0 0 1
D4 Encoder A1 0 0 0 0 0 1 0 0 0 1 0
D5 A2
D6 0 0 0 0 1 0 0 0 0 1 1
D7
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1
8-to-3 Encoder (truth table)
inputs outputs
D7 D6 D5 D4 D3 D2 D1 D0 A2 A1 A0
1 D0
0 D1 0 0 0 0 0 0 0 1 0 0 0
0 D2
0 D3 8-to-3 A0 0 0 0 0 0 0 0 1 0 0 0 1
0 D4 Encoder A1 0
0 0 0 0 0 1 0 0 0 1 0
D5 A2 0
0
0 D6 0 0 0 0 1 0 0 0 0 1 1
0 D7
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1
8-to-3 Encoder (truth table)
inputs outputs
D7 D6 D5 D4 D3 D2 D1 D0 A2 A1 A0
0 D0
1 D1 0 0 0 0 0 0 0 1 0 0 0
0 D2
0 D3 8-to-3 A0 1 0 0 0 0 0 0 1 0 0 0 1
0 D4 Encoder A1 0
0 0 0 0 0 1 0 0 0 1 0
D5 A2 0
0
0 D6 0 0 0 0 1 0 0 0 0 1 1
0 D7
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1
8-to-3 Encoder (truth table)
inputs outputs
D7 D6 D5 D4 D3 D2 D1 D0 A2 A1 A0
0 D0
0 D1 0 0 0 0 0 0 0 1 0 0 0
0 D2
0 D3 8-to-3 A0 1 0 0 0 0 0 0 1 0 0 0 1
0 D4 Encoder A1 0
0 0 0 0 0 1 0 0 0 1 0
D5 A2 1
1
0 D6 0 0 0 0 1 0 0 0 0 1 1
0 D7
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1
8-to-3 Encoder (truth table)
inputs outputs
D7 D6 D5 D4 D3 D2 D1 D0 A2 A1 A0
0 D0
0 D1 0 0 0 0 0 0 0 1 0 0 0
0 D2
0 D3 8-to-3 A0 1 0 0 0 0 0 0 1 0 0 0 1
0 D4 Encoder A1 1
0 0 0 0 0 1 0 0 0 1 0
D5 A2 1
0
0 D6 0 0 0 0 1 0 0 0 0 1 1
1 D7
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1
8-to-3 Encoder (equations)
inputs outputs
D7 D6 D5 D4 D3 D2 D1 D0 A2 A1 A0
D0
D1 0 0 0 0 0 0 0 1 0 0 0
D2
D3 8-to-3 A0 0 0 0 0 0 0 1 0 0 0 1
D4 Encoder A1 0 0 0 0 0 1 0 0 0 1 0
D5 A2
D6 0 0 0 0 1 0 0 0 0 1 1
D7
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
Output equations:
0 1 0 0 0 0 0 0 1 1 0
A0 = ? 1 0 0 0 0 0 0 0 1 1 1
A1 = ?
A2 = ? Note: This truth table is not complete! Why?
8-to-3 Encoder (equations)
inputs outputs
D7 D6 D5 D4 D3 D2 D1 D0 A2 A1 A0
D0
D1 0 0 0 0 0 0 0 1 0 0 0
D2
D3 8-to-3 A0 0 0 0 0 0 0 1 0 0 0 1
D4 Encoder A1 0 0 0 0 0 1 0 0 0 1 0
D5 A2
D6 0 0 0 0 1 0 0 0 0 1 1
D7
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
Output equations:
0 1 0 0 0 0 0 0 1 1 0
A0 = D1 + D3 + D5 + D7 1 0 0 0 0 0 0 0 1 1 1
A1 = ?
A2 = ?
8-to-3 Encoder (equations)
inputs outputs
D7 D6 D5 D4 D3 D2 D1 D0 A2 A1 A0
D0
D1 0 0 0 0 0 0 0 1 0 0 0
D2
D3 8-to-3 A0 0 0 0 0 0 0 1 0 0 0 1
D4 Encoder A1 0 0 0 0 0 1 0 0 0 1 0
D5 A2
D6 0 0 0 0 1 0 0 0 0 1 1
D7
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
Output equations:
0 1 0 0 0 0 0 0 1 1 0
A0 = D1 + D3 + D5 + D7 1 0 0 0 0 0 0 0 1 1 1
A1 = D2 + D3 + D6 + D7
A2 = ?
8-to-3 Encoder (equations)
inputs outputs
D7 D6 D5 D4 D3 D2 D1 D0 A2 A1 A0
D0
D1 0 0 0 0 0 0 0 1 0 0 0
D2
D3 8-to-3 A0 0 0 0 0 0 0 1 0 0 0 1
D4 Encoder A1 0 0 0 0 0 1 0 0 0 1 0
D5 A2
D6 0 0 0 0 1 0 0 0 0 1 1
D7
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
Output equations:
0 1 0 0 0 0 0 0 1 1 0
A0 = D1 + D3 + D5 + D7 1 0 0 0 0 0 0 0 1 1 1
A1 = D2 + D3 + D6 + D7
A2 = D4 + D5 + D6 + D7
8-to-3 Encoder (circuit)
D1
D0 D3
D1 D5 A0
D2 D7
D3 8-to-3 A0
D4 Encoder A1 D2
A2 D3
D5 D6
A1
D6 D7
D7
D4
D5 A2
D6
Output equations: D7
A0 = D1 + D3 + D5 + D7
A1 = D2 + D3 + D6 + D7
A2 = D4 + D5 + D6 + D7
8-to-3 Encoder (limitations)
inputs outputs
Two Limitations:
D7 D6 D5 D4 D3 D2 D1 D0 A2 A1 A0
1. Two or more inputs = 1 0 0 0 0 0 0 0 1 0 0 0
• Example: D3 = D6 = 1
• A2A1A0 = 111 0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 1 0 0 0 1 0
2. All inputs = 0
0 0 0 0 1 0 0 0 0 1 1
• Same as D0 =1
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
Output equations:
0 1 0 0 0 0 0 0 1 1 0
A0 = D1 + D3 + D5 + D7 1 0 0 0 0 0 0 0 1 1 1
A1 = D2 + D3 + D6 + D7
A2 = D4 + D5 + D6 + D7
Priority Encoder
Description:
• 22 = 4 inputs, 2 + 1 outputs
• Two or more 1’s take highest
priority
4-to-2 Priority Encoder
Description:
• 22 = 4 inputs, 2 + 1 outputs
• Two or more 1’s take highest
priority
inputs outputs
D3 D2 D1 D0 A1 A0 V
This is a condensed truth table!
0 0 0 0 X X 0 It has only 5 rows instead of 16!
0 0 0 1 0 0 1
0 0 1 X 0 1 1 Row 3 = 2 combinations
Row 4 = 4 combinations
0 1 X X 1 0 1 Row 5 = 8 combinations
1 X X X 1 1 1
4-to-2 Priority Encoder
Description:
• 22 = 4 inputs, 2 + 1 outputs
• Two or more 1’s take highest
priority
inputs outputs
D3 D2 D1 D0 A1 A0 V
0 0 0 0 X X 0
0 0 0 1 0 0 1
0 0 1 X 0 1 1
0 1 X X 1 0 1
1 X X X 1 1 1
4-to-2 Priority Encoder
Description:
• 22 = 4 inputs, 2 + 1 outputs
• Two or more 1’s take highest
priority
inputs outputs
D3 D2 D1 D0 A1 A0 V
0 0 0 0 X X 0
0 0 0 1 0 0 1
Equations:
0 0 1 X 0 1 1 A0 = D3 + D1 D2’
0 1 X X 1 0 1 A1 = D2 + D3
V = D0 + D1 + D2 + D3
1 X X X 1 1 1
4-to-2 Priority Encoder
Description:
• 22 = 4 inputs, 2 + 1 outputs
• Two or more 1’s take highest
priority
inputs outputs
D3 D2 D1 D0 A1 A0 V
0 0 0 0 X X 0
0 0 0 1 0 0 1
Equations:
0 0 1 X 0 1 1 A0 = D3 + D1 D2’
0 1 X X 1 0 1 A1 = D2 + D3
V = D0 + D1 + D2 + D3
1 X X X 1 1 1
Multiplexers (Data Selectors)
2n x 1
2n inputs one output
MUX
n select lines
• Multiplexer selects 1-out-of-2n input data sources and
transmits the selected data to a single output channel
2x1 MUX
D0 2x1 Y
D1 MUX
S0
• A 4x1 MUX will have 4 input lines (D0, D1, D2, D3) and 1 output Y
with 2 Select Lines (S0, S1)
• The output for different select values is defined as:
• S0S1 = 00, Y = D0
D0
• S0S1 = 01, Y = D1
D1
• S0S1 = 10, Y = D2 4x1
D2 MUX Y
• S0S1 = 11, Y = D3
D3
S1 S0
• Y = S1S0D0 + S1S0D1 + S1S0D2 + S1S0D3
• The output Y depends on the minterms of the Select lines
Quad 2x1 MUX
A0 2x1 A1 2x1
Y0 Y1
B0 MUX B1 MUX
S0 S0
A2 2x1 A3 2x1
Y2 Y3
B2 MUX B3 MUX
S0 S0
Quad 2x1 MUX
A0
A1
A2 Y0
QUAD
A3 Y1
Y = A If S0 = 0 2X1
B0 Y2
Y = B if S0=1 MUX
B1 Y3
B2
B3
S0
MUX-based Design
D0
F(A,B,C)=∑(1,3,5,6)
0
1 D1 A B C F
0 D2 0 0 0 0
1 D3 0 0 1 1
0 D4 Y
0 1 0 0
1 D5
S0 0 1 1 1
1 D6 S1
S2 1 0 0 0
0 D7
1 0 1 1
1 1 0 1
A B C
1 1 1 0
MUX-based Design (n-1 Select lines)
A B C F
F(A,B,C)=∑(1,2,6,7)
0 0 0 0
F=C
0 0 1 1 C D0
0 1 0 1 C’ D1
F = C’ 0 D2 F
0 1 1 0 S1 S0
D3
1
1 0 0 0
F=0 A B
1 0 1 0
1 1 0 1
F=1
1 1 1 1
Another Example
F(A,B,C,D)=∑(1,3,4,11,12,13,14,15)
A B C D F
0 0 0 0 0
F=D
0 0 0 1 1 D D0
0 0 1 0 0
F=D D1
0 0 1 1 1
D2
0 1 0 0 1
F = D’ 8x1
0 1 0 1 0 D3 F
0
0 1 1 0 0
F=0 D4 MUX
0 1 1 1 0
1 0 0 0 0
D5
F=0
1 0 0 1 0 1 D6
1 0 1 0 0
F=D D7
1 0 1 1 1 S2 S1 S0
1 1 0 0 1
F=1
1 1 0 1 1
1 1 1 0 1
F=1 A B C
1 1 1 1 1
DeMultiplexer
1x2 D0
E
DeMUX D1
S
1x4 DeMUX
D0
1x4 D1
E
DeMUX D2
D3
S0 S1
• Magnitude comparator
• Design of 4-bit magnitude comparator
• Inputs
EQ
– First n-bit number A n-bit input
– Second n-bit number B B
LE
• Outputs
– 3 output signals (GT, EQ, LT), where:
• GT = 1 IF A > B
• EQ = 1 IF A = B
• LT = 1 IF A < B
• Note: Exactly One of these 3 outputs equals 1, while the
other 2 outputs are 0`s
Example 1: Magnitude Comparator (4-bit)
• Solution:
• Inputs: 8-bits (A ⇒ 4-bits , B ⇒ 4-
bits)
4-bit input 4-bit magnitude GT
– A and B are two 4-bit numbers
A comparator
• Let A = A3A2A1A0 , and
• Let B = B3B2B1B0 EQ
4-bit input
• Inputs have 28 (256) possible B
LE
combinations (size of truth table
and K-map?)
• Not easy to design using
conventional techniques
The circuit possesses certain amount of regularity
⇒ can be designed algorithmically.
Example 1: Magnitude Comparator (4-bit)
• Designing EQ:
• ➔ Xi = 1 IF Ai = Bi ∀ i =0, 1, 2 and 3
GT = 1 if A > B:
• If A3 > B3 → A3 = 1 and B3 = 0
• If A3 = B3 and A2 > B2
• If A3 = B3 and A2 = B2 and A1 > B1
• If A3 = B3 and A2 = B2 and A1 = B1 and A0 > B0
• Therefore,
– GT = A3B3‘ + X3 A2 B2‘ + X3 X2 A1 B1‘ + X3 X2 X1A0 B0‘
• Similarly,
– LT = A3’B3 + X3 A2‘B2 + X3 X2 A1’B1 + X3 X2 X1A0’ B0
Example 1: Magnitude Comparator (4-bit)
• EQ = X3 X2 X1 X0
• GT = A3B3’
+ X3A2B2’
+ X3X2A1B1’
+ X3X2X1A0B0’
• LT = B3A3’
+ X3B2A2’
+ X3X2B1A1’
+ X3X2X1B0A0’
XNOR
= x3 x2 x1 x0
Example 1: Magnitude Comparator (4-bit)
X3X2X1X0 S3S2S1S0
+ Y3Y2Y1Y0 + Z3Z2Z1Z0
------------------- -------------------
C4 S3S2S1S0 D4 F3F2F1F0
Note: C4 and D4 is generated in position 4. They must be
added to generate the most significant bits of the result
Example 2: Adding three 4-bit numbers
Example 3: 4-to-16 Decoder
A3 A2 A1 A0 Output
Problem: Design a 4x16 Decoder 0 0 0 0 D0
D0
A0 2x4 D1
A1 Decoder D2
D3
D4
A0 2x4 D5
A1 Decoder D6
D7
A2 2x4
A3 Decoder D8
A0 2x4 D9
A1 Decoder D10
D11
D12
A0 2x4 D13
A1 Decoder D14
D15
Example 4: The larger of 2 numbers
B0
B1
A0 B2 Y0
A1
QUAD
B3 Y1
A2 A>B
4-bit GT A0 2X1 Y2
A3
A<B
Magnitude LT A1 MUX Y3
B0 A=B
Comparator EQ A2
B1
B2
A3
B3 For So=1, A
S0 is selected,
For So=0, B
is selected
Example 5: Excess-3 Code Converter
0 0 1 0 0 1 0 1
0 0 1 1 0 1 1 0
0 1 0 0 0 1 1 1
0 1 0 1 1 0 0 0
0 1 1 0 1 0 0 1
0 1 1 1 1 0 1 0
1 0 0 0 1 0 1 1
1 0 0 1 1 1 0 0
Example 5: Excess-3 Code Converter