K-MAP
TOOL
SOLVING EQUATIONS
MADE EASY…..
SUBMITTED BY
DEEPAK R

-

2SD08EE022
KUMAR PATIL

-

2SD08EE030
NAGAPPA D V
2SD08EE033

-
Problem statement
Development of an application
software called K-Map software tool
which gives the simplified Boolean
equation.
NEED TO SIMPLIFY EQUATIONS..?
prerequisite
• BOOLEAN ALGEBRA-

Boolean algebra is formal

way to express digital

logic equations and to represent a logical design in an
alpha-numeric way. It is a language of 0’s and 1’s.
• A Boolean function is an expression formed with
binary variables which makes use of logic gates based

on Boolean algebra
e.g.F1=xyz’ where F1=1 only if x=1,y=1,z=0
Sum-of-products form
(SOP)
•

– first

the product(AND)
terms are formed then
these are summed(OR)
– e.g.: ABC + DEF + GHI

Product-of-sum form
(POS)
•

– first the sum (OR) terms are formed then
are taken (AND)
– e.g.: (A+B+C) (D+E+F) (G+H+I)

the products

It is possible to convert between these two forms
using Boolean algebra (DeMorgan’s Laws)
•
Minimization by Karnaugh Map
The Karnaugh map is a theoretical method for
the simplification of any Boolean expressions
regardless of its number of variables.
It provides simple straightforward approach for
minimizing Boolean functions.

It either regarded as pictorial form of truth
table or as an extension of the Venn diagram.
Example: Let’s do this in relation to the 3input example
S A B

Y

0

0 0

0

0

0 1

0

0

1 0

1

0

1 1

1

1

0 0

0

1

0 1

1

1

1 0

0

1

1 1

1

result: Y = S.B + S’.A
Architectural design
main ( )
read
input
validate
input

derive
truth
table

generate
k-map

solve kmap

solve for
2 var

solve for
3 var

display
solve for
4 var

2var

quad

octet

1

3var

pair

quad

octet

4var

pair

quad
pair
Algorithm

int read input ()

// Input : No of variable n , Input
// Output : Formation Of Input Truth Table Array
{
step1:

read the no of variables
if it is 2, 3 or 4
go to step 2

step2:

read the type of input

case 1:
if minterm with literals
check validity of input
if valid form the input array
case 2:
if maxterm with literals
check validity of input
if valid form the input array
case 3:

if minterm with truth table values
check validity of input
if valid form the input array

case 4:

if maxterm with truth table values
check validity of input

if valid form the input array
} // end of Read Input
Algorithm

int

formKmap

(int n)

// input : no of variable (n) , Integer array input[2^n ]
//output : two dimensional matrix say
//Forms the k map depending on the type of input
{

k=0;
for (i=0;i < no. of rows ;i++)
for (j=0;j < no. of columns; j++)
{

k mat [ i ][ j ] = min[k];
k++;

}
if n is 3
Swap the columns 3 & 4 in the k mat
if n is 4
Swap the columns 3 & 4 and rows 3 and 4 in the k mat
} // end of form K-map
SolveKmap (k mat [ ][ ],n )
// input : no of variable (n) , k mat
// calls other functions depending on value of n
{

if n is 2
solve2var (k mat [ ][ ])
if n is 3

solve3var (k mat [ ][ ])
if n is 4
solve4var (k mat [ ][ ])
} // end
Algorithm

solve2var(k mat [ ][ ] )

// input : no of variable (n) , k_mat
// solves the given k_mat with n=2 and calls display function

{
check for all ones in k mat
if

True

push 1 to the linked list

else if
the group formed is in pairs then send the
group value to the list
else if

}

only one variable in the matrix is one then send
its group value to the list.

Display();
Algorithm

solve3var (k_mat [ ][ ])

// input : no of variable (n) , k mat
// solves the given k mat with n=2 and calls display function
{
check for all k mat [ i ] [ j ] =1
if true

o list.Push_front (1);
set all flag [ i ] [ j ] =1;
else

Quad;

Pair;
Single;
}

Display ( );
Algorithm

solve4var (k_mat [ ][ ])

// input : no of variable (n) , k_mat
// solves the given k_mat with n=2 and calls display function
{
check for all k mat [ i ] [ j ] =1
if true
o_list.Push_front (1);

set all flag [ i ] [ j ] as 1;
else

Octet;
Quad;

Pair ;
Single ;
Display ( );

} // end
Algorithm

Octet (k_mat , flag)

// input : no of variable (n) , k_mat
// find the respective quad and push its group value to the O_list
{
for (i=0;i < 4 ;i++)
for (j=0;j < 4; j++)
{

if ( k_mat [ i ][ j ] = 1 && flag [ i ] [ j ] =0)
{
search for a octet
if exist
//push the respective group value
outeq ( i, j);

set all positions in the flag matrix as 1
}
}
} // end of octet
Algorithm

Quad (k_mat , flag)

// input : K_mat , flag
// find the respective quad and push its group value to the O_list
{
for (i=0;i < 4 ;i++)
for (j=0;j < 4; j++)
{

if ( k_mat [ i ][ j ] = 1 && flag [ i ] [ j ] =0)
{
search for a Quad
if exist
push the respective group value

set all positions in the flag matrix as 1
}
}
} // end of Quad
Algorithm

Pair (k_mat , flag)

// input : K_mat , flag
// find the respective Pair and push its group value to the O_list
{
for (i=0;i < 4;i++)
for (j=0;j < 4; j++)
{

if ( k_mat[ i][ j ] = 1 && flag [ i ] [ j ] =0)
{
find a adjacent one
push the respective group value
set all positions in the flag matrix as 1

}
}
} // end of Pair
application
Tool can be a part of sequential circuit designing software.
Aids to practical method of designing sequential circuits with
multi input.
It can be included in systems which involve in process of
simplifying expressions frequently.
The tool can be incorporated in educational fields as in by
the text book designers, staff and students themselves to
verify their answers.
conclusion
 K-Tool can be used for reducing Boolean expressions.
 User specified Boolean expression is converted
to is simpler form through various stages.
 User is able to get output for 2,3,4 variable
CONCLUSION
equations
 Input is processed in various different forms of
input to achieve simplicity

 Its a tool for deductive reasoning in designing
logic circuits and machines

digital
FUTURE SCOPE
 Tool can be extended to handle more number of
variables.
 Tool can be modified to handle DON’T CARE
conditions.
 Can be enhanced to obtain possible alternate
solutions.
 The gate implementation of the input and output
equations can be shown for comparison.
REFERENCES
Books:
Digital Fundamentals -Thomas L. Floyd
Digital Principles and Applications -Albert Paul Malvino and
Donald P. Leach

Digital Logic and Computer Design -M. Morris Mano

Website:

http://en.wikipedia.org/wiki/Karnaugh_map
Any queries…??
Thank
you..

K map

  • 1.
  • 2.
    SUBMITTED BY DEEPAK R - 2SD08EE022 KUMARPATIL - 2SD08EE030 NAGAPPA D V 2SD08EE033 -
  • 3.
    Problem statement Development ofan application software called K-Map software tool which gives the simplified Boolean equation.
  • 4.
    NEED TO SIMPLIFYEQUATIONS..?
  • 5.
    prerequisite • BOOLEAN ALGEBRA- Booleanalgebra is formal way to express digital logic equations and to represent a logical design in an alpha-numeric way. It is a language of 0’s and 1’s. • A Boolean function is an expression formed with binary variables which makes use of logic gates based on Boolean algebra e.g.F1=xyz’ where F1=1 only if x=1,y=1,z=0
  • 6.
    Sum-of-products form (SOP) • – first theproduct(AND) terms are formed then these are summed(OR) – e.g.: ABC + DEF + GHI Product-of-sum form (POS) • – first the sum (OR) terms are formed then are taken (AND) – e.g.: (A+B+C) (D+E+F) (G+H+I) the products It is possible to convert between these two forms using Boolean algebra (DeMorgan’s Laws) •
  • 7.
    Minimization by KarnaughMap The Karnaugh map is a theoretical method for the simplification of any Boolean expressions regardless of its number of variables. It provides simple straightforward approach for minimizing Boolean functions. It either regarded as pictorial form of truth table or as an extension of the Venn diagram.
  • 8.
    Example: Let’s dothis in relation to the 3input example S A B Y 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 result: Y = S.B + S’.A
  • 9.
    Architectural design main () read input validate input derive truth table generate k-map solve kmap solve for 2 var solve for 3 var display solve for 4 var 2var quad octet 1 3var pair quad octet 4var pair quad pair
  • 11.
    Algorithm int read input() // Input : No of variable n , Input // Output : Formation Of Input Truth Table Array { step1: read the no of variables if it is 2, 3 or 4 go to step 2 step2: read the type of input case 1: if minterm with literals check validity of input if valid form the input array case 2: if maxterm with literals check validity of input if valid form the input array
  • 12.
    case 3: if mintermwith truth table values check validity of input if valid form the input array case 4: if maxterm with truth table values check validity of input if valid form the input array } // end of Read Input
  • 13.
    Algorithm int formKmap (int n) // input: no of variable (n) , Integer array input[2^n ] //output : two dimensional matrix say //Forms the k map depending on the type of input { k=0; for (i=0;i < no. of rows ;i++) for (j=0;j < no. of columns; j++) { k mat [ i ][ j ] = min[k]; k++; } if n is 3 Swap the columns 3 & 4 in the k mat if n is 4 Swap the columns 3 & 4 and rows 3 and 4 in the k mat } // end of form K-map
  • 14.
    SolveKmap (k mat[ ][ ],n ) // input : no of variable (n) , k mat // calls other functions depending on value of n { if n is 2 solve2var (k mat [ ][ ]) if n is 3 solve3var (k mat [ ][ ]) if n is 4 solve4var (k mat [ ][ ]) } // end
  • 15.
    Algorithm solve2var(k mat [][ ] ) // input : no of variable (n) , k_mat // solves the given k_mat with n=2 and calls display function { check for all ones in k mat if True push 1 to the linked list else if the group formed is in pairs then send the group value to the list else if } only one variable in the matrix is one then send its group value to the list. Display();
  • 16.
    Algorithm solve3var (k_mat [][ ]) // input : no of variable (n) , k mat // solves the given k mat with n=2 and calls display function { check for all k mat [ i ] [ j ] =1 if true o list.Push_front (1); set all flag [ i ] [ j ] =1; else Quad; Pair; Single; } Display ( );
  • 17.
    Algorithm solve4var (k_mat [][ ]) // input : no of variable (n) , k_mat // solves the given k_mat with n=2 and calls display function { check for all k mat [ i ] [ j ] =1 if true o_list.Push_front (1); set all flag [ i ] [ j ] as 1; else Octet; Quad; Pair ; Single ; Display ( ); } // end
  • 18.
    Algorithm Octet (k_mat ,flag) // input : no of variable (n) , k_mat // find the respective quad and push its group value to the O_list { for (i=0;i < 4 ;i++) for (j=0;j < 4; j++) { if ( k_mat [ i ][ j ] = 1 && flag [ i ] [ j ] =0) { search for a octet if exist //push the respective group value outeq ( i, j); set all positions in the flag matrix as 1 } } } // end of octet
  • 19.
    Algorithm Quad (k_mat ,flag) // input : K_mat , flag // find the respective quad and push its group value to the O_list { for (i=0;i < 4 ;i++) for (j=0;j < 4; j++) { if ( k_mat [ i ][ j ] = 1 && flag [ i ] [ j ] =0) { search for a Quad if exist push the respective group value set all positions in the flag matrix as 1 } } } // end of Quad
  • 20.
    Algorithm Pair (k_mat ,flag) // input : K_mat , flag // find the respective Pair and push its group value to the O_list { for (i=0;i < 4;i++) for (j=0;j < 4; j++) { if ( k_mat[ i][ j ] = 1 && flag [ i ] [ j ] =0) { find a adjacent one push the respective group value set all positions in the flag matrix as 1 } } } // end of Pair
  • 21.
    application Tool can bea part of sequential circuit designing software. Aids to practical method of designing sequential circuits with multi input. It can be included in systems which involve in process of simplifying expressions frequently. The tool can be incorporated in educational fields as in by the text book designers, staff and students themselves to verify their answers.
  • 22.
    conclusion  K-Tool canbe used for reducing Boolean expressions.  User specified Boolean expression is converted to is simpler form through various stages.  User is able to get output for 2,3,4 variable CONCLUSION equations  Input is processed in various different forms of input to achieve simplicity  Its a tool for deductive reasoning in designing logic circuits and machines digital
  • 23.
    FUTURE SCOPE  Toolcan be extended to handle more number of variables.  Tool can be modified to handle DON’T CARE conditions.  Can be enhanced to obtain possible alternate solutions.  The gate implementation of the input and output equations can be shown for comparison.
  • 24.
    REFERENCES Books: Digital Fundamentals -ThomasL. Floyd Digital Principles and Applications -Albert Paul Malvino and Donald P. Leach Digital Logic and Computer Design -M. Morris Mano Website: http://en.wikipedia.org/wiki/Karnaugh_map
  • 25.
  • 26.