basic boolean functions paolo prinetto politecnico di torino (italy) university of illinois at...

45
Basic Boolean Basic Boolean Functions Functions Paolo PRINETTO Politecnico di Torino (Italy) University of Illinois at Chicago, IL (USA) [email protected] [email protected] www.testgroup.polito.it Lecture 3.4

Upload: cecilia-douglas

Post on 05-Jan-2016

222 views

Category:

Documents


0 download

TRANSCRIPT

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

Basic Boolean Basic Boolean FunctionsFunctions

Basic Boolean Basic Boolean FunctionsFunctions

Paolo PRINETTOPolitecnico di Torino (Italy)

University of Illinois at Chicago, IL (USA)

[email protected] [email protected]

www.testgroup.polito.it

Lecture

3.4

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

2 3.4

Goal

This lecture presents the basic Boolean Functions.

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

3 3.4

Prerequisites

Lecture 3.3

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

4 3.4

Homework

No particular homework is foreseen

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

5 3.4

Further readings

No particular suggestion

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

6 3.4

Remark

The lecture is organized in such a way to be self-explanatory; thus no further comment will be provided.

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

7 3.4

Basic Boolean Functions Basic Boolean Functions

Several “basic” boolean functions have been defined, each identified by a unique name, become a world-wide de-facto standard.

They include: not and or nand nor exor exnor

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

8 3.4

Why are they so significant?

Electronic devices are available to implement each of these basic boolean functions

Each device is usually given the same name of the corresponding boolean functions, e.g.:

AND function AND gate

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

9 3.4

“Logic Complement” or “NOT” function

“Logic Complement” or “NOT” function

Informal definition

It’s a unary function, providing the ^complement of its input variable.

Representations

x’ x not (x)

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

10 3.4

Axiomatic definition

0’ = 1 not (0) = 1

1’ = 0 not (1) = 0

Truth table

x not(x)

0 1

1 0

“not” (cont'd)

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

11 3.4

Functional definition

if x = 1 then not(x) = 0

else not(x) = 1

Theorems

( x’ )’ = x not ( not ( x ) ) = x

“not” (cont'd)

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

12 3.4

1

NOT gate, or inverter

[ANSI/IEEE standard STD 91-1984“Graphics symbols for logic functions”]

IEEE symboltraditional symbol

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

13 3.4

“Logic product” or “AND” function

“Logic product” or “AND” function

Informal definition

The AND function on 2 (or more) input variables provides the value 1 iff all its input variables get the value 1.

Representations

x · y x y and ( x, y )

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

14 3.4

Axiomatic definition

0 · 0 = 0 and(0,0) = 0

0 · 1 = 0 and(0,1) = 0

1 · 0 = 0 and(1,0) = 0

1 · 1 = 1 and(1,1) = 1

Truth table

x y and(x,y)

0 0 0

0 1 0

1 0 0

1 1 1

xy

and(x,y)

Karnaugh map

0 1

0 0 0

1 0 1

“and” (cont'd)

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

15 3.4

Functional representation

if x = 1 then and(x,y) = y

else and(x,y) = 0

“and” (cont'd)

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

16 3.4

Theorems

x · 0 = 0

x · 1 = x

x · x = x

x · x’ = 0

x · y = y · x

x · y · z = (x · y) · z = x · (y · z)

“and” (cont'd)

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

17 3.4

&xy

xy

U U

AND gate

IEEE symboltraditional symbol

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

18 3.4

“Logic sum” or “OR” function“Logic sum” or “OR” function

Informal definition

The OR function on 2 (or more) input variables provides the value 1 iff at least one of its input variables get the value 1.

Representations

x + y or ( x, y )

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

19 3.4

Functional representation

if x = 1 then or(x,y) = 1

else or(x,y) = y

“or” (cont'd)

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

20 3.4

Axiomatic definition

0 + 0 = 0 or(0,0) = 0

0 + 1 = 1 or(0,1) = 1

1 + 0 = 1 or(1,0) = 1

1 + 1 = 1 or(1,1) = 1

Truth table

x y or(x,y)

0 0 0

0 1 1

1 0 1

1 1 1

xy

or(x,y)

Karnaugh map

0 1

0 0 1

1 1 1

“or” (cont'd)

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

21 3.4

Theorems

x + 0 = x

x + 1 = 1

x + x = x

x + x’ = 1

x + y = y + x

x + y + z = (x + y) + z = x + (y + z)

“or” (cont'd)

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

22 3.4

1xy

xy

U U

IEEE symboltraditional symbol

OR gate

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

23 3.4

“NAND” function“NAND” function

Informal definition

The NAND function on 2 (or more) input variables provides the value 1 iff at least one of its input variables get the value 0.

Representations

nand (x, y)

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

24 3.4

Axiomatic definition

nand(0,0) = 1

nand(0,1) = 1

nand(1,0) = 1

nand(1,1) = 0

Truth table

x y nand(x,y)

0 0 1

0 1 1

1 0 1

1 1 0

xy

nand(x,y)

Karnaugh map

0 1

0 1 1

1 1 0

“nand” (cont'd)

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

25 3.4

Functional representation

if x = 1 then nand(x,y) = not(y)

else nand(x,y) = 1

“nand” (cont'd)

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

26 3.4

Theorems

nand (x, 0) = 1

nand (x, 1) = x’

nand (x, x) = x’

nand (x, x’) = 1

nand (x, y) = nand (y, x)

nand (x, y) = not ( and (x, y) )

nand (x, y, z) = nand (x, and (y, z)) =

= nand (and (x, y), z) = nand (x, and (y,z))

“nand” (cont'd)

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

27 3.4

&xy

xy

NAND gate

IEEE symboltraditional symbol

U U

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

28 3.4

“NOR” function“NOR” function

Informal definition

The NOR function on 2 (or more) input variables provides the value 1 iff none of its input variables get the value 1.

Representations

nor (x, y)

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

29 3.4

Axiomatic definition

nor(0,0) = 1

nor(0,1) = 0

nor(1,0) = 0

nor(1,1) = 0

Truth table

x y nor(x,y)

0 0 1

0 1 0

1 0 0

1 1 0

xy

nor(x,y)

Karnaugh map

0 1

0 1 0

1 0 0

“nor” (cont'd)

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

30 3.4

Functional representation

if x = 1 then nor(x,y) = 0

else nor(x,y) = not(y)

“nor” (cont'd)

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

31 3.4

Theorems

nor (x, 0) = x’

nor (x, 1) = 0

nor (x, x) = x’

nor (x, x’) = 0

nor (x, y) = nor (y, x)

nor (x, y) = not ( or (x, y) )

nor (x, y, z) = nor (x, or (y, z)) =

= nor (or (x, y), z) = nor (x, or (y,z))

“nor” (cont'd)

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

32 3.4

1xy

xy

IEEE symboltraditional symbol

NOR gate

U U

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

33 3.4

“Exclusive OR”(or “EXOR” function)

“Exclusive OR”(or “EXOR” function)

Informal definition

The EXOR function on 2 (or more) input variables provides the value 1 iff an odd # of its input variables get the value 1.

Representations

x y exor (x, y) xor (x, y)

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

34 3.4

Axiomatic definition

0 0 = 0

0 1 = 1

1 0 = 1

1 1 = 0

Truth table

x y x y

0 0 0

0 1 1

1 0 1

1 1 0

xy

exor(x,y)

Karnaugh map

0 1

0 0 1

1 1 0

“exor” (cont'd)

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

35 3.4

1st functional representation

if x = 1 then exor(x,y) = not(y)

else exor(x,y) = y

“exor” (cont'd)

The exor function can be seen as a controlled inverter : x y exor(x,y)

0 0 00 1 11 0 11 1 0

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

36 3.4

2nd functional representation

if x = y then exor(x,y) = 0

else exor(x,y) = 1

“exor” (cont'd)

The exor function can be seen as a comparator :

x y exor(x,y) 0 0 01 1 01 0 10 1 1

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

37 3.4

3rd functional representation

if (x+y)mod 2 = 1 then exor(x,y) = 0

else exor(x,y) = 1

“exor” (cont'd)

The exor function can be seen as a modulo 2 adder

x y (x+y)mod 2 exor(x,y) 0 0 0 00 1 1 11 0 1 11 1 0 0

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

38 3.4

Theorems

exor (x, 0) = x

exor (x, 1) = x’

exor (x, x) = 0

exor (x, x’ ) = 1

exor (x, y) = exor (y, x)

exor (x, y) = exor (x’ , y’)

exor (x, y’) = exor (x’, y) = not (exor(x,y))

exor (x, y) = x y’ + x’ y

exor (x, y, z) = exor (x, exor (y, z))

= exor (exor (x,y), z)

“exor” (cont'd)

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

39 3.4

Karnaugh map for a 4-inputs exor

abcd

exor (a,b,c,d)

00 01 11 10

00 0 1 0 1

01 1 0 1 0

11 0 1 0 1

10 1 0 1 0

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

40 3.4

EXOR gate

IEEE symboltraditional symbol

=1

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

41 3.4

“EXNOR” function“EXNOR” function

Informal definition

The EXOR function on 2 (or more) input variables provides the value 1 iff an even # of its input variables get the value 1.

Representations

x · y exnor (x, y)

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

42 3.4

Axiomatic definition

exnor(0,0) = 1

exnor(0,1) = 0

exnor(1,0) = 0

exnor(1,1) = 1

Truth table

x y exnor(x,y)

0 0 1

0 1 0

1 0 0

1 1 1

xy

exnor(x,y)

Karnaugh map

0 1

0 1 0

1 0 1

“exnor” (cont'd)

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

43 3.4

Functional representations

if x = 1 then exor(x,y) = y

else exor(x,y) = not(y)

if x = y then exor(x,y) = 1

else exor(x,y) = 0

Theorems

exnor (x, y) = exor (x, y)’ = exor (x’, y) = exor (x, y’)

exnor (x, y) = x y + x’ y’

“exnor” (cont'd)

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

44 3.4

EXNOR gate

IEEE symboltraditional symbol

=1U U

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