0% found this document useful (0 votes)
101 views21 pages

K - Map Simplication and Binary Adder

Karnaugh maps are a visual tool used to simplify logical expressions with up to 5 variables. They arrange the variables in a grid according to their binary values. Values of the expression are written in the cells and grouped to find prime implicants. The simplified expression is obtained by combining the groups. Don't care conditions can be treated as 0 or 1 to obtain the simplest expression. Full adders add three binary bits and are used as building blocks in ripple carry adders to perform multi-bit addition.

Uploaded by

abeltherealfm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
101 views21 pages

K - Map Simplication and Binary Adder

Karnaugh maps are a visual tool used to simplify logical expressions with up to 5 variables. They arrange the variables in a grid according to their binary values. Values of the expression are written in the cells and grouped to find prime implicants. The simplified expression is obtained by combining the groups. Don't care conditions can be treated as 0 or 1 to obtain the simplest expression. Full adders add three binary bits and are used as building blocks in ripple carry adders to perform multi-bit addition.

Uploaded by

abeltherealfm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

Logic Simplification

• As we have seen previously, Boolean


algebra can be used to simplify logical
expressions. This results in easier
implementation
Note: The DNF and CNF forms are not
simplified.
• However, it is often easier to use a
technique known as Karnaugh mapping
Karnaugh Maps
• Karnaugh Maps (or K-maps) are a
powerful visual tool for carrying out
simplification and manipulation of logical
expressions having up to 5 variables
• The K-map is a rectangular array of
cells
– Each possible state of the input variables
corresponds uniquely to one of the cells
– The corresponding output state is written in
each cell
K-maps example
• From truth table to K-map
x y z f z
yz
0 0 0 1 x 00 01 11 10
0 0 1 1 0 1 1 1 1
0 1 0 1 x 1 1
0 1 1 1
1 0 0 0 y
1 0 1 0
Note that the logical state of the
1 1 0 0
variables follows a Gray code, i.e.,
1 1 1 1
only one of them changes at a time
The exact assignment of variables in
terms of their position on the map is
not important
K-maps example
• Having plotted the minterms, how do we
use the map to give a simplified
expression? • Group terms
z • Having size equal to a power of
yz 2, e.g., 2, 4, 8, etc.
x
00 01 11 10
0 1 1 1 1 • Large groups best since they
x 1 1 contain fewer variables
• Groups can wrap around edges
x y.z y
and corners
So, the simplified func. is,
f  x  y.z as before
K-maps – 4 variables
• K maps from Boolean expressions
– Plot f  a .b  b.c .d c
cd
ab 00 01 11 10
00
01 1 1 1 1
b
a 11 1
10

d
• See in a 4 variable map:
– 1 variable term occupies 8 cells
– 2 variable terms occupy 4 cells
– 3 variable terms occupy 2 cells, etc.
K-maps – 4 variables
• For example, plot
f b f  b .d
c c
cd cd
ab 00 01 11 10 ab 00 01 11 10
00 1 1 1 1 00 1 1
01 01
b b
a 11 a 11
10 1 1 1 1 10 1 1

d d
K-maps – 4 variables
• Simplify, f  a .b.d  b.c.d  a .b.c .d  c.d
c
cd
ab 00 01 11 10
00 1
01 1 1 1 1
b
1
a 11
10 1
c.d
a.b d

So, the simplified func. is,


f  a .b  c.d
POS Simplification
• Note that the previous examples have
yielded simplified expressions in the
SOP form
– Suitable for implementations using AND
followed by OR gates, or only NAND gates
(using DeMorgans to transform the result –
see previous Bubble logic slides)
• However, sometimes we may wish to
get a simplified expression in POS form
– Suitable for implementations using OR
followed by AND gates, or only NOR gates
POS Simplification
• To do this we group the zeros in the map
– i.e., we simplify the complement of the function
• Then we apply DeMorgans and
complement
• Use ‘bubble’ logic if NOR only
implementation is required
POS Example
• Simplify f  a .b  b.c .d into POS form.
c c
cd cd
ab 00 01 11 10 ab 00 01 11 10
00 00 0 0 0 0
01 1 1 1 1 Group
b 01 1 1 1 1
zeros b
11 1 11 1 0 0 0
a a
10 10 0 0 0 0

d b a.d d a.c
f  b  a.c  a.d
POS Example
• Applying DeMorgans to a
f  b  a.c  a.d c
f
gives, a
f  b.(a  c ).(a  d ) d
f  b.(a  c ).(a  d ) b
a
a
c
c
f f
a
a
d
d
b
b
Expression in POS form
• Apply DeMorgans and take
complement, i.e., f is now in SOP form
• Fill in zeros in table, i.e., plot f
• Fill remaining cells with ones, i.e., plot f
• Simplify in usual way by grouping ones
to simplify f
Don’t Care Conditions
• Sometimes we do not care about the
output value of a combinational logic
circuit, i.e., if certain input combinations
can never occur, then these are known
as don’t care conditions.
• In any simplification they may be treated
as 0 or 1, depending upon which gives
the simplest result.
– For example, in a K-map they are entered
as Xs
Don’t Care Conditions - Example
• Simplify the function f  a .b .d  a .c.d  a.c.d
With don’t care conditions, a .b .c .d , a .b .c.d , a .b.c .d
c
ab
cd
00 01 11 10 See only need to include
00 X 1 1 X Xs if they assist in making
X 1
01
b a bigger group, otherwise
1
a 11 can ignore.
10 1
c.d
a.b d
f  a .b  c.d or, f  a .d  c.d
Some Definitions
• Cover – A term is said to cover a minterm if that
minterm is part of that term
• Prime Implicant – a term that cannot be further
combined
• Essential Term – a prime implicant that covers a
minterm that no other prime implicant covers
• Covering Set – a minimum set of prime
implicants which includes all essential terms plus
any other prime implicants required to cover all
minterms
Binary Adding Circuits
• We will now look at how binary addition
may be implemented using combinational
logic circuits. We will consider:
– Half adder
– Full adder
– Ripple carry adder
Half Adder
• Adds together two, single bit binary
numbers a and b (note: no carry input)
• Has the following truth table:
a b cout sum
a sum
0 0 0 0
0 1 0 1 b cout
1 0 0 1
1 1 1 0
• By inspection:
sum  a .b  a.b  a  b
cout  a.b
Full Adder
• Adds together two, single bit binary
numbers a and b (note: with a carry input)
a sum

b cout

cin
• Has the following truth table:
Full Adder
cin a b cout sum
sum  cin .a .b  cin .a.b  cin .a .b  cin .a.b
0 0 0 0 0
0 0 1 0 1 sum  cin .(a .b  a.b )  cin .(a .b  a.b)
0 1 0 0 1
0 1 1 1 0 From DeMorgan
1 0 0 0 1 a .b  a.b  (a  b).(a  b )
1 0 1 1 0
1 1 0 1 0  (a.a  a.b  b.a  b.b )
1 1 1 1 1
 (a.b  b.a )
So,
sum  cin .(a .b  a.b )  cin .(a .b  a.b )
sum  cin .x  cin .x  cin  x  cin  a  b
Full Adder
cin a b cout sum
cout  cin .a.b  cin .a .b  cin .a.b  cin .a.b
0 0 0 0 0
0 0 1 0 1 cout  a.b.(cin  cin )  cin .a .b  cin .a.b
0 1 0 0 1
0 1 1 1 0 cout  a.b  cin .a .b  cin .a.b
1 0 0 0 1
1 0 1 1 0 cout  a.(b  cin .b )  cin .a .b
1 1 0 1 0
1 1 1 1 1 cout  a.(b  cin ).(b  b )  cin .a .b
cout  b.(a  cin .a )  a.cin  b.(a  cin ).(a  a )  a.cin
cout  b.a  b.cin  a.cin
cout  b.a  cin .(b  a )
Full Adder
• Alternatively,
cin a b cout sum
0 0 0 0 0 cout  cin .a.b  cin .a .b  cin .a.b  cin .a.b
0 0 1 0 1
0 1 0 0 1 cout  cin .(a .b  a.b )  a.b.(cin  cin )
0 1 1 1 0 cout  cin .(a  b)  a.b
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

• Which is similar to previous expression


except with the OR replaced by XOR

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy