digital logic & computer design cs 4341 professor dan ...€¦ · copyright © 2007 elsevier 2-...

84
Copyright © 2007 Elsevier 2-<101> Digital Logic & Computer Design CS 4341 Professor Dan Moldovan Spring 2010

Upload: others

Post on 04-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<101>

Digital Logic & Computer Design

CS 4341

Professor Dan Moldovan

Spring 2010

Page 2: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<102>

Chapter 2 :: Combinational Logic Design

Digital Design and Computer Architecture

David Money Harris and Sarah L. Harris

Page 3: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<103>

Chapter 2 :: Topics

• Introduction

• Boolean Equations

• Boolean Algebra

• From Logic to Gates

• Multilevel Combinational Logic

• X’s and Z’s

• Karnaugh Maps

• Combinational Building Blocks

• Timing

Page 4: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<104>

Introduction

A logic circuit is composed of:

• Inputs

• Outputs

• Functional specification

• Timing specification

inputs outputsfunctional spec

timing spec

Page 5: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<105>

Circuits

• Nodes

– Inputs: A, B, C

– Outputs: Y, Z

– Internal: n1

• Circuit elements

– E1, E2, E3

– Each a circuit

A E1

E2

E3B

C

n1

Y

Z

Page 6: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<106>

Types of Logic Circuits

• Combinational Logic

– Memoryless

– Outputs determined by current values of inputs

• Sequential Logic

– Has memory

– Outputs determined by previous and current values of inputs

inputs outputsfunctional spec

timing spec

Page 7: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<107>

Rules of Combinational Composition

• Every circuit element is itself combinational

• Every node of the circuit is either designated as an input to

the circuit or connects to exactly one output terminal of a

circuit element

• The circuit contains no cyclic paths: every path through

the circuit visits each circuit node at most once

• Example:

Page 8: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<108>

Boolean Equations

• Functional specification of outputs in terms of inputs

• Example:

S = F(A, B, Cin)

Cout = F(A, B, Cin)

AS

S = A ⊕ B ⊕ Cin

Cout

= AB + ACin + BC

in

BC

in

CLC

out

Page 9: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<109>

Some Definitions

• Complement: variable with a bar over it

A, B, C

• Literal: variable or its complement

A, A, B, B, C, C

• Implicant: product of literals

ABC, AC, BC

• Minterm: product that includes all input variables

ABC, ABC, ABC

• Maxterm: sum that includes all input variables

(A+B+C), (A+B+C), (A+B+C)

Page 10: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<110>

A B Y

0 0

0 1

1 0

1 1

0

1

0

1

minterm

A B

A B

A B

A B

Y = F(A, B) =

• All Boolean equations can be written in SOP form

• Each row in a truth table has a minterm

• A minterm is a product (AND) of literals

• Each minterm is TRUE for that row (and only that row)

• The function is formed by ORing the minterms for which

the output is TRUE

• Thus, a sum (OR) of products (AND terms)

Sum-of-Products (SOP) Form

Page 11: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<111>

A B Y

0 0

0 1

1 0

1 1

0

1

0

1

minterm

A B

A B

A B

A B

Y = F(A, B) =

• All Boolean equations can be written in SOP form

• Each row in a truth table has a minterm

• A minterm is a product (AND) of literals

• Each minterm is TRUE for that row (and only that row)

• The function is formed by ORing the minterms for which

the output is TRUE

• Thus, a sum (OR) of products (AND terms)

Sum-of-Products (SOP) Form

Page 12: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<112>

A B Y

0 0

0 1

1 0

1 1

0

1

0

1

minterm

A B

A B

A B

A B

Y = F(A, B) = AB + AB

• All Boolean equations can be written in SOP form

• Each row in a truth table has a minterm

• A minterm is a product (AND) of literals

• Each minterm is TRUE for that row (and only that row)

• The function is formed by ORing the minterms for which

the output is TRUE

• Thus, a sum (OR) of products (AND terms)

Sum-of-Products (SOP) Form

Page 13: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<113>Y = F(A, B) = (A + B)(A + B)

• All Boolean equations can be written in POS form

• Each row in a truth table has a maxterm

• A maxterm is a sum (OR) of literals

• Each maxterm is FALSE for that row (and only that row)

• The function is formed by ANDing the maxterms for

which the output is FALSE

• Thus, a product (AND) of sums (OR terms)

A + B

A B Y

0 0

0 1

1 0

1 1

0

1

0

1

maxterm

A + B

A + B

A + B

Product-of-Sums (POS) Form

Page 14: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<114>

Boolean Equations Example

• You are going to the cafeteria for lunch

– You won’t eat lunch (E)

– If it’s not open (O) or

– If they only serve corndogs (C)

• Write a truth table for determining if you will eat

lunch (E).O C E

0 0

0 1

1 0

1 1

Page 15: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<115>

Boolean Equations Example

• You are going to the cafeteria for lunch

– You won’t eat lunch (E)

– If it’s not open (O) or

– If they only serve corndogs (C)

• Write a truth table for determining if you will eat

lunch (E).O C E

0 0

0 1

1 0

1 1

0

0

1

0

Page 16: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<116>

SOP & POS Form

• SOP – sum-of-products

• POS – product-of-sums

O C E0 0

0 1

1 0

1 1

minterm

O C

O C

O C

O C

O + C

O C Y

0 0

0 1

1 0

1 1

maxterm

O + C

O + C

O + C

Page 17: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<117>

SOP & POS Form

• SOP – sum-of-products

• POS – product-of-sums

O + C

O C E

0 0

0 1

1 0

1 1

0

0

1

0

maxterm

O + C

O + C

O + C

O C E

0 0

0 1

1 0

1 1

0

0

1

0

minterm

O C

O C

O C

O C

Y = (O + C)(O + C)(O + C)

Y = OC

Page 18: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<118>

Boolean Algebra

• Set of axioms and theorems to simplify Boolean equations

• Like regular algebra, but in some cases simpler because

variables can have only two values (1 or 0)

• Axioms and theorems obey the principles of duality:

– ANDs and ORs interchanged, 0’s and 1’s interchanged

Page 19: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<119>

Boolean Axioms

Page 20: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<120>

T1: Identity Theorem

• B 1 =

• B + 0 =

Page 21: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<121>

T1: Identity Theorem

1 =

=

B

0B

B

B

• B 1 = B

• B + 0 = B

Page 22: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<122>

T2: Null Element Theorem

• B 0 =

• B + 1 =

Page 23: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<123>

T2: Null Element Theorem

• B 0 = 0

• B + 1 = 1

0 =

=

B

1B

1

0

Page 24: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<124>

T3: Idempotency Theorem

• B B =

• B + B =

Page 25: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<125>

T3: Idempotency Theorem

• B B = B

• B + B = B

B =

=

B

BB

B

B

Page 26: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<126>

T4: Identity Theorem

• B =

Page 27: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<127>

T4: Identity Theorem

• B = B

= BB

Page 28: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<128>

T5: Complement Theorem

• B B =

• B + B =

Page 29: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<129>

T5: Complement Theorem

B =

=

B

BB

1

0

• B B = 0

• B + B = 1

Page 30: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<130>

Boolean Theorems: Summary

Page 31: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<131>

Boolean Theorems of Several Variables

Page 32: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<132>

Simplifying Boolean Expressions: Example 1

• Y = AB + AB

Page 33: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<133>

Simplifying Boolean Expressions: Example 1

• Y = AB + AB

= B(A + A) T8

= B(1) T5’

= B T1

Page 34: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<134>

Simplifying Boolean Expressions: Example 2

• Y = A(AB + ABC)

Page 35: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<135>

Simplifying Boolean Expressions: Example 2

• Y = A(AB + ABC)

= A(AB(1 + C)) T8

= A(AB(1)) T2’

= A(AB) T1

= (AA)B T7

= AB T3

Page 36: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<136>

DeMorgan’s Theorem

• Y = AB = A + B

• Y = A + B = A B

AB

Y

AB

Y

AB

Y

AB

Y

Page 37: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<137>

Bubble Pushing

• Pushing bubbles backward (from the output) or forward (from the inputs) changes the body of the gate from AND to OR or vice versa.

• Pushing a bubble from the output back to the inputs puts bubbles on all gate inputs.

• Pushing bubbles on all gate inputs forward toward the output puts a bubble on the output and changes the gate body.

AB

YAB

Y

AB

YAB

Y

Page 38: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<138>

• What is the Boolean expression for this circuit?

Bubble Pushing

AB

YCD

Page 39: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<139>

• What is the Boolean expression for this circuit?

Bubble Pushing

AB

YCD

Y = AB + CD

Page 40: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<140>

• Begin at the output of the circuit and work toward the inputs.

• Push any bubbles on the final output back toward the inputs.

• Draw each gate in a form so that bubbles cancel.

Bubble Pushing Rules

AB

C

D

Y

Page 41: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<141>

Bubble Pushing Example

AB

C Y

D

Page 42: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<142>

Bubble Pushing Example

AB

C Y

D

no outputbubble

Page 43: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<143>

Bubble Pushing Example

bubble oninput and outputA

B

C

D

Y

AB

C Y

D

no outputbubble

Page 44: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<144>

Bubble Pushing Example

AB

C

D

Y

bubble oninput and outputA

B

C

D

Y

AB

C Y

D

Y = ABC + D

no outputbubble

no bubble oninput and output

Page 45: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<145>

From Logic to Gates

• Two-level logic: ANDs followed by ORs

• Example: Y = ABC + ABC + ABC

BA C

Y

minterm: ABC

minterm: ABC

minterm: ABC

A B C

Page 46: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<146>

Circuit Schematics with Style

• Inputs are on the left (or top) side of a schematic

• Outputs are on the right (or bottom) side of a schematic

• Whenever possible, gates should flow from left to right

• Straight wires are better to use than wires with multiple

corners

Page 47: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<147>

Circuit Schematic Rules (cont.)

• Wires always connect at a T junction

• A dot where wires cross indicates a connection

between the wires

• Wires crossing without a dot make no connection

wires connectat a T junction

wires connectat a dot

wires crossingwithout a dot do

not connect

Page 48: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<148>

Multiple Output Circuits

A1

A0

0 0

0 1

1 0

1 1

Y3

Y2

Y1

Y0A

3A

2

0 0

0 0

0 0

0 0

0 00 1

0 1

1 0

1 1

0 0

0 1

0 1

0 1

1 0

0 11 0

1 0

1 1

0 0

0 1

1 0

1 0

1 1

1 1

1 01 1

1 11 1

A0

A1

PRIORITY

CiIRCUIT

A2

A3

Y0

Y1

Y2

Y3

• Output asserted

corresponding to

most significant

TRUE input

Page 49: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<149>

Multiple Output Circuits

0000

A1

A0

0 0

0 1

1 0

1 1

0000

0000

0000

Y3

Y2

Y1

Y0

0000

0000

0000

0000

0000

0000

1111

1111

0000

1111

0000

0000

A3

A2

0 0

0 0

0 0

0 0

0 0 0000 1111 0000 00000 1

0 1

1 0

1 1

0 0

0 1

0 1

0 1

1 0

0 11 0

1 0

1 1

0 0

0 1

1 0

1 0

1 1

1 1

1 01 1

1 11 1

0000

0000

0000

1111

1111

1111

1111

0000

0000

0000

0000

0000

0000

0000

0000

0000

1111 0000 0000 0000

1111

1111

1111

1111

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

1111 0000 0000 0000

1111 0000 0000 0000

A0

A1

PRIORITY

CiIRCUIT

A2

A3

Y0

Y1

Y2

Y3

• Output asserted

corresponding to

most significant

TRUE input

Page 50: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<150>

Priority Encoder Hardware

A1

A0

0 0

0 1

1 0

1 1

0000

0000

0000

0000

Y3

Y2

Y1

Y0

0000

0000

0000

0000

0000

0000

1111

1111

0000

1111

0000

0000

A3

A2

0 0

0 0

0 0

0 0

0 0 0000 1111 0000 00000 1

0 1

1 0

1 1

0 0

0 1

0 1

0 1

1 0

0 11 0

1 0

1 1

0 0

0 1

1 0

1 0

1 1

1 1

1 01 1

1 11 1

0000

0000

0000

1111

1111

1111

1111

0000

0000

0000

0000

0000

0000

0000

0000

0000

1111 0000 0000 0000

1111

1111

1111

1111

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

1111 0000 0000 0000

1111 0000 0000 0000

A3A

2A

1A

0Y

3

Y2

Y1

Y0

Page 51: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<151>

Don’t Cares

A1

A0

0 0

0 1

1 0

1 1

0000

0000

0000

0000

Y3

Y2

Y1

Y0

0000

0000

0000

0000

0000

0000

1111

1111

0000

1111

0000

0000

A3

A2

0 0

0 0

0 0

0 0

0 0 0000 1111 0000 00000 1

0 1

1 0

1 1

0 0

0 1

0 1

0 1

1 0

0 11 0

1 0

1 1

0 0

0 1

1 0

1 0

1 1

1 1

1 01 1

1 11 1

0000

0000

0000

1111

1111

1111

1111

0000

0000

0000

0000

0000

0000

0000

0000

0000

1111 0000 0000 0000

1111

1111

1111

1111

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

1111 0000 0000 0000

1111 0000 0000 0000

A1

A0

0 0

0 1

1 X

X X

0000

0000

0000

0000

Y3

Y2

Y1

Y0

0000

0000

0000

1111

0000

0000

1111

0000

0000

1111

0000

0000

A3

A2

0 0

0 0

0 0

0 1

X X 1111 0000 0000 00001 X

Page 52: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<152>

Contention: X

• Contention: circuit tries to drive the output to 1 and 0

– Actual value may be somewhere in between

– Could be a legal 0, a legal 1, or in the forbidden zone

– Might change with voltage, temperature, time, noise

– Often causes excessive power dissipation

• Contention usually indicates a bug.

– Fix it unless you are sure you know what you are doing.

• Warning: X is used for “don’t care” and contention

– Note the same thing

– Look at the context to tell them apart

A = 1

Y = X

B = 0

Page 53: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<153>

Floating: Z

• Floating, high impedance, open, high Z

• Floating output might be 0, 1, or somewhere in between

– A voltmeter won’t indicate whether a node is floating

Tristate Buffer

E A Y0 0 Z

0 1 Z

1 0 0

1 1 1

A

E

Y

Page 54: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<154>

Tristate Busses

• Floating nodes are used in tristate busses

– Many different drivers

– Exactly one is active at any timeen1

to bus

from bus

en2

to bus

from bus

en3

to bus

from bus

en4

to bus

from bus

sh

are

d b

us

processor

video

Ethernet

memory

Page 55: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<155>

Karnaugh Maps (K-Maps)

• Boolean expressions can be minimized by combining terms

• K-maps minimize equations graphically

• PA + PA = P

C00 01

0

1

Y

11 10AB

1

1

0

0

0

0

0

0

C 00 01

0

1

Y

11 10AB

ABC

ABC

ABC

ABC

ABC

ABC

ABC

ABC

B C0 0

0 1

1 0

1 1

A0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

1

1

0

0

0

0

0

0

Y

Page 56: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<156>

• Circle 1’s in adjacent squares

• In the Boolean expression, include only the literals

whose true and complement form are not in the circle

Y = AB

K-map

C00 01

0

1

Y

11 10AB

1

0

0

0

0

0

0

1

B C0 0

0 1

1 0

1 1

A0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

1

1

0

0

0

0

0

0

Y

Page 57: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<157>

3-input K-map

C 00 01

0

1

Y

11 10AB

ABC

ABC

ABC

ABC

ABC

ABC

ABC

ABC

1

B C Y

0 0 0

0 1 0

1 0

1 1 1

Truth Table

C 00 01

0

1

Y

11 10ABA

0

0

0

0

0 0 0

0 1 0

1 0 0

1 1 1

1

1

1

1

K-Map

Page 58: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<158>

3-input K-map

C 00 01

0

1

Y

11 10AB

ABC

ABC

ABC

ABC

ABC

ABC

ABC

ABC

1 0

B C Y

0 0 0

0 1 0

1 0

1 1 1

Truth Table

C 00 01

0

1

Y

11 10ABA

0

0

0

0

0 0 0

0 1 0

1 0 0

1 1 1

1

1

1

1

0

1

1

1

0

0

0

K-Map

Y = AB + BC

Page 59: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<159>

K-map Definitions

• Complement: variable with a bar over it

A, B, C

• Literal: variable or its complement

A, A, B, B, C, C

• Implicant: product of literals

ABC, AC, BC

• Prime implicant: implicant corresponding to

the largest circle in a K-map

Page 60: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<160>

K-map Rules

• Every 1 in a K-map must be circled at least once

• Each circle must span a power of 2 (i.e. 1, 2, 4)

squares in each direction

• Each circle must be as large as possible

• A circle may wrap around the edges of the K-map

• A “don't care” (X) is circled only if it helps

minimize the equation

Page 61: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<161>

4-input K-map

01 11

01

11

10

00

00

10AB

CD

Y

0

C D0 0

0 1

1 0

1 1

B0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

1

1

1

0

1

1

1

YA0

0

0

0

0

0

0

0

0 0

0 1

1 0

1 1

0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

0

0

0

0

0

Page 62: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<162>

4-input K-map

01 11

1

0

0

1

0

0

1

101

1

1

1

1

0

0

0

1

11

10

00

00

10AB

CD

Y

0

C D0 0

0 1

1 0

1 1

B0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

1

1

1

0

1

1

1

YA0

0

0

0

0

0

0

0

0 0

0 1

1 0

1 1

0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

0

0

0

0

0

Page 63: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<163>

4-input K-map

01 11

1

0

0

1

0

0

1

101

1

1

1

1

0

0

0

1

11

10

00

00

10AB

CD

Y

Y = AC + ABD + ABC + BD

0

C D0 0

0 1

1 0

1 1

B0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

1

1

1

0

1

1

1

YA0

0

0

0

0

0

0

0

0 0

0 1

1 0

1 1

0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

0

0

0

0

0

Page 64: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<164>

K-maps with Don’t Cares

0

C D0 0

0 1

1 0

1 1

B0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

1

1

1

0

X

1

1

YA0

0

0

0

0

0

0

0

0 0

0 1

1 0

1 1

0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

X

X

X

X

X

X

01 11

01

11

10

00

00

10AB

CD

Y

Page 65: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<165>

K-maps with Don’t Cares

0

C D0 0

0 1

1 0

1 1

B0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

1

1

1

0

X

1

1

YA0

0

0

0

0

0

0

0

0 0

0 1

1 0

1 1

0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

X

X

X

X

X

X

01 11

1

0

0

X

X

X

1

101

1

1

1

1

X

X

X

X

11

10

00

00

10AB

CD

Y

Page 66: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<166>

K-maps with Don’t Cares

0

C D0 0

0 1

1 0

1 1

B0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

1

1

1

0

X

1

1

YA0

0

0

0

0

0

0

0

0 0

0 1

1 0

1 1

0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

X

X

X

X

X

X

01 11

1

0

0

X

X

X

1

101

1

1

1

1

X

X

X

X

11

10

00

00

10AB

CD

Y

Y = A + BD + C

Page 67: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<167>

Combinational Building Blocks

• Multiplexers

• Decoders

Page 68: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<168>

Multiplexer (Mux)

• Selects between one of N inputs to connect to the output.

• log2N-bit select input – control input

• Example: 2:1 Mux

Y

0 0

0 1

1 0

1 1

0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

0

1

S

D0

YD

1

D1

D0

S

Page 69: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<169>

Multiplexer (Mux)

• Selects between one of N inputs to connect to the output.

• log2N-bit select input – control input

• Example: 2:1 Mux

Y

0 0

0 1

1 0

1 1

0

1

0

1

0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

0

0

1

1

0

1

S

D0

YD

1

D1

D0

S Y

0

1 D1

D0

S

Page 70: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<170>

Multiplexer Implementations

• Logic gates

– Sum-of-products form

Y

D0

S

D1

D1

Y

D0

S

S00 01

0

1

Y

11 10D0 D1

0

0

0

1

1

1

1

0

Y = D0S + D1S

• Tristates

– For an N-input mux, use N

tristates

– Turn on exactly one to

select the appropriate input

Page 71: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<171>

Logic using Multiplexers

A B Y0 0 0

0 1 0

1 0 0

1 1 1

Y = AB

00

Y01

10

11

A B

• Using the mux as a lookup table

Page 72: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<172>

Logic using Multiplexers

A B Y0 0 0

0 1 0

1 0 0

1 1 1

Y = AB

A Y

0

1

0 0

1

A

BY

B

• Reducing the size of the mux

Page 73: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<173>

• N inputs, 2N outputs

• One-hot outputs: only one output HIGH at once

Decoders

2:4Decoder

A1

A0

Y3

Y2

Y1

Y0

00011011

0 0

0 1

1 0

1 1

0

0

0

1

Y3

Y2

Y1

Y0

A0

A1

0

0

1

0

0

1

0

0

1

0

0

0

Page 74: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<174>

Decoder Implementation

Y3

Y2

Y1

Y0

A0A1

Page 75: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<175>

• OR minterms

Logic using Decoders

2:4Decoder

A

B00011011

Y = AB + AB

Y

ABABABAB

Minterm

= A ⊕ B

Page 76: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<176>

• Delay between input change and output changing

• How to build fast circuits?

Timing

A

Y

Time

delay

A Y

Page 77: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<177>

Propagation & Contamination Delay

• Propagation delay: tpd = max delay from input to output

• Contamination delay: tcd = min delay from input to output

A

Y

Time

A Y

tpd

tcd

Page 78: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<178>

Propagation & Contamination Delay

• Delay is caused by

– Capacitance and resistance in a circuit

– Speed of light limitation

• Reasons why tpd and tcd may be different:

– Different rising and falling delays

– Multiple inputs and outputs, some of which are faster than others

– Circuits slow down when hot and speed up when cold

Page 79: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<179>

AB

C

D Y

Critical Path

Short Path

n1

n2

Critical (Long) Path: tpd = 2tpd_AND + tpd_OR

Short Path: tcd = tcd_AND

Critical (Long) and Short Paths

Page 80: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<180>

• Glitch: when a single input change causes

multiple output changes

• Glitches don’t cause problems because of

synchronous design conventions (which we’ll

talk about in a bit)

• But it’s important to recognize a glitch when

you see one in timing diagrams

Glitches

Page 81: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<181>

Glitch Example

AB

C

Y

00 01

1

Y

11 10AB

1

1

0

1

0

1

0

0

C

0

Y = AB + BC

• What happens when A = 0, C = 1, B falls?

Page 82: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<182>

Glitch Example (cont.)

A = 0B = 1 0

C = 1

Y = 1 0 1

Short Path

Critical Path

B

Y

Time

1 0

0 1

glitch

n1

n2

n2

n1

Page 83: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<183>

00 01

1

Y

11 10AB

1

1

0

1

0

1

0

0

C

0

Y = AB + BC + ACAC

Fixing the Glitch

B = 1 0Y = 1

A = 0

C = 1

Page 84: Digital Logic & Computer Design CS 4341 Professor Dan ...€¦ · Copyright © 2007 Elsevier 2- A B Y 0 0 0 1 1 0 1 1 0 1 0 1 minterm A B A B A B A B Y = F(A, B) = •

Copyright © 2007 Elsevier 2-<184>

• Glitches don’t cause problems because of

synchronous design conventions (which we’ll talk

about in Chapter 3)

• But it’s important to recognize a glitch when you

see one in simulations or on an oscilloscope

• Can’t get rid of all glitches – simultaneous

transitions on multiple inputs can also cause

glitches

Why Understand Glitches?