karnaugh map covering paolo prinetto politecnico di torino (italy) university of illinois at...

103
Karnaugh map Karnaugh map covering covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) [email protected] [email protected] www.testgroup.polito.it Lecture 6.2

Upload: garey-walsh

Post on 04-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

Karnaugh map Karnaugh map coveringcovering

Karnaugh map Karnaugh map coveringcovering

Paolo PRINETTOPolitecnico di Torino (Italy)

University of Illinois at Chicago, IL (USA)

[email protected] [email protected]

www.testgroup.polito.it

Lecture

6.2

Page 2: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

2 6.2

Goal

This lecture presents the basic fundamentals of purely manual synthesis of Combinational networks, based on Karnaugh map covering

Students are then guided through the solution of simple problems

Algorithmic approaches are briefly introduced

The lecture eventually focuses on peculiar aspects, such as covering of chessboard-like maps and of multiple-output functions.

Page 3: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

3 6.2

Prerequisites

Lectures 6.1 and 3.3

Page 4: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

4 6.2

Homework

Students are warmly encouraged to solve the proposed exercises

Page 5: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

5 6.2

Further readings

Students interested in making a reference to text books on the arguments covered in this lecture can refer, for instance, to:

M. Morris Mano, C.R.Kime: “Logic and Computer Design Fundamentals,” 2nd edition updatedPrentice Hall, Upple Saddle River, NJ (USA), 2001, (pp. 45-75)

or to

Page 6: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

6 6.2

Further readings (cont’d)

E.J.McCluskey: “Logic design principles with emphasis on testable semicustom circuits”Prentice-Hall, Englewood Cliffs, NJ, USA, 1986, (pp. 191-250)

Page 7: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

7 6.2

Further readings (cont’d)

In particular, students interested in logic minimization algoritms are recommended to refer to

G. De Micheli: “Synthesis and Optimization of digital circuits,”McGraw-Hill, Inc, New York, NJ, USA, 1994, (chapters 7-8, pp. 269-440)

Page 8: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

8 6.2

Implicants

Covers

Algorithmic approaches

Chessboard map covering

Map composition

Multiple-output functions.

Outline

Page 9: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

9 6.2

An implicant of a function f is a k-cube not including any vertex of the off-set of f.

ons dcs ofs

implicantimplicant

Implicants

Page 10: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

10 6.2

An implicant of a function f is a k-cube not including any vertex of the off-set of f.

ons dcs ofs

implicantimplicant

Implicants

They are usually represented by:They are usually represented by:• cubic notation cubic notation • algebraic notation by product algebraic notation by product

termsterms

Page 11: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

11 6.2

Prime implicants

An implicant is prime iff

is not included in any other implicant of f and

is not completely included in the don’t-care set of f.

Page 12: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

12 6.2

Note

Since prime implicants only will be of interest in manual designing,, for sake of simplicity, the adjective “prime” will be mostly omitted hereinafter.

Page 13: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

13 6.2

Essential implicant

A prime implicant of a function f is essential iff it includes at least one vertex of the on-set of f which is not included in any other prime implicant of f.

Page 14: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

14 6.2

Implicants on Karnaugh maps

On the Karnaugh map of a function f, any k-cube whose 2k cells all correspond to vertices not belonging to the off-set of f is an implicant.

Page 15: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

15 6.2

Complete sum

A complete sum is a representation of a function as the sum of all its prime implicant.

Page 16: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

16 6.2

abcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

Example

Find all the prime implicants and the essential implicants.

Page 17: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

17 6.2

abcd

SolutionPrime implicants

00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

Page 18: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

18 6.2

abcd

SolutionPrime implicants

00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

a’ c’ d’a’ c’ d’

Page 19: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

19 6.2

abcd

SolutionPrime implicants

00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

Page 20: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

20 6.2

abcd

SolutionPrime implicants

00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

a’ b d’a’ b d’

Page 21: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

21 6.2

abcd

SolutionPrime implicants

00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

Page 22: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

22 6.2

abcd

SolutionPrime implicants

00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

b’ c’ d’b’ c’ d’

Page 23: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

23 6.2

abcd

SolutionPrime implicants

00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

Page 24: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

24 6.2

abcd

SolutionPrime implicants

00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

a b’a b’

Page 25: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

25 6.2

abcd

SolutionPrime implicants

00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

Page 26: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

26 6.2

abcd

SolutionPrime implicants

00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

a ca c

Page 27: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

27 6.2

abcd

SolutionPrime implicants

00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

Page 28: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

28 6.2

abcd

SolutionPrime implicants

00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

b cb c

Page 29: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

29 6.2

Solution Essential implicants

abcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

Page 30: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

30 6.2

Solution Essential implicants

abcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

b cb c

Page 31: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

31 6.2

Property

If you erase a variable from a prime implicant of a function f, the resulting product term is no longer an implicant of f.

Page 32: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

Exampleabcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

b cb c

Page 33: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

Exampleabcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

b cb c

cc

Page 34: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

Exampleabcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

b cb c

abcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

cc

Page 35: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

Exampleabcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

b cb c

abcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

cc

It’s not an implicant, since it covers some 0s

Page 36: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

36 6.2

Implicants

Covers

Algorithmic approaches

Chessboard map covering

Map composition

Multiple-output functions

Outline

Page 37: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

37 6.2

Function Covers

A cover of a function f is a function C including all the vertices of the on-set and no vertex of the off-set of f:

ons(f) C ons(f) dcs(f)

Page 38: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

38 6.2

Function Covers

A cover of a function f is a function C including all the vertices of the on-set and no vertex of the off-set of f:

ons(f) C ons(f) dcs(f)

dcsdcs ofsofsonsons

Page 39: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

39 6.2

Function Covers

A cover of a function f is a function C including all the vertices of the on-set and no vertex of the off-set of f:

ons(f) C ons(f) dcs(f)

dcsdcs ofsofs

CoverCover

onsons

Page 40: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

40 6.2

A cover C is irredundant iff erasing any of its terms would result in a set of cubes which is not a cover of f.

Irredundant cover

Page 41: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

41 6.2

Finding irredundant covers

Finding an irredundant cover of a function relies on the following theorem, proved by Quine in ’52.

Page 42: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

42 6.2

Theorem

A minimal sum must always consist of a sum of prime implicants if any definition of cost is used in which the addition of a single literal to any expression increases the cost of the expression.

Page 43: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

43 6.2

Corollary

If an s-o-p function f is minimal w.r.t. either the # of logic gates or the # gate inputs, then each of its product term corresponds to a prime implicant of f.

Page 44: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

44 6.2

Cover by s-o-p expressions

A possible cover of a function f is given by a set of prime implicants covering any “1” of f, at least once, and, if needed, some of the “-” of f.

ons dcs ofs

CoverCover

Page 45: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

45 6.2

Covering incompletely specified functions

When dealing with incompletely specified functions, the vertices of dcs can be freely covered or not, in dependence of designer’s convenience.

Page 46: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

46 6.2

abcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

Example

Find an irredundant

cover.

Page 47: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

47 6.2

SolutionIrredundant cover

abcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

f =

Page 48: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

48 6.2

SolutionIrredundant cover

abcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

a’ c’ d’a’ c’ d’

f =

Page 49: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

49 6.2

SolutionIrredundant cover

abcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

a’ c’ d’a’ c’ d’

f = a’c’d’

Page 50: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

50 6.2

SolutionIrredundant cover

abcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

f = a’c’d’

Page 51: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

51 6.2

SolutionIrredundant cover

abcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

a b’a b’

f = a’c’d’

Page 52: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

52 6.2

SolutionIrredundant cover

abcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

a’ b’a’ b’

f = a’c’d’ + ab’

Page 53: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

53 6.2

SolutionIrredundant cover

abcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

f = a’c’d’ + ab’

Page 54: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

54 6.2

SolutionIrredundant cover

abcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

b cb c

f = a’c’d’ + ab’

Page 55: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

55 6.2

SolutionIrredundant cover

abcd 00 01 11 10

00 1 0 101 0 0 0 11 0 1 1 110 0 1 1

b cb c

f = a’c’d’ + ab’ + bc

Page 56: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

56 6.2

Implicants

Covers

Algorithmic approaches

Chessboard map covering

Map composition

Multiple-output functions.

Outline

Page 57: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

57 6.2

Algorithmic approaches

Several algorithmic approaches have been proposed to generate minimal covers.

They can be clustered as:

Exact logic minimization algorithms

Heuristic logic minimization algorithms

Page 58: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

58 6.2

Note

A detailed presentation of these algorithms is outside she scope of this course.

In the following we shall just introduce the basic ideas behind some of them.

Page 59: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

59 6.2

Exact approaches

Exact approaches mostly rely on two steps:

Generating all the prime implicants of the function ons(f) dcs(f)

Selecting a subset of these prime implicants that is an irredundant minimum cost cover of ons(f).

Each step can be performed in several ways.

Page 60: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

60 6.2

Minimum cover finding

Prime implicantgeneration

Quine-McCluskey Consensus

Set of prime Set of prime

iimplicantmplicantss

Quine-McCluskey Petrick

Page 61: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

61 6.2

Minimum cover finding

Prime implicantgeneration

Quine-McCluskey Consensus

Set of prime Set of prime

iimplicantmplicantss

Quine-McCluskey Petrick

The # of prime implicants of an n input functions is

O (3n / n)

Page 62: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

62 6.2

Minimum cover finding

Prime implicantgeneration

Quine-McCluskey Consensus

Set of prime Set of prime

iimplicantmplicantss

Quine-McCluskey Petrick

• Start from the set of minterms of the functions

ons(f) dcs(f)

• Recursively apply the distance one merging theorems:

x y + x’ y = y

x y + x = x

Page 63: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

63 6.2

0 1 0 1 1

0 1 1 1 1

0 1 - 1 1

Example of merging

Page 64: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

64 6.2

Minimum cover finding

Prime implicantgeneration

Quine-McCluskey Consensus

Set of prime Set of prime

iimplicantmplicantss

Quine-McCluskey Petrick

• Start from any s-o-p expression of the functions

ons(f) dcs(f)

• Recursively apply the consensus theorem:

xy + x’z = xy + x’z + yz

x + xy = x

Page 65: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

65 6.2

Minimum cover finding

Prime implicantgeneration

Quine-McCluskey Consensus

Set of prime Set of prime

iimplicantmplicantss

Quine-McCluskey Petrick

It’s an NP problem

Page 66: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

66 6.2

Minimum cover finding

Prime implicantgeneration

Quine-McCluskey Consensus

Set of prime Set of prime

iimplicantmplicantss

Quine-McCluskey Petrick

It generates all the minimum covers of the target function

Page 67: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

67 6.2

Minimization tools

Several minimization tools are available.

They will be covered in Lecture 6.4.

Page 68: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

68 6.2

Implicants

Covers

Algorithmic approaches

Chessboard map covering

Map composition

Multiple-output functions

Outline

Page 69: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

69 6.2

Chessboard-like maps

When dealing with chessboard (or chessboard-like) maps, it may be convenient to resort to exor functions.

Page 70: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

70 6.2

Design the sum output bit Si of a 1-bit full-adder.

Example

Page 71: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

71 6.2

Design the sum output bit Si of a 1-bit full-adder.

Example

00 01 11 10

0 0 1 0 1

1 1 0 1 0

ai bi

ci

Si

Page 72: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

72 6.2

Design the sum output bit Si of a 1-bit full-adder.

Example

00 01 11 10

0 0 1 0 1

1 1 0 1 0

ai bi

ci

Si

Si = ai bi ci

Page 73: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

73 6.2

Design the sum output bit Si of a 1-bit full-adder.

Example

00 01 11 10

0 0 1 0 1

1 1 0 1 0

ai bi

ci

Si

ai

bici

Si

Si = ai bi ci

Page 74: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

74 6.2

Implicants

Covers

Algorithmic approaches

Chessboard map covering

Map composition

Multiple-output functions.

Outline

Page 75: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

75 6.2

Map composition

It can sometimes be convenient to get the cover of a function by resorting to a set of proper composing functions:

Page 76: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

76 6.2

Map composition

It can sometimes be convenient to get the cover of a function by resorting to a set of proper composing functions:

abcd 00 01 11 10

00

01

11

10

f

ab

00 01 11 10

00

01

11

10

F2

cd00 01 11 10

00

01

11

10

abcd

F1

op

Page 77: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

77 6.2

Map composition

It can sometimes be convenient to get the cover of a function by resorting to a set of proper composing functions:

abcd 00 01 11 10

00

01

11

10

f

ab

00 01 11 10

00

01

11

10

F2

cd00 01 11 10

00

01

11

10

abcd

F1

op

f = F1 op F2f = F1 op F2

Page 78: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

78 6.2

A typical example:covering chessboard-like maps

A typical example is provided by covering maps that have either some additional 0’s w.r.t. the chessboard or some additional 1’s, or both.

Page 79: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

79 6.2

f f EE RR00 00 --00 11 0011 00 not possiblenot possible11 11 11

Maps with additional 0’s

Implement the target function f as:

f = E · R

where:

• E is an exor gate having as many inputs as f

• R is a masking function (having as many inputs as f), in charge of masking those 1’s of E for which f must be 0.

Page 80: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

80 6.2

00 01 11 10

00 0 1 0 1

01 1 0 1 0

11 0 1 0 0

10 1 0 0 0

Example #1

abcd

f

Page 81: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

81 6.2

00 01 11 10

00 0 1 0 1

01 1 0 1 0

11 0 1 0 0

10 1 0 0 0

Example #1

abcd

f

Additional 0’s

Page 82: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

82 6.2

abcd 00 01 11 10

00 0 1 0 1

01 1 0 1 0

11 0 1 0 0

10 1 0 0 0

f

ab

00 01 11 10

00 - 1 - 1

01 1 - 1 -

11 - 1 - 0

10 1 - 0 -

R

cd00 01 11 10

00 0 1 0 1

01 1 0 1 0

11 0 1 0 1

10 1 0 1 0

abcd

E

Solution

abcd

E

a’c’

Rf

Page 83: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

83 6.2

Example #2

00 01 11 10

00 1 0 0 0

01 0 1 0 0

11 0 0 1 0

10 0 0 0 1

abcd

U

Page 84: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

84 6.2

Solution

U = 1 when ab=cd, i.e., when (a=c) (b=d), and thus:

U = (a c)’ (b d)’

00 01 11 10

00 1 0 0 0

01 0 1 0 0

11 0 0 1 0

10 0 0 0 1

abcd

U

Page 85: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

85 6.2

Solution

One can get the same result on the basis of the following reasoning:

Page 86: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

86 6.2

Solution

U = F G

abcd 00 01 11 10

00 1 0 0 0

01 0 1 0 0

11 0 0 1 0

10 0 0 0 1

U

ab

00 01 11 10

00 1 0 - -

01 0 1 - -

11 - - 1 0

10 - - 0 1

G

cd00 01 11 10

00 1 1 0 0

01 1 1 0 0

11 0 0 1 1

10 0 0 1 1

abcd

F

Page 87: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

87 6.2

Solution

F = (a c)’

G = (b d)’

U = F G = (a c)’ (b d)’

abcd 00 01 11 10

00 1 0 0 0

01 0 1 0 0

11 0 0 1 0

10 0 0 0 1

U

ab

00 01 11 10

00 1 0 - -

01 0 1 - -

11 - - 1 0

10 - - 0 1

G

cd00 01 11 10

00 1 1 0 0

01 1 1 0 0

11 0 0 1 1

10 0 0 1 1

abcd

F

Page 88: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

88 6.2

Example #3

00 01 11 10

00 0 - 0 -

01 - 0 - 0

11 0 - 0 -

10 1 0 1 0

abcd

U

Page 89: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

89 6.2

Solution

00 01 11 10

00 0 - 0 -

01 - 0 - 0

11 0 - 0 -

10 1 0 1 0

abcd

U

One can get alternative solutions, according to the values assigned to “-”

Page 90: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

90 6.2

Solution #1

00 01 11 10

00 0 1 0 1

01 1 0 1 0

11 0 1 0 1

10 1 0 1 0

abcd

U

00 01 11 10

00 0 - 0 -

01 - 0 - 0

11 0 - 0 -

10 1 0 1 0

abcd

U

Page 91: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

91 6.2

Solution #1

00 01 11 10

00 0 1 0 1

01 1 0 1 0

11 0 1 0 1

10 1 0 1 0

abcd

U

U = a b c d

00 01 11 10

00 0 - 0 -

01 - 0 - 0

11 0 - 0 -

10 1 0 1 0

abcd

U

Page 92: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

92 6.2

Solution #2

00 01 11 10

00 0 0 0 0

01 0 0 0 0

11 0 1 0 1

10 1 0 1 0

abcd

U

00 01 11 10

00 0 - 0 -

01 - 0 - 0

11 0 - 0 -

10 1 0 1 0

abcd

U

Page 93: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

93 6.2

Solution #2

00 01 11 10

00 0 0 0 0

01 0 0 0 0

11 0 1 0 1

10 1 0 1 0

abcd

U

U = (a b d) c’

00 01 11 10

00 0 - 0 -

01 - 0 - 0

11 0 - 0 -

10 1 0 1 0

abcd

U

Page 94: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

94 6.2

Implicants

Covers

Algorithmic approaches

Chessboard map covering

Map composition

Multiple-output functions

Outline

Page 95: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

95 6.2

Multiple outputs minimization

Methods used so far are cannot guarantee an optimal covering when dealing with multiple outputs functions.

In most cases a minimal solution must resort to sharing some implicants among two or more functions.

Page 96: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

96 6.2

Example

Minimize the expression of the outputs X and Y of a given circuits, defined as follows:

ab

cd 00 01 11 10

00 0 0 0 0

01 1 0 0 1

11 1 1 1 1

10 0 0 0 0

ab

cd 00 01 11 10

00 0 1 1 0

01 0 0 0 0

11 0 1 1 0

10 0 1 1 0

X Y

Page 97: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

97 6.2

ab

cd 00 01 11 10

00 0 0 0 0

01 1 0 0 1

11 1 1 1 1

10 0 0 0 0

ab

cd 00 01 11 10

00 0 1 1 0

01 0 0 0 0

11 0 1 1 0

10 0 1 1 0

X Y

Independent covers

X = b’d + cd Y = bc + bd’

Page 98: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

98 6.2

1st implementation

The solution looks optimal, since no shareable implicants exist:

X = b’d + cd

Y = bc + bd’

Cost:

4 and functions ( 4 and gates)

2 or functions ( 2 or gates)

Page 99: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

99 6.2

Better implementation

The two covers share an implicant which is not prime:

X = b’d + bcdbcd

Y = bd’ + bcdbcd

ab

cd 00 01 11 10

00 0 0 0 0

01 1 0 0 1

11 1 1 1 1

10 0 0 0 0

ab

cd 00 01 11 10

00 0 1 1 0

01 0 0 0 0

11 0 1 1 0

10 0 1 1 0X Y

Page 100: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

100 6.2

X = b’d + bcdbcd

Y = bd’ + bcdbcd

b’dbcdbd’

X

Y

Page 101: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

101 6.2

X = b’d + bcdbcd

Y = bd’ + bcdbcd

Cost:

3 and functions ( 3 and gates)

2 or functions ( 2 or gates)

b’dbcdbd’

X

Y

Page 102: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

102 6.2

Note

A systematic approach to the manual optimization of multiple output functions is outside the scope of the present course.

Page 103: Karnaugh map covering Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) Paolo.Prinetto@polito.it Prinetto@uic.edu

103 6.2