eced2200 – digital circuits slides - colin o'flynn circuits slides 04 - k map… · counters...

48
ECED2200 – Digital Circuits Karnaugh Maps 16/07/2012 Colin O’Flynn - CC BY-SA 1

Upload: others

Post on 23-Jan-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

ECED2200 – Digital Circuits

Karnaugh Maps

16/07/2012 Colin O’Flynn - CC BY-SA 1

Page 2: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

General Notes • See updates to these slides: www.newae.com/teaching • These slides licensed under ‘Creative Commons Attribution-ShareAlike 3.0

Unported License’ • These slides are not the complete course – they are extended in-class • You will find the following references useful, see

www.newae.com/teaching for more information/links: – The book “Bebop to the Boolean Boogie” which is available to Dalhousie Students – Course notes (covers almost everything we will discuss in class) – Various websites such as e.g.: www.play-hookey.com – The book “Contemporary Logic Design”, which was used in previous iterations of the

class and you may have already

16/07/2012 Colin O’Flynn - CC BY-SA 2

Page 3: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Gray Codes

16/07/2012 Colin O’Flynn - CC BY-SA 3

Page 4: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Counters

16/07/2012 Colin O’Flynn - CC BY-SA 4

1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 0000

Page 5: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Oops…

16/07/2012 Colin O’Flynn - CC BY-SA 5

Bit 3

Bit 2

Bit 1

Bit 0

Page 6: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

What are Gray Codes? 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111

16/07/2012 Colin O’Flynn - CC BY-SA 6

Page 7: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Generating Gray Codes

16/07/2012 Colin O’Flynn - CC BY-SA 7

0 1

Page 8: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Generating Gray Codes

16/07/2012 Colin O’Flynn - CC BY-SA 8

0 1

0 1 1 0

00 01 11 10

1. 2. 3.

00 01 11 10

00 01 11 10 10 11 01 00

000 001 011 010 110 111 101 100

1. 2. 3.

3-bit Gray Code

2-bit Gray Code

1. Write known Gray code down, even just 1-bit Gray Code

2. Mirror Gray code vertically 3. Add a single ‘0’ infront of original code,

add a single ‘1’ infront of mirrored code 4. Repeat until required # of bits made

Page 9: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

MINIMIZATION BY MAPPING

16/07/2012 Colin O’Flynn - CC BY-SA 9

Page 10: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Karnaugh Maps

16/07/2012 Colin O’Flynn - CC BY-SA 10

Invented by Maurice Karnaugh A B C Minterms f

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 1

1 0 1 1

1 1 0 1

1 1 1 1

3 4 5 6 7f m m m m m= + + + +

4 A•B•Cm =

5 A•B•Cm =

6 A•B•Cm =

7 A•B•Cm =

3 A•B•Cm =AB C 00 01 11 10 0 1 1

1 1 1

1

Page 11: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Karnaugh (K-Map) Minimization

16/07/2012 Colin O’Flynn - CC BY-SA 11

1 1

1 1 1

Page 12: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Karnaugh (K-Map) Minimization

16/07/2012 Colin O’Flynn - CC BY-SA 12

1 1

1 1 1

Page 13: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

K-Map: 3-Input Product of Sum

16/07/2012 Colin O’Flynn - CC BY-SA 13

A•B•C A•B•C A•B•C A•B•C

A•B•C A•B•C A•B•C A•B•C

Page 14: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

K-Map: 4-Inputs Product of Sum

16/07/2012 Colin O’Flynn - CC BY-SA 14

A•B•C•D A•B•C•D A•B•C•D A•B•C•D

A•B•C•D A•B•C•D A•B•C•D

A•B•C•D A•B•C•D A•B•C•D

A•B•C•D A•B•C•D A•B•C•D

A•B•C•D

A•B•C•D

A•B•C•D

Page 15: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Mapping Connections

16/07/2012 Colin O’Flynn - CC BY-SA 15

1 1

1

1

Page 16: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Mapping Connections

16/07/2012 Colin O’Flynn - CC BY-SA 16

1

1

1

1

1 1

1

( ) ( )Y= A•D + B•C

Page 17: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Mapping Connections

16/07/2012 Colin O’Flynn - CC BY-SA 17

1 1

1 1 Y=B•D

Page 18: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Mapping Connections

16/07/2012 Colin O’Flynn - CC BY-SA 18

Page 19: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Notes on Grouping Terms

1. Groups must consist of 1,2,4,8,16,.. Etc terms 2. Left & Right-Side of K-Maps Connect 3. Top & Bottom of K-Maps Connect 4. Try to maximize number of terms per group 5. There may be multiple solutions to same

problem 6. Based on if more 1’s or 0’s in truth table can

use Product-of-Sum or Sum-of-Product resp.

16/07/2012 Colin O’Flynn - CC BY-SA 19

Page 20: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Multiple Solutions

16/07/2012 Colin O’Flynn - CC BY-SA 20

Page 21: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Example #1 – Vote Taker

Map the following:

16/07/2012 Colin O’Flynn - CC BY-SA 21

A B C Y

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

Page 22: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Example #1

16/07/2012 Colin O’Flynn - CC BY-SA 22

A•B•C A•B•C A•B•C A•B•C

A•B•C A•B•C A•B•C A•B•C

A B C Y

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

Page 23: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Example #2 – Full Adder

16/07/2012 Colin O’Flynn - CC BY-SA 23

A B Cin Sum Cout

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

Page 24: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Example #2 – Full Adder

16/07/2012 Colin O’Flynn - CC BY-SA 24

A B Cin Sum

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 1

A B Cin Cout

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

Page 25: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Example #3 – Comparator

16/07/2012 Colin O’Flynn - CC BY-SA 25

A B C D AB > CD

0 0 0 0 0

0 0 0 1 0

0 0 1 0 0

0 0 1 1 0

0 1 0 0 1

0 1 0 1 0

0 1 1 0 0

0 1 1 1 0

1 0 0 0 1

1 0 0 1 1

1 0 1 0 0

1 0 1 1 0

1 1 0 0 1

1 1 0 1 1

1 1 1 0 1

1 1 1 1 0

Page 26: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Example #3 - Comparator

16/07/2012 Colin O’Flynn - CC BY-SA 26

Page 27: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Mapping with Don’t Cares

16/07/2012 Colin O’Flynn - CC BY-SA 27

A B C Y

0 0 0 0

0 0 1 0

0 1 0 ?

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 ?

Page 28: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Mapping with Don’t Cares

16/07/2012 Colin O’Flynn - CC BY-SA 28

A B C Y

0 0 0 0

0 0 1 0

0 1 0 ?

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 ?

Page 29: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Note on Don’t Care Notation

16/07/2012 Colin O’Flynn - CC BY-SA 29

Page 30: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Product of Sum Mapping

16/07/2012 Colin O’Flynn - CC BY-SA 30

A B C Y

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

Page 31: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Mapping using SoP

16/07/2012 Colin O’Flynn - CC BY-SA 31

A B C Y

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

Page 32: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Mapping using PoS

16/07/2012 Colin O’Flynn - CC BY-SA 32

A B C Y

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

Page 33: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Mapping 5 Input Variables

16/07/2012 Colin O’Flynn - CC BY-SA 33

E=0 E=1

Page 34: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Checking your Results

16/07/2012 Colin O’Flynn - CC BY-SA 34

http://k-map.sourceforge.net

Page 35: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Section Summary

• See ECED2200 Notes “Minimization By Mapping” (Page 76)

• Bebop to the Boolean Boogie Chapter 10 • Contemporary Logic Design Chapter 2

Useful software: http://k-map.sourceforge.net/

16/07/2012 Colin O’Flynn - CC BY-SA 35

Page 36: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

MAPPING EQUATIONS

16/07/2012 Colin O’Flynn - CC BY-SA 36

Page 37: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

16/07/2012 Colin O’Flynn - CC BY-SA 37

A•B•C A•B•C A•B•C A•B•C

A•B•C A•B•C A•B•C A•B•C

Page 38: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

16/07/2012 Colin O’Flynn - CC BY-SA 38

A•B•C•D A•B•C•D A•B•C•D A•B•C•D

A•B•C•D A•B•C•D A•B•C•D

A•B•C•D A•B•C•D A•B•C•D

A•B•C•D A•B•C•D A•B•C•D

A•B•C•D

A•B•C•D

A•B•C•D

Page 39: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Section Summary

• See ECED2200 Notes “Minimization By Mapping” (Page 76)

• Bebop to the Boolean Boogie Chapter 10 • Contemporary Logic Design Chapter 2

16/07/2012 Colin O’Flynn - CC BY-SA 39

Page 40: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

NAND – NOR CONVERSIONS

16/07/2012 Colin O’Flynn - CC BY-SA 40

Page 41: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

FET Logic Gates - NAND

Source: http://commons.wikimedia.org/wiki/File:NAND_gate_(CMOS_circuit).PNG

16/07/2012 Colin O’Flynn - CC BY-SA 41

Page 42: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

FET Logic Gates - NOR

http://commons.wikimedia.org/wiki/File:NOR_gate_%28CMOS_circuit%29.PNG 16/07/2012 Colin O’Flynn - CC BY-SA 42

Page 43: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Equivalencies

16/07/2012 Colin O’Flynn - CC BY-SA 43

A+B

A B•

A B

A+B

A B•

A+B

A+B

A B•

Page 44: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

NAND Conversion: Step 1

1. Draw complete schematic

16/07/2012 Colin O’Flynn - CC BY-SA 44

Page 45: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

NAND Conversion: Step 2

Convert all AND gates to NAND gates and add additional inverted input to next level:

16/07/2012 Colin O’Flynn - CC BY-SA 45

Page 46: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

NAND Conversion: Step 3

Convert all OR gates to NAND gates:

16/07/2012 Colin O’Flynn - CC BY-SA 46

Page 47: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

NAND Conversion: Step 4

If two circles connect together cancel them. If circles do not cancel on inputs to NAND gates, add inverter built from NAND.

16/07/2012 Colin O’Flynn - CC BY-SA 47

Page 48: ECED2200 – Digital Circuits Slides - Colin O'Flynn Circuits Slides 04 - K Map… · Counters 16/07/2012 Colin O’Flynn - CC BY-SA 4 1010 . 1001 . 1000 . 0111 . 0110 . 0101 . 0100

Section Summary

• See ECED2200 Notes “Conversion to NAND and NOR Networks” (Page 102)

16/07/2012 Colin O’Flynn - CC BY-SA 48