Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

32
ECE2030 Introduction to Computer Engineering Lecture 7: Simplification using K-map Prof. Hsien-Hsin Sean Lee Prof. Hsien-Hsin Sean Lee School of Electrical and Computer School of Electrical and Computer Engineering Engineering Georgia Tech Georgia Tech

Transcript of Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

Page 1: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

ECE2030 Introduction to Computer Engineering

Lecture 7: Simplification using K-map

Prof. Hsien-Hsin Sean LeeProf. Hsien-Hsin Sean LeeSchool of Electrical and Computer EngineeringSchool of Electrical and Computer EngineeringGeorgia TechGeorgia Tech

Page 2: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

2

Hamming Distance• The count of bits different in two binary

patterns• Examples:

– Dh(1001, 0101) = 2– Dh(0xADF4, 0x9FE3) = ??

• Unit-Distance Codes– Reduce errors during transmission such as

rotary positional sensor– E.g. Gray Code

Page 3: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

3

Gray Code Construction

01

0110

0011

0001111010110100

00001111

000001011010110111101100100101111110010011001000

0000000011111111

Page 4: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

4

Gray CodeBinary Encoding Gray Code Encoding

Decimal b3 b2 b1 b0 g3 g2 G1 g00 0 0 0 0 0 0 0 01 0 0 0 1 0 0 0 12 0 0 1 0 0 0 1 13 0 0 1 1 0 0 1 04 0 1 0 0 0 1 1 05 0 1 0 1 0 1 1 16 0 1 1 0 0 1 0 17 0 1 1 1 0 1 0 08 1 0 0 0 1 1 0 09 1 0 0 1 1 1 0 1

10 1 0 1 0 1 1 1 111 1 0 1 1 1 1 1 012 1 1 0 0 1 0 1 013 1 1 0 1 1 0 1 114 1 1 1 0 1 0 0 115 1 1 1 1 1 0 0 0

0b e wherbbg 41iii

Page 5: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

5

Rotary Position Sensor

Page 6: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

6

Karnaugh Map (K-Map)• A graphical map method to simplify

Boolean function up to 6 variables• A diagram made up of squares• Each square represents one minterm

(or maxterm) of a given Boolean function

Page 7: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

7

Karnaugh Map Examples

Note that the Hamming DistanceHamming Distance between adjacent columnsadjacent columns or adjacent rows adjacent rows (including cyclic ones) (including cyclic ones) must be 1 for simplification purposes

Page 8: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

8

Karnaugh Map

Adjacent columns or rows allow grouping of minterms (maxterms) for simplification

Page 9: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

9

Implicant• Definition

– A product term is an ImplicantImplicant of a Boolean function if the function has an output 1 for all minterms of the product term.

• In K-map, an ImplicantImplicant is – bubble covers only 1

(bubble size must be a power of 2)

00 01 11 10

00 1 1 0 0

01 0 0 1 0

11 0 1 1 1

10 1 1 0 0

ABCD

Page 10: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

10

Prime Implicant• Definition

– If the removal of any literal from an implicant II results in a product term that is not an implicant of the Boolean function, then II is an Prime ImplicantPrime Implicant.

– Examples• BCDBCD is an implicant, but CDCD or BDBD or BCBC

do not imply a 1 in this function; BCDBCD is a PIPI

• B’C’DB’C’D is an implicant, but B’C’B’C’ is not an implicant, thus B’C’DB’C’D is not a PI

• In K-map, a Prime Implicant (PI)Prime Implicant (PI) is – bubble that is expanded as big as

possible (bubble size must be a power of 2)

00 01 11 10

00 1 1 0 0

01 0 0 1 0

11 0 1 1 1

10 1 1 0 0

ABCD

Page 11: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

11

Essential Prime Implicant• Definition

– If a minterm of a Boolean function is included in only one PI, then this PI is an Essential Prime Essential Prime ImplicantImplicant.

• In K-map, an Essential Essential Prime ImplicantPrime Implicant is – Bubble that contains a 1

covered only by itself and no other PI bubbles

00 01 11 10

00 1 1 0 0

01 0 0 1 0

11 0 1 1 1

10 1 1 0 0

ABCD

Page 12: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

12

Non-Essential Prime Implicant• Definition

– A Non-Essential Prime Non-Essential Prime ImplicantImplicant is a PI that is not an Essential PI.

• In K-map, an Non-Non-Essential Prime Essential Prime ImplicantImplicant is – A 1 covered by more than

one PI bubble

00 01 11 10

00 1 1 0 0

01 0 0 1 0

11 0 1 1 1

10 1 1 0 0

ABCD

Page 13: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

13

Simplification for SOP• Form K-Map for the given Boolean function

• Identify all Essential Prime Implicants for 1’s in the K-map

• Identify non-Essential Prime Implicants in the K-map for the 1’s which are not covered by the Essential Prime Implicants

• Form a sum-of-products (SOP) with all Essential Prime Implicants and the necessary non-Essential Prime Implicants to cover all 1’s

Page 14: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

14

Example for SOP• Identify all the

essential PIs for 1’s• Identify the non-

essential PIs to cover 1’s

• Form an SOP based on the selected PIs

7) 6, 4, 1, m(0,F

00 01 11 10

0 1 1 0 0

1 1 0 1 1

ABC

CAABBAF

orCBABBAF

Page 15: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

15

Example for SOP• Identify all the

essential PIs for 1’s• Identify the non-

essential PIs to cover 1’s

• Form an SOP based on the selected PIs

15) 14, 13, 9, 8, 7, 1, m(0,F

00 01 11 10

00 1 1 0 0

01 0 0 1 0

11 0 1 1 1

10 1 1 0 0

ABCD

ABDBCDABCCBF

orDCABCDABCCBF

Page 16: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

16

Example for SOP• Identify all the

essential PIs for 1’s• Identify the non-

essential PIs to cover 1’s

• Form an SOP based on the selected PIs

12) 11, 6, 4, 3, M(1,F

00 01 11 10

00 1 0 0 1

01 0 1 1 0

11 0 1 1 1

10 1 1 0 1

ABCD

CBAABCBDDBF

orDCAABCBDDBF

Page 17: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

17

Prime Implicants• All the prior definitions apply to ‘0’ (or

maxterm) as well• Consider these implicants imply a ‘0’

output

Page 18: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

18

Simplification for POS• Form K-Map for the given Boolean function

• Identify all Essential Prime Implicants for 0’s in the K-map

• Identify non-Essential Prime Implicants in the K-map for the 0’s which are not covered by the Essential Prime Implicants

• Form a product-of-sums (POS) with all Essential Prime Implicants and the necessary non-Essential Prime Implicants to cover all 0’s

Page 19: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

19

Example for POS• Identify all the

essential PIs for 0’s• Identify the non-

essential PIs to cover 0’s

• Form an POS based on the selected PIs

)CBA)(B(AF

00 01 11 10

0 1 1 0 0

1 1 0 1 1

ABC

5) 3, M(2,F

Page 20: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

20

Example for POS• Identify all the

essential PIs for 0’s• Identify the non-

essential PIs to cover 0’s

• Form an POS based on the selected PIs

D)B)(ADC)(BDBD)(ACB(F

00 01 11 10

00 1 0 0 1

01 0 1 1 0

11 0 1 1 1

10 1 1 0 1

ABCD

12) 11, 6, 4, 3, M(1,F

Page 21: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

21

Don’t Care Condition X• Don’t care (X)

– Those input combinations which are irrelevant to the target function (i.e. If the input combination signals can be guaranteed never occur)

– Can be used to simplify Boolean equations, thus simply logic design

• In K-map– Use XX to express Don’t Care in the map– Don’t care can be bubbled as 11 or 00 depending

on SOP or POS simplification to result into bigger bubble

Page 22: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

22

Don’t Care Example BCD to Gray Code

BCD-coded input Gray Code OutputDecimal b3 b2 b1 b0 g3 g2 g1 g0

0 0 0 0 0 0 0 0 01 0 0 0 1 0 0 0 12 0 0 1 0 0 0 1 13 0 0 1 1 0 0 1 04 0 1 0 0 0 1 1 05 0 1 0 1 0 1 1 16 0 1 1 0 0 1 0 17 0 1 1 1 0 1 0 08 1 0 0 0 1 1 0 09 1 0 0 1 1 1 0 1

10 1 0 1 0 XX XX XX XX11 1 0 1 1 XX XX XX XX12 1 1 0 0 XX XX XX XX13 1 1 0 1 XX XX XX XX14 1 1 1 0 XX XX XX XX15 1 1 1 1 XX XX XX XX

• BCD stands for Binary Coded Binary Coded DecimalDecimal

• Each digit of a decimal number is represented by one codecode

• BCD only encodes from 0 to 9– Require 4 bits– Only use 10 out of

16 encoding space

Page 23: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

23

BCD to Gray Code (Do not use Don’ Care)

BCD-coded input Gray Code OutputDecimal b3 b2 b1 b0 g3 g2 g1 g0

0 0 0 0 0 0 0 0 01 0 0 0 1 0 0 0 12 0 0 1 0 0 0 1 13 0 0 1 1 0 0 1 04 0 1 0 0 0 1 1 05 0 1 0 1 0 1 1 16 0 1 1 0 0 1 0 17 0 1 1 1 0 1 0 08 1 0 0 0 1 1 0 09 1 0 0 1 1 1 0 110 1 0 1 0 11 11 11 1111 1 0 1 1 11 11 11 0012 1 1 0 0 11 00 11 0013 1 1 0 1 11 00 11 1114 1 1 1 0 11 00 00 1115 1 1 1 1 11 00 00 00

• BCD stands for Binary Coded Binary Coded DecimalDecimal

• Each digit of a decimal number is represented by one codecode

• BCD only encodes from 0 to 9– Require 4 bits– Only use 10 out of

16 encoding space

Page 24: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

24

What g2 is?• g2 = F(b3, b2, b1, b0)

Page 25: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

25

Example: g2 of BCD-to-Gray

3223320 bbbbbbg

00 01 11 10

00 0 0 0 0

01 1 1 1 1

11 X X X X

10 1 1 X X

b3b2

b1b000 01 11 10

00 0 0 0 0

01 1 1 1 1

11 0 0 0 0

10 1 1 1 1

b3b2

b1b0

Without using Don’t Care Take Don’t Care into account

230 bbg

Page 26: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

26

Another Example of Don’t Care (SOPSOP)

14) 13, d(10,12) 11, 6, 4, 3, m(2,D) C, B, F(A,

00 01 11 10

00 0 0 1 1

01 1 0 0 1

11 1 X 0 X

10 0 0 1 X

ABCD

CBDBF

Page 27: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

27

Another Example of Don’t Care (POSPOS)

14) 13, d(10,12) 11, 6, 4, 3, m(2,D) C, B, F(A,

00 01 11 10

00 0 0 1 1

01 1 0 0 1

11 1 X 0 X

10 0 0 1 X

ABCD

C))(BDB(F

Page 28: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

28

Use Karnaugh Map in BB5 5 or BB66

• In BB55

– 2 K-maps are to be constructed (2 submaps)– Consider one submap is on top of the other – Cells that occupy the same relative position in 2

maps are considered adjacent– Bubble can be constructed in vertical dimension

when stacking up 2 maps• In BB66

– 4 K-maps are to be constructed (4 submaps)– Similar to BB55 , yet another dimension needs to be

considered

Page 29: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

29

Karnaugh Map Example in BB55

27) 24, 20, 19, 18, 16, 11, 8, 7, 6, 4, 3, 2, m(0,D)C,B,A, F(E,

00 01 11 10

00 1 0 1 1

01 1 0 1 1

11 0 0 0 0

10 1 0 1 0

ABCD

00 01 11 10

00 1 0 1 1

01 1 0 0 0

11 0 0 0 0

10 1 0 1 0

ABCD

E = 0 E = 1

CDBDCBDCACBAECAF

Page 30: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

30

Karnaugh Map Example in BB66

)45(61) 53, 37, 31, 29, 23, 21, 13, 9, 5, m(1,Z)Y,X,W,V,F(U, d

00 01 11 10

00 1

01 1

11 1 1

10 1

WXYZ

U,V=0,0

00 01 11 10

00

01 1

11 X

10

WXYZ

U,V=1,0

00 01 11 10

00

01 1 1

11 1 1

10

WXYZ

U,V=0,1

00 01 11 10

00

01 1

11 1

10

WXYZ

U,V=1,1

VXZUZYVUWXZUZYXF

Page 31: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

31

Minimal SOP and POS w/ Don’t care• Could lead to different

function if the same x is treated as 1 in SOP but as 0 in POS.

• Even though the final Boolean functions could be different, but for those ones with non-don’t care square, correct functionality was maintained.

0 10 x 11 0 x

A B

F = F = Ā (SOP)Ā (SOP)F = F = B (POS)B (POS)F = F = Ā (POS)Ā (POS)

Page 32: Lec7 Intro to Computer Engineering by Hsien-Hsin Sean Lee Georgia Tech -- Karnaugh Map

32

Use Karnaugh Map in BB5 5 or BB66

• It is getting hard and complicated • Eye-ball simplification on several

submaps is error-prone, leading to sub-optimal results

• Do we have a better algorithm?– Quine-McCluskey Method