Design of
Combinational Logic
Circuits
Part One
This lecture covers the following:-
• Combinational VS. Sequential Logic Circuits.
• Design Procedure.
• Design Examples:-
– Value Checker.
– Value Multiplier.
– Code Conversion Examples.
– Parity Generator and Parity Checker.
This lecture (and the next) cover most of Chapter Four.
Combinational VS. Sequential Logic Circuits
• Logic circuits for any digital system can be either a
combinational or sequential circuits. A Combinational
Circuit consists of logic gates whose output at any time
is determined directly from the present combination of
inputs, without regard to previous inputs. A Sequential
Circuit is a circuit in which the output depends (at any
time) not only on the inputs at that time, but also on the
previous inputs.
• Sequential circuits are the building blocks of digital
systems and are discussed later in their lectures.
Design Procedure
• The design of combinational circuit starts from the verbal
outline of the problem and ends in a logic circuit diagram
or a set of Boolean functions from which the logic
diagram can be easily obtained. The procedure involves
the following steps:-
1) State the problem clearly.
2) Determine the number of input variables and the
required number of output variables, then Assign
letter symbols to these variables.
3) Derive the truth table which defines the required
relationships between input and output variables.
4) Simplify the resulted output functions using any
desired way (Karnaugh maps are prefered).
5) Draw the logic circuit for the resulted functions.
Design Examples
Design a logic circuit that receives binary
numbers from 0 to 7, and its function is to identify
whether the input number is less than 3 or not.
• The problem is already stated, so let’s jump to determine
the inputs and outputs: Since the input is binary
numbers between 0 and 7, this means that our circuit
should use 3 inputs (7 = 111 in binary), For the output
we need only one output because the circuit will give (1)
if the input number in less than 3 (011) and (0) for any
other value.
• The truth table will be as the next table…
Design Examples
Inputs Output
x y z F
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0
Design Examples
• Now we should simplify the function using Karnaugh
maps, then draw the resulted function:-
yz
00 01 11 10
x
0 1 1 0 1
1 0 0 0 0
F = x'z' + x'y'
Design Examples
Design a combinational logic circuit that
receives binary numbers from 0 to 3, and its function is
to multiply the input number by 2.
• The input is binary numbers between 0 and 3, this
means that our circuit will use 2 inputs (3 = 11 in binary),
For the output we will need three outputs because (2 x 3
= 6 = (110) in binary).
• The truth table will be as the next table…
Design Examples
Inputs Output
x y F1 F2 F3
0 0 0 0 0
0 1 0 1 0
1 0 1 0 0
1 1 1 1 0
• It is clear that F1 = x, F2 = y, and F3 = 0
Design Examples
• The availability of many codes for same discrete
elements of information results in the use of different
codes by different digital systems. It is sometimes
necessary to exchange these information between
systems, thus a conversion circuit must be inserted
between the two systems if the two systems are using
different codes for the information… This circuit is known
as Code Converter.
Design Examples
Design a combinational logic circuit that
converts from BCD to excess-3 code.
• The input is four variables (BCD uses four bits).
• The output is another four variables (also excess-3 uses
4 bits).
• The excess-3 code is simply the number in binary form
plus three in binary also. The truth table will be as the
next table…
Design Examples
Inputs (BCD Code) Output (Excess-3 Code)
A B C D F1 F2 F3 F4
0 0 0 0 0 0 1 1
0 0 0 1 0 1 0 0
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
1 0 1 0 X X X X
1 0 1 1 X X X X
1 1 0 0 X X X X
1 1 0 1 X X X X
1 1 1 0 X X X X
1 1 1 1 X X X X
Design Examples
• Now we should simplify the functions using Karnaugh
maps, then draw the resulted functions:-
CD
00 01 11 10
AB
00 0 0 0 0
01 0 1 1 1
F1 = A + BC + BD
= A + B.(C+D)
11 X X X X
10 1 1 X X
Design Examples
CD
00 01 11 10
AB
00 0 1 1 1
01 1 0 0 0
F2 = B'D + B'C + BC'D'
= B'(C + D) + BC'D'
11 X X X X
= B'(C + D) + B(C + D)‘
10 0 1 X X
Design Examples
CD
00 01 11 10
AB
00 1 0 1 0
01 1 0 1 0
F3 = C'D' + CD
11 X X X X
10 1 0 X X
Design Examples
CD
00 01 11 10
AB
00 1 0 0 1
F4 = D'
01 1 0 0 1
11 X X X X
10 1 0 X X
Design Examples
Design Examples
Design an odd parity bit generator for 3-
bits messages.
• The input is three Inputs Output
variables. x y z P0
• The output is just one 0 0 0 1
variable. 0 0 1 0
• The truth table will be as 0 1 0 0
the table beside… 0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0
Design Examples
• Now we should simplify the functions using Karnaugh
maps, then draw the resulted functions:-
yz
00 01 11 10
x
0 1 0 1 0
1 0 1 0 1
P0 = x'y'z' + x'yz + xy'z + xyz'
= x(y'z + yz') + x'(yz + y'z')
= x(y z)' + x'(y z)
=x (y z)
Design Examples
Design Examples
Design a 3-bit odd parity checker.
• The input is four variables.
• The output is just one variable, which will be (1) when
there is error (parity is wrong) and (0) when everything is
OK.
• The truth table will be as the table beside…
Design Examples
Inputs Output
x y z P0 C0
0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 0 1 1 1
0 1 0 0 0
0 1 0 1 1
0 1 1 0 1
0 1 1 1 0
1 0 0 0 0
1 0 0 1 1
1 0 1 0 1
1 0 1 1 0
1 1 0 0 1
1 1 0 1 0
1 1 1 0 0
1 1 1 1 1
Design Examples
CD
00 01 11 10
AB
00 1 0 1 0
01 0 1 0 1
11 1 0 1 0
10 0 1 0 1
We cannot simplify the function by Karnaugh
maps, let’s try by using Boolean algebra…
Design Examples
C 0 x ' y 'z 'P0 ' x ' y 'zP0 x ' yz 'P0 x 'yzP0 '
xyz 'P0 ' xyzP0 xy 'z 'P0 xy 'zP0 '
x ' y '(z 'P0 ' zP0) xy (z 'P0 ' zP0)
z 'P0(x ' y xy ') zP0 '(x ' y xy ')
(x ' y ' xy )(z 'P0 ' zP0) (z 'P0 zP0 ')(x ' y xy ')
(x y )(z P0) (z P0)'(x y )'
C 0 (x y ) (z P0)