21
CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Embed Size (px)

Citation preview

Page 1: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

CS1022 Computer Programming &

Principles

Lecture 9.2Boolean Algebra (2)

Page 2: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Plan of lecture• Simplifying Boolean expressions• Karnaugh maps• Logic circuits

2CS1022

Page 3: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Simplifying Boolean expressions (1)• Given a Boolean expression, can we find a “simpler”

equivalent expression?– “Simpler” = “fewer symbols”

• Technique applied to disjunctive normal form (DNF)– Even though it might be more complex than original– Process: original expr. DNF simplified expr.

• Technique restricted to at most 3 Boolean variables– Extension to more variables is possible

3CS1022

Page 4: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Simplifying Boolean expressions (2)• To simplify, let’s suppress “”– Just like “” in algebra can be dropped (e.g., 2y = 2 y)– For instance, the expression in disjunctive normal form

(p q r) (p q r) (p q r)Will be represented as

pqr pqr pqr• We can simplify the above expression as follows:

4CS1022

pqr pqr pqr (prq prq) pqr Comm.& assoc. Laws

pr(q q) pqr Distr. Law pr pqr Since q q = 1

Page 5: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Simplifying Boolean expressions (3)• Compare pr pqr and pqr pqr pqr– They are equivalent – all changes done via a “law”– It is much simpler than original expression

• Very important: simplification can be automated– Each step in the process is an operation– Sequence of steps terminates at some point

• Notice:– First step puts together two minterms which differed by

one symbol– Second step reduced two terms to one

5CS1022

Page 6: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Karnaugh maps (1)• Simplification done via a Karnaugh map– “Device” invented in the 1950s to help circuit design– Uses a visual display to indicate which pairs of minterms

can be merged as a simpler expression• For Boolean expressions with 3 variables (p, q and r)– Karnaugh map is a table with 2 rows and 4 columns– Columns labelled with all possible disjunctions of p and q

and their negations– Rows labelled with r and r

6CS1022

pq pq pq pq rr

Page 7: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Karnaugh maps (2)• As we move from column to column precisely one

change occurs in the column label• Cells correspond to 8 different minterms stemming

from 3 Boolean variables• For a given Boolean expression, we write “1” in

each cell whose row/column expression appears• For instance, pqr pqr pqr has map

7CS1022

pq pq pq pq r 1 1r 1

Page 8: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Karnaugh maps (3)• Required simplification suggested by “clusters” of 1s– Shaded in green here

• There is only one such cluster in the example– Corresponds to terms we combined using the laws

8CS1022

pq pq pq pq r 1 1r 1

Page 9: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Karnaugh maps (3)• Relabelling columns preserves adjacency– Some clusters may be “hidden”– NB relabelling must be consistent with requirement that

adjacent columns differ by one symbol only• Example: Karnaugh map of pqr pqr pqr

– Relabelling columns produces an alternative Karnaugh map and reveals a pair of adjacent minterms

9CS1022

pq pq pq pq r 1 1r 1

pq pq pq pqr 1 1r 1

Page 10: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Karnaugh maps (4)• Hence,

10CS1022

pq pq pq pqr 1 1r 1

pqr pqr pqr pqr (pqr pqr) pqr pr(q q) pqr pr

Page 11: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Karnaugh maps (5)Let’s simplify pqr pqr pqr pqr pqr• Karnaugh map:

• It contains a cluster of 4 (A) and a pair (B)– There are no hidden pairs – We must try relabelling exhaustively

11CS1022

pq pq pq pqr 1 1r 1 1 1

pqr pqr pqr pqr (pqr pqr) pqr pr(q q) pqr pr

Page 12: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Karnaugh maps (6)Cluster (A) corresponds to

12CS1022

pq pq pq pqr 1 1r 1 1 1

pqr pqr pqr pqr (p p)qr (p p)qr qr qr q(r r) q

Page 13: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Karnaugh maps (7)Cluster (B) corresponds to

So, simplified expression is q pr

13CS1022

pq pq pq pqr 1 1r 1 1 1

pqr pqr pr(q q) pr

Page 14: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Logic circuits (1)• One of the main application of Boolean algebra is

the design of binary devices– They accept a (finite) number of inputs– They produce a (finite) number of outputs– Binary: only two possible values for each input & output

• Circuits as “black boxes”:

14CS1022

?...

p1p2p3

pn

...q1q2q3

qm

Page 15: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Logic circuits (2)• Devices are built of logic gates which perform basic

Boolean operations (, , and )

15CS1022

a

ba b

a

ba b

a a

a

b(a b)

OR gate

AND gate

NOT gate

NAND gate

Page 16: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

• Interconnecting gates produces a logical circuit• A logical circuit evaluates a Boolean expression• Example: What is the final output of this circuit?

Logic circuits (3)

16CS1022

4

3

2

1pq

r5

6

7

Page 17: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

4

3

2

1pq

r5

6

7

• Example: What is the final output of this circuit?Logic circuits (4)

17CS1022

4

3

2

1pq

r5

6

7

pq

4

3

2

1pq

r5

6

74

3

2

1pq

r5

6

7

pq pqr pqr pqr pqr pqr

pqr pqr pqr

Page 18: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

• Solution: pqr pqr pqrLogic circuits (5)

18CS1022

Gate Inputs Output1 p, q pq2 p, q pq3 pq, r pqr4 pq, r pqr5 pq, r pqr6 pqr, pqr pqr pqr7 pqr pqr, pqr pqr pqr pqr

Page 19: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

• Logic circuits can be simplified if we allow AND and OR gates to have more than 2 inputs

• More dramatic simplifications w/ Karnaugh maps– 2 clusters (one hidden)

• We can simplify things:– pqr pqr pq(r r) pq– pqr pqr (q q)pr pr

• That is, pqr pqr pqr pq pr– We can further simplify this as p(q r)

Logic circuits (6)

19CS1022

pq pq pq pqr 1 1r 1

Page 20: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

• With p(q r), we simplify previous circuit to obtainLogic circuits (7)

20CS1022

p

qr

Page 21: CS1022 Computer Programming & Principles Lecture 9.2 Boolean Algebra (2)

Further reading• R. Haggarty. “Discrete Mathematics for

Computing”. Pearson Education Ltd. 2002. (Chapter 9)

• Wikipedia’s entry on Boolean algebra• Wikibooks entry on Boolean algebra

21CS1022