boolean functions and gates - brown...

Post on 31-Jul-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CS031 Lecture 4 (a) Page 1

CS31

Pascal Van Hentenryck

Boolean Functions

and Gates

CS031 Lecture 4 (a) 2

Overview

We have seen so far that

•! computers deal with words of binary

digits

•! these words can be used to store a

variety of objects (e.g. numbers, characters, ...)

We now study

•! how to build circuits to perform

operations on these representations

Fundamental Idea

•! a new abstraction called combinational

device

CS031 Lecture 4 (a) 3

The Big Picture

CS031 Lecture 4 (a) 4

Abstraction Hierarchy

Programming Language

Assembly Language

Machine Language

Sequential Circuit

Combinational Circuit

Binary Value

Voltage

Programming Language

Assembly Language

Machine Language

Sequential Circuit

Combinational Circuit

Binary Value

Voltage

CS031 Lecture 4 (a) 5

Combinational Devices

A combinational device is a circuit having

•! some binary input

•! some binary output

•! a functional specification, stating the values of

the output in terms of the inputs

•! a timing specification, giving the maximum

time necessary to compute the outputs given

the inputs

Static Discipline

•! This is the guarantee that, given valid inputs, the circuit will deliver valid outputs (after some

propagation delay)

This is the simplest tool to build computers

Combinational devices can be combined to

produce other combinational devices when:

•! the circuit contains no directed cycle

CS031 Lecture 4 (a) 6

The main goal

Show how to build combinational

devices

•! for the operations we have seen

•! given a set of basic boolean functions

Organization

•! Basic Boolean functions

•! Truth table

•! Properties

•! Normal forms

CS031 Lecture 4 (a) 7

Truth Tables

CS031 Lecture 4 (a) 8

Truth Tables Specification of combinational

devices

•! lots of ways to choose f (24, to be

exact)

CS031 Lecture 4 (a) 9

And

and(a,b) = 1 if and only if a = 1 and b = 1

Alternative notations for and(a,b)

include:

•! ab (we’ll be using this one)

•! a!b

•! a 杏 b

This is also called the conjunction

operator.

CS031 Lecture 4 (a) 10

Or or(a,b) = 1 if and only if a = 1 or b = 1

Alternative notations for or(a,b)

include:

•! a + b (we’ll be using this one)

•! a以 b

This is also called the disjunction

operator.

CS031 Lecture 4 (a) 11

Not not(a) = 1 if and only if a = 0

Alternative notations for not(a)

include:

•! a’

•! ¬a

This is also called the negation

operator.

CS031 Lecture 4 (a) 12

De Morgan’s Laws If you have and and not, you can

create the or function; if you have or

and not, you can create the and

function.

a + b = (a’b’)’

Similarly (try this one out yourself)

ab = (a’ + b’)’

1

1

1

1

0

0

0 0

0 0 1

1

1 1

1

1

1 0

0

0

CS031 Lecture 4 (a) 13

Exclusive Or (xor)

ab’ + a’b

1

0

1 0

0

0

0

0

0

0

1

1

CS031 Lecture 4 (a) 14

Nand nand(a,b) = 1 if and only if it is not

the case that both a = 1 and b = 1

Nand is universal:

a’ =

ab =

=

a+b=

CS031 Lecture 4 (a) 15

Nand nand(a,b) = 1 if and only if it is not the case

that both a = 1 and b = 1

Nand is universal:

a’ = nand(a,a)

ab =

=

a+b= =

=

=

CS031 Lecture 4 (a) 16

Nand nand(a,b) = 1 if and only if it is not the case

that both a = 1 and b = 1

Nand is universal:

a’ = nand(a,a)

ab = nand(nand(a,b),nand(a,b))

= (nand(a,b))’

a+b= =

=

=

CS031 Lecture 4 (a) 17

Nand nand(a,b) = 1 if and only if it is not

the case that both a = 1 and b = 1

Nand is universal:

a’ = nand(a,a)

ab = nand(nand(a,b),nand(a,b))

= (nand(a,b))’

a+b= nand(nand(a,a),nand(b,b))

= nand(a’, b’)

CS031 Lecture 4 (a) 18

Associativity

Basic rules

•! A ( B C ) = ( A B ) C = A B C

•! A + ( B + C ) = ( A + B ) + C = A + B + C

Name Conventions

•! ABC is called a product

•! A+B+C is called a sum

Priorities

•! Negation has highest priority

•! “and” has higher priority than “or”

CS031 Lecture 4 (a) 19

Other Properties

Commutativity

•! A B = B A

•! A + B = B + A

Distributivity

•! A ( B + C) = A B + A C

•! A + ( B C) = (A + B) (A + C)

Which rule is not true for integers?

CS031 Lecture 4 (a) 20

Other Properties

Commutativity

•! A B = B A

•! A + B = B + A

Distributivity

•! A ( B + C) = A B + A C

•! A + ( B C) = (A + B) (A + C)

Which rule is not true for integers?

Distributivity:

2 + (3*3) " (2+3)(2+3)

11 " 25

CS031 Lecture 4 (a) 21

Truth Tables Specification of combinational

devices

•! lots of ways to choose f (24, to be

exact)

CS031 Lecture 4 (a) 22

Truth Tables

CS031 Lecture 4 (a) 23

Sum of Products Representing a function by a logical

expression

The expression is

Basic Idea

Associate a product term with each row with an

output at 1; the term has the variable if its

value is 1 and the negation of the variable

otherwise

CS031 Lecture 4 (a) 24

Sum of Products Representing a function by a logical

expression

The expression is

a’b’c + a’bc + ab’c’ + ab’c

Basic Idea

Associate a product term with each row with an

output at 1; the term has the variable if its

value is 1 and the negation of the variable

otherwise

CS031 Lecture 4 (a) 25

Product of Sums

The expression is

Basic Idea The result is a product term. Each sum in this

product negates a row which has a zero output. Associate a sum term with each row with an output at 0; the term has the variable if its value is 0 and the negation of the variable otherwise

CS031 Lecture 4 (a) 26

Product of Sums

The expression is (a+b+c)(a+b’+c)(a’+b’+c)(a’+b’+c’)

Basic Idea The result is a product term. Each sum in this

product negates a row which has a zero output. Associate a sum term with each row with an output at 0; the term has the variable if its value is 0 and the negation of the variable otherwise

CS031 Lecture 4 (a) 27

Logical Gates

CS031 Lecture 4 (a) 28

Combinational Device

f(a,b,c) = ab + b’c

CS031 Lecture 4 (a) 29

We still have a way to go to

get to our Linux boxes...

...but we’ll get there!

CS031 Lecture 4 (b) Page 1

CS31 Pascal Van Hentenryck

Karnaugh Maps

CS031 Lecture 4 (b) 2

Overview

Karnaugh Maps

•! Simplifying Boolean functions

CS031 Lecture 3 (b) 3

The Big Picture

CS031 Lecture 3 (b) 4

Abstraction Hierarchy

Programming Language

Assembly Language

Machine Language

Sequential Circuit

Combinational Circuit

Binary Value

Voltage

Programming Language

Assembly Language

Machine Language

Sequential Circuit

Combinational Circuit

Binary Value

Voltage

CS031 Lecture 4 (b) 5

Minimizing Boolean

Functions

The problem •! Given a truth table, find a small circuit

to compute it

•! The problem is very hard in general (no really efficient algorithm exists)

Possible solutions •! Put the function as a sum of products

and build the corresponding circuit

•! Put the function as product of sums and build the corresponding circuit

Limitation •! The size of the circuit may be far from

the minimal size

Karnaugh Maps •! A heuristic method to minimize the

size of the circuit

CS031 Lecture 4 (b) 6

Karnaugh Map

Another Presentation of a Truth Table

The Karnaugh map looks like this

CS031 Lecture 4 (b) 7

Karnaugh Map

3 variables

4 variables

CS031 Lecture 4 (b) 8

Karnaugh Maps

Property

•! Adjacent entries differ by at most one

variable

•! The whole table is wrapping up on

itself. The end of a row is adjacent to

the beginning of the row and so on.

Z’

Z

Z

Z’

CS031 Lecture 4 (b) 9

Boxes Boxes of sizes 1,2,4,8 or 16

CS031 Lecture 4 (b) 10

A K-Map

CS031 Lecture 4 (b) 11

Minimization

The basic strategy

1.! Draw the Karnaugh map

2.! Fill it with the truth table

3.! Cover all the 1s with boxes of size 1, 2, 4, 8,

16. ... (an entry can be covered by several

boxes if needed)

4.! Generate a product for each box; each

element of the product corresponds to a

variable which stays constant over the box. It

is the variable if the variable stays at 1 and

the negation of the variable otherwise.

5.! The result is the sum of all these products

The main goal

•! As few boxes as possible

•! The biggest possible boxes

CS031 Lecture 4 (b) 12

A simplification

Another Presentation of a Truth Table

The Karnaugh map looks like this

What is the boolean function?

CS031 Lecture 4 (b) 13

A simplification

Another Presentation of a Truth Table

The Karnaugh map looks like this

What is the boolean function? f(a,b)=a’

CS031 Lecture 4 (b) 14

Another Simplification Problem

Sum of Products gives us:

CS031 Lecture 4 (b) 15

Another Simplification Problem

Sum of Products gives us: f(x,y,z) = x’yz + xy’z’ + xyz’ + xyz

Karnaugh map:

CS031 Lecture 4 (b) 16

Another Simplification Problem

Sum of Products gives us: f(x,y,z) = x’yz + xy’z’ + xyz’ + xyz

Karnaugh map:

f(x,y,z) = yz + xz’

CS031 Lecture 4 (b) 17

A Really Big One

CS031 Lecture 4 (b) 18

Don’t Cares

Sometimes, it doesn’t matter exactly

which output is generated in a certain

situation.

A don’t care value is represented by a

x and we can choose any value that

is convenient to us.

What do we choose?

By setting the left and right x’s to 1 we

can make a 2x2 square, reducing the

function to: f(x,y,z)=z’

CS031 Lecture 4 (b) 19

Don’t Cares

Sometimes, it doesn’t matter exactly

which output is generated in a certain

situation.

A don’t care value is represented by a

x and we can choose any value that

is convenient to us.

What do we choose?

By setting the left and right x’s to 1 we

can make a 2x2 square, reducing the

function to: f(x,y,z)=z’

1

1

CS031 Lecture 4 (b) 20

We Still Don’t Care!

What if the x’s were 0’s?

f(w,x,y,z)=(w’x’y) + (w’xz) + (xyz)

CS031 Lecture 4 (b) 21

We Still Don’t Care!

What if the x’s were 0’s?

f(w,x,y,z)=(w’x’y) + (w’xz) + (xyz)

What if they’re don’t cares?

CS031 Lecture 4 (b) 22

We Still Don’t Care!

What if the x’s were 0’s?

f(w,x,y,z)=(w’x’y) + (w’xz) + (xyz)

What if they’re don’t cares?

f(w,x,y,z)=(x’y) + (xz)

How many operations do we save?

Including negations, 11-4=7

CS031 Lecture 4 (b) 23

Half Adder

Given two inputs, generate the sum and carry.

CS031 Lecture 4 (b) 24

Full Adder

Add three inputs, generating the sum and carry.

CS031 Lecture 4 (b) 25

Simplification for FA

Karnaugh map for S

Karnaugh map for C

CS031 Lecture 4 (b) 26

Chaining Adders We can add two 4-bit numbers

by chaining full adders. FAFAFAFA0x0y0y2x2y2x2y1x1S0S1S2S3C

FA

FA

FA

FA

0 x0 y0

x1

x2

x3

y1

y2

y3

S0

S1

S2

S3

C

top related