IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are...

27
IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC, which is derived from Howard Huang’s work and developed by Jeff Carlyle.

Transcript of IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are...

Page 1: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

IKI1020103a-Boolean Algebra

Bobby NaziefSemester-I 2005 -

2006

The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC, which is derived from Howard Huang’s work and developed by Jeff Carlyle.

Page 2: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

2

Road Map

Boolean Algebra

Logic Gates &Flip-flops

Register-TransferDesign

Finite-StateMachines

Binary Systems& Data Represent.

Generalized FSM

Sequential DesignTechniques

Logic DesignTechniques

CombinatorialComponents

StorageComponents

ProcessorComponents

2

3

3

4

5

6

7

6

8 8

9

Page 3: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

3

Boolean Algebra

Page 4: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

4

Boolean values

• Earlier, we used electrical voltages to representtwo discrete values 1 and 0, from which binary numberscan be formed.

• It’s also possible to think of voltages as representingtwo logical values, true and false.

• For simplicity, we often still write digits instead:

– 1 (high) is true

– 0 (low) is false

• We will use these values 1 and 0 as the elements of our Boolean System.

Page 5: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

5

Basic boolean operations

• There are two basic operations for logical values.

x y xy

0 0 0

0 1 0

1 0 0

1 1 1

x y x+y

0 0 0

0 1 1

1 0 1

1 1 1

AND (product)of two inputs

OR (sum) of two inputs

xy, or xy x + y

Operation:

Expression:

Truth table:

Page 6: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

6

Axiomatic definition of Boolean Algebra

• A Boolean algebra requires

– A set of elements B, consisting of two elements (0 and 1)

– Two binary operations OR and AND

– The axioms below must always be true

– Based on axiom #5, we can develop a unary (one-argument) operation NOT

1. x + y B x y B Closure 2. x + 0 = x x 1 = x I dentity 3. x + y = y + x x y = y x Commutativity 4. x(y + z) = xy + xz x + yz = (x + y)(x + z) Distributivity 5. x + x’ = 1 x x’ = 0 Complement 6. At least 2 elements: x,y B such that x y Cardinality

x x’

0 1

1 0

Page 7: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

7

Basic theorems of Boolean Algebra

• In addition to the axioms, additional laws can be derived; they are called theorems of Boolean Algebra

• These theorems are useful in performing algebraic manipulations of Boolean expressions

1. x + x = x x x = x I dempotency 2. x + 1 = 1 x 0 = 0 3. yx + x = x (y + x) x = x Absorption 4. (x’)’ = x I nvolution 5. x + (y + z) = (x + y) + z x(yz) = (xy)z Associative 6. (x + y)’ = x’y’ (xy)’ = x’ + y’ DeMorgan’s

Page 8: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

8

Proofing the theorems using axioms

• Idempotency: x + x = xProof:

x + x = (x + x) 1 by identity= (x + x) (x + x’) by complement= x + x x’ by distributivity= x + 0 by complement= x by identity

• Idempotency: x x = xProof:

x x = (x x) + 0 by identity= (x x) + (x x’) by complement= x (x + x’) by distributivity= x 1 by complement= x by identity

Page 9: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

9

Duality principle

• The left and right columns of axioms are duals

– exchange all ANDs with ORs, and 0s with 1s

• So are the theorems:

1. x + y B x y B Closure 2. x + 0 = x x 1 = x I dentity 3. x + y = y + x xy = yx Commutativity 4. x(y + z) = xy + xz x + yz = (x + y)(x + z) Distributivity 5. x + x’ = 1 x x’ = 0 Complement 6. At least 2 elements: x,y B such that x y Cardinality

1. x + x = x x x = x I dempotency 2. x + 1 = 1 x 0 = 0 3. yx + x = x (y + x) x = x Absorption 4. (x’)’ = x I nvolution 5. x + (y + z) = (x + y) + z x(yz) = (xy)z Associative 6. (x + y)’ = x’y’ (xy)’ = x’ + y’ DeMorgan’s

Page 10: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

10

Boolean Functions

• Computers take inputs and produce outputs, just like functions in math!

• Mathematical functions can be expressed in two ways:

• We can represent logical functions in two analogous ways too:

– A finite, but non-unique Boolean expression.

– A truth table, which will turn out to be unique and finite.

x y f (x,y)

0 0 0… … …2 2 6… … …23 41 87… … …

f(x,y) = 2x + y= x + x + y= 2(x + y/2)= ...

An expression isfinite but not unique

A function table isunique but infinite

Page 11: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

11

Boolean expressions

• We can use these basic operations to form more complex expressions:

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

• Some terminology and notation:

– f is the name of the function.

– (x,y,z) are the input variables, each representing 1 or 0. Listing the inputs is optional, but sometimes helpful.

– A literal is any occurrence of an input variable or its complement. The function above has four literals: x, y’, z, and x’.

• Precedence is important, but not too difficult.

– NOT has the highest precedence, followed by AND, and then OR.

– Fully parenthesized, the function above would be kind of messy:

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

Page 12: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

12

Truth tables

• A truth table shows all possible inputs and outputs of a function.

• Remember that each input variable represents either 1 or 0.

– Because there are only a finite number of values (1 and 0), truth tables themselves are finite.

– A function with n variables has 2n possible combinations of inputs.

• Inputs are listed in binary order—in this example, from 000 to 111.

x y z f (x,y,z)

0 0 0 10 0 1 10 1 0 10 1 1 11 0 0 01 0 1 11 1 0 01 1 1 1

f(0,0,0) = (0 + 1)0 + 1 = 1f(0,0,1) = (0 + 1)1 + 1 = 1f(0,1,0) = (0 + 0)0 + 1 = 1f(0,1,1) = (0 + 0)1 + 1 = 1f(1,0,0) = (1 + 1)0 + 0 = 0f(1,0,1) = (1 + 1)1 + 0 = 1f(1,1,0) = (1 + 0)0 + 0 = 0f(1,1,1) = (1 + 0)1 + 0 = 1

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

Page 13: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

13

Complement of a function

• The complement of a function always outputs 0 where the original function outputted 1, and 1 where the original produced 0.

• In a truth table, we can just exchange 0s and 1s in the output column(s)

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

x y z f (x,y,z)

0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1

x y z f ’(x,y,z)

0 0 0 1 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 0

Page 14: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

14

Complementing a function algebraically

• You can use DeMorgan’s law to keep “pushing” the complements inwards

• You can also take the dual of the function, and then complement each literal

– If f(x,y,z) = x(y’z’ + yz)…

– …the dual of f is x + (y’ + z’)(y + z)…

– …then complementing each literal gives x’ + (y + z)(y’ + z’)…

– …so f’(x,y,z) = x’ + (y + z)(y’ + z’)

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

f’(x,y,z) = ( x(y’z’ + yz) )’ [ complement both sides ]= x’ + (y’z’ + yz)’ [ because (xy)’ = x’ + y’ ]= x’ + (y’z’)’ (yz)’ [ because (x + y)’ = x’ y’ ]= x’ + (y + z)(y’ + z’) [ because (xy)’ = x’ + y’, twice]

Page 15: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

15

Algebraic manipulation

• We can now start doing some simplifications

x’y’ + xyz + x’y= x’(y’ + y) + xyz [ Distributive; x’y’ + x’y = x’(y’ +

y) ]= x’1 + xyz [ Axiom 5; y’ + y = 1 ]= x’ + xyz [ Axiom 2; x’1 = x’ ]= (x’ + x)(x’ + yz) [ Distributive ]= 1 (x’ + yz) [ Axiom 5; x’ + x = 1 ]= x’ + yz [ Axiom 2 ; x’1 = x’]

Page 16: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

16

Canonical Forms

• Any boolean function that is expressed as a sum of minterms or as a product of maxterms is said to be in its canonical form.

Page 17: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

17

Minterms

• A minterm is a special product of literals, in which each input variable appears exactly once.

• A function with n variables has 2n minterms (since each variable can appear complemented or not)

• A three-variable function, such as f(x,y,z), has 23 = 8 minterms:

• Each minterm is true for exactly one combination of inputs:

x’y’z’ x’y’z x’yz’ x’yzxy’z’ xy’z xyz’ xyz

Minterm Is true when… Shorthandx’y’z’ x=0, y=0, z=0 m0

x’y’z x=0, y=0, z=1 m1

x’yz’ x=0, y=1, z=0 m2

x’yz x=0, y=1, z=1 m3

xy’z’ x=1, y=0, z=0 m4

xy’z x=1, y=0, z=1 m5

xyz’ x=1, y=1, z=0 m6

xyz x=1, y=1, z=1 m7

Page 18: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

18

Sum of minterms form

• Every function can be written as a sum of minterms, which is a special kind of sum of products form

• The sum of minterms form for any function is unique

• If you have a truth table for a function, you can write a sum of minterms expression just by picking out the rows of the table where the function output is 1 (1-minterm).

x y z f (x,y,z) f ’(x,y,z)

0 0 0 1 00 0 1 1 00 1 0 1 00 1 1 1 01 0 0 0 11 0 1 0 11 1 0 1 01 1 1 0 1

f = x’y’z’ + x’y’z + x’yz’ + x’yz + xyz’= m0 + m1 + m2 + m3 + m6

= (0,1,2,3,6)

f’ = xy’z’ + xy’z + xyz

= m4 + m5 + m7

= (4,5,7)f’ contains all the minterms not in f

Page 19: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

19

Sum of minterms: practise

• F = x + yz, how to express this in the sum of minterms? = x(y + y’)(z + z’) + (x + x’)yz = xyz + xyz’ + xy’z + xy’z’ + xyz + x’yz = x’yz + xy’z’ + xy’z + xyz’ + xyz = (3,4,5,6,7)

or, convert the expression into truth-table and then read the minterms from the table

Page 20: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

20

Maxterms

• A maxterm is a sum of literals, in which each input variable appears exactly once.

• A function with n variables has 2n maxterms

• The maxterms for a three-variable function f(x,y,z):

• Each maxterm is false for exactly one combination of inputs:

x’ + y’ + z’ x’ + y’ + z x’ + y + z’ x’+ y + zx + y’ + z’ x + y’ + z x + y + z’ x + y + z

Maxterm Is false when… Shorthandx + y + z x=0, y=0, z=0 M0

x + y + z’ x=0, y=0, z=1 M1

x + y’ + z x=0, y=1, z=0 M2

x + y’ + z’ x=0, y=1, z=1 M3

x’ + y + z x=1, y=0, z=0 M4

x’ + y + z’ x=1, y=0, z=1 M5

x’ + y’ + z x=1, y=1, z=0 M6

x’ + y’ + z’ x=1, y=1, z=1 M7

Page 21: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

21

Product of maxterms form

• Every function can be written as a unique product of maxterms

• If you have a truth table for a function, you can write a product of maxterms expression by picking out the rows of the table where the function output is 0 (0-maxterm).

x y z f (x,y,z) f ’(x,y,z)

0 0 0 1 00 0 1 1 00 1 0 1 00 1 1 1 01 0 0 0 11 0 1 0 11 1 0 1 01 1 1 0 1

f = (x’ + y + z)(x’ + y + z’)(x’ + y’ + z’)= M4 M5 M7

= ∏(4,5,7)

f’ = (x + y + z)(x + y + z’)(x + y’ + z)

(x + y’ + z’)(x’ + y’ + z)= M0 M1 M2 M3 M6

= ∏(0,1,2,3,6)f’ contains all the maxterms not in f

Page 22: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

22

Product of maxterms: practise

• F = x’y’ + xz, how to express this in the product of maxterms? = (x’y’ + x)(x’y’ + z) = (x’ + x)(y’ + x)(x’ + z)(y’ + z) = (x + y’)(x’ + z)(y’ + z) = (x + y’ + zz’)(x’ + z + yy’)(xx’ + y’ + z) = (x + y’ + z)(x + y’ + z’)(x’ + y + z)(x’ + y’ + z)(x + y’ + z)(x’ + y’ + z) = (x + y’ + z)(x + y’ + z’)(x’ + y + z)(x’ + y’ + z) = ∏(2,3,4,6)

or, convert the expression into truth-table and then read the minterms from the table

Page 23: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

23

Minterms and maxterms are related

• Any minterm mi is the complement of the corresponding maxterm Mi

• For example, m4’ = M4 because (xy’z’)’ = x’ + y + z

Maxterm Shorthandx + y + z M0

x + y + z’ M1

x + y’ + z M2

x + y’ + z’ M3

x’ + y + z M4

x’ + y + z’ M5

x’ + y’ + z M6

x’ + y’ + z’ M7

Minterm Shorthandx’y’z’ m0

x’y’z m1

x’yz’ m2

x’yz m3

xy’z’ m4

xy’z m5

xyz’ m6

xyz m7

Page 24: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

24

Converting between canonical forms

• We can convert a sum of minterms to a product of maxterms

• In general, just replace the minterms with maxterms, using maxterm numbers that don’t appear in the sum of minterms:

• The same thing works for converting from a product of maxterms to a sum of minterms

From before f = (0,1,2,3,6)and f’ = (4,5,7)

= m4 + m5 + m7

complementing (f’)’ = (m4 + m5 + m7)’so f = m4’ m5’ m7’ [ DeMorgan’s law ]

= M4 M5 M7 [ By the previous page ]

= ∏(4,5,7)

f = (0,1,2,3,6)= ∏(4,5,7)

Page 25: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

25

Standard Forms

• Any boolean function that is expressed as a sum of products (SOP) or as a product of sums (POS), where each product-term or sum-term may require fewer than (n-1) operations, is said to be in its standard form.

• Standard forms are not unique, there can be several different SOPs and POSs for a given function.

• A SOP expression contains:

– Only OR (sum) operations at the “outermost” level

– Each term (implicant) must be a product of literals

• A POS expression contains:

– Only AND (product) operations at the “outermost” level

– Each term (implicate) must be a sum of literals

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

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

Page 26: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

26

Strategy for operator (literal) reduction

Page 27: IKI10201 03a-Boolean Algebra Bobby Nazief Semester-I 2005 - 2006 The materials on these slides are adopted from those in CS231’s Lecture Notes at UIUC,

27

Other Logic Operations

• We’ve already seen all the basic Boolean operations and the associated primitive logic gates.

• There is a few additional gates that are often used in logic design.

– They are all equivalent to some combination of primitive gates.

– But they have some interesting properties in their own right.

x y (xy)’

0 0 1

0 1 1

1 0 1

1 1 0

x y (x+y)’

0 0 1

0 1 0

1 0 0

1 1 0

NAND(NOT-AND)

NOR(NOT-OR)

XOR(eXclusive OR)

(xy)’ = x’ + y’

(x + y)’ = x’ y’ x y = x’y + xy’

Operation:

Expressions:

Truth table: x y xy

0 0 0

0 1 1

1 0 1

1 1 0