Boolean Algebra (1)
2
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
3
Basic Boolean operations
• There are three 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
x x
0 1
1 0
AND (product)of two inputs
OR (sum) of two inputs
NOT(complement)on one input
xy, or xy x + y
Operation:
Expression:
Truth table:
x
4
Note Simbols
'
'
'
zz
yy
xx
5
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’.
• Precedences are 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’)
6
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 1
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 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’
7
Primitive logic gates
• Each of our basic operations can be implemented in hardware using a primitive logic gate.
– Symbols for each of the logic gates are shown below.
– These gates output the product, sum or complement of their inputs.
Logic gate:
AND (product)of two inputs
OR (sum) of two inputs
NOT(complement)on one input
xy, or xy x + y x’
Operation:
Expression:
8
Expressions and circuits
• Any Boolean expression can be converted into a circuit by combining basic gates in a relatively straightforward way.
• The diagram below shows the inputs and outputs of each gate.
• The precedences are explicit in a circuit. Clearly, we have to make sure that the hardware does operations in the right order!
(x + y’)z + x’
9
Circuit analysis
• Circuit analysis involves figuring out what some circuit does.
– Every circuit computes some function, which can be described with Boolean expressions or truth tables.
– So, the goal is to find an expression or truth table for the circuit.
• The first thing to do is figure out what the inputs and outputs of the overall circuit are.
– This step is often overlooked!
– The example circuit here has three inputs x, y, z and one output f.
10
Write algebraic expressions...
• Next, write expressions for the outputs of each individual gate, based on that gate’s inputs.
– Start from the inputs and work towards the outputs.
– It might help to do some algebraic simplification along the way.
• Here is the example again.
– We did a little simplification for the top AND gate.
– You can see the circuit computes f(x,y,z) = xz + y’z + x’yz’
11
...or make a truth table
• It’s also possible to find a truth table directly from the circuit.
• Once you know the number of inputs and outputs, list all the possible input combinations in your truth table.
– A circuit with n inputs should have a truth table with 2n rows.
– Our example has three inputs, so the truth table will have 23 = 8 rows. All the possible input combinations are shown.
x y z f
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
12
Simulating the circuit
• Then you can simulate the circuit, either by hand or with a program like LogicWorks, to find the output for each possible combination of inputs.
• For example, when xyz = 101, the gate outputs would be as shown below.
– Use truth tables for AND, OR and NOT to find the gate outputs.
– For the final output, we find that f(1,0,1) = 1.
x y z f
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1 1
1 1 0
1 1 1
1
0
1
1
0
0
1
1
0
1
13
Finishing the truth table
• Doing the same thing for all the other input combinations yields the complete truth table.
• This is simple, but tedious.
x y z f
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
14
Expressions and truth tables
• Remember that if you already have a Boolean expression, you can use that to easily make a truth table.
• For example, since we already found that the circuit computes the function f(x,y,z) = xz + y’z + x’yz’, we can use that to fill in a table:
– We show intermediate columns for the terms xz, y’z and x’yz’.
– Then, f is obtained by just OR’ing the intermediate columns.
x y z xz y’z x’yz’ f
0 0 0 0 0 0 0
0 0 1 0 1 0 1
0 1 0 0 0 1 1
0 1 1 0 0 0 0
1 0 0 0 0 0 0
1 0 1 1 1 0 1
1 1 0 0 0 0 0
1 1 1 1 0 0 1
15
Truth tables and expressions
• The opposite is also true: it’s easy to come up with an expression if you already have a truth table.
• We saw that you can quickly convert a truth table into a sum of minterms expression. The minterms correspond to the truth table rows where the output is 1.
• You can then simplify this sum of minterms if desired—using a K-map, for example.
x y z f
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
f(x,y,z) = x’y’z + x’yz’ + xy’z + xyz
= m1 + m2 + m5 + m7
16
Circuit analysis summary
• After finding the circuit inputs and outputs, you can come up with either an expression or a truth table to describe what the circuit does.
• You can easily convert between expressions and truth tables.
Find the circuit’sinputs and outputs
Find a Booleanexpression
for the circuit
Find a truth tablefor the circuit
17
Boolean operations summary
• We can interpret high or low voltage as representing true or false.
• A variable whose value can be either 1 or 0 is called a Boolean variable.
• AND, OR, and NOT are the basic Boolean operations.
• We can express Boolean functions with either an expression or a truth table.
• Every Boolean expression can be converted to a circuit.
• Next time, we’ll look at how Boolean algebra can help simplify expressions, which in turn will lead to simpler circuits.
18
Expression simplification
• Normal mathematical expressions can be simplified using the laws of algebra
• For binary systems, we can use Boolean algebra, which is superficially similar to regular algebra
• There are many differences, due to
– having only two values (0 and 1) to work with
– having a complement operation
– the OR operation is not the same as addition
19
Formal definition of Boolean algebra
• A Boolean algebra requires
– A set of elements B, which needs at least two elements (0 and 1)
– Two binary (two-argument) operations OR and AND
– A unary (one-argument) operation NOT
– The axioms below must always be true (textbook, p. 33)
• The magenta axioms deal with the complement operation
• Blue axioms (especially 15) are different from regular algebra
1. x + 0 = x 2. x 1 = x
3. x + 1 = 1 4. x 0 = 0
5. x + x = x 6. x x = x
7. x + x’ = 1 8. x x’ = 0
9. (x’)’ = x
10. x + y = y + x 11. xy = yx Commutative
12. x + (y + z) = (x + y) + z 13. x(yz) = (xy)z Associative
14. x(y + z) = xy + xz 15. x + yz = (x + y)(x + z) Distributive
16. (x + y)’ = x’y’ 17. (xy)’ = x’ + y’ DeMorgan’s
20
Comments on the axioms
• The associative laws show that there is no ambiguity about a term such as x + y + z or xyz, so we can introduce multiple-input primitive gates:
• The left and right columns of axioms are duals
– exchange all ANDs with ORs, and 0s with 1s
• The dual of any equation is always true
1. x + 0 = x 2. x 1 = x
3. x + 1 = 1 4. x 0 = 0
5. x + x = x 6. x x = x
7. x + x’ = 1 8. x x’ = 0
9. (x’)’ = x
10. x + y = y + x 11. xy = yx Commutative
12. x + (y + z) = (x + y) + z 13. x(yz) = (xy)z Associative
14. x(y + z) = xy + xz 15. x + yz = (x + y)(x + z) Distributive
16. (x + y)’ = x’y’ 17. (xy)’ = x’ + y’ DeMorgan’s
21
Are these axioms for real?
• We can show that these axioms are true, given the definitions of AND, OR and NOT
• The first 11 axioms are easy to see from these truth tables alone. For example, x + x’ = 1 because of the middle two lines below (where y = x’)
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
x x’
0 1
1 0
x y x+y
0 0 0
0 1 1
1 0 1
1 1 1
22
Proving the rest of the axioms
• We can make up truth tables to prove (both parts of) DeMorgan’s law
• For (x + y)’ = x’y’, we can make truth tables for (x + y)’ and for x’y’
• In each table, the columns on the left (x and y) are the inputs. The columns on the right are outputs.
• In this case, we only care about the columns in blue. The other “outputs” are just to help us find the blue columns.
• Since both of the columns in blue are the same, this shows that (x + y)’ and x’y’ are equivalent
x y x + y (x + y)’ x y x’ y’ x’y’
0 0 0 1 0 0 1 1 1
0 1 1 0 0 1 1 0 0
1 0 1 0 1 0 0 1 0
1 1 1 0 1 1 0 0 0
23
Simplification with axioms
• 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 7; y’ + y = 1 ]= x’ + xyz [ Axiom 2; x’1 = x’ ]= (x’ + x)(x’ + yz) [ Distributive ]= 1 (x’ + yz) [ Axiom 7; x’ + x = 1 ]= x’ + yz [ Axiom 2 ]
1. x + 0 = x 2. x 1 = x
3. x + 1 = 1 4. x 0 = 0
5. x + x = x 6. x x = x
7. x + x’ = 1 8. x x’ = 0
9. (x’)’ = x
10. x + y = y + x 11. xy = yx Commutative
12. x + (y + z) = (x + y) + z 13. x(yz) = (xy)z Associative
14. x(y + z) = xy + xz 15. x + yz = (x + y)(x + z) Distributive
16. (x + y)’ = x’y’ 17. (xy)’ = x’ + y’ DeMorgan’s
24
Let’s compare the resulting circuits
• Here are two different but equivalent circuits.
• In general the one with fewer gates is “better”:
– It costs less to build
– It requires less power
– But we had to do some work to find the second form
25
Some more laws
• Here are some more useful laws (p. 37). Notice the duals again!
• We can prove these laws by either
– Making truth tables:
– Using the axioms:
1. x + xy = x 4. x(x + y) = x
2. xy + xy’ = x 5. (x + y)(x + y’) = x
3. x + x’y = x + y 6. x(x’ + y) = xy
xy + x’z + yz = xy + x’z (x + y)(x’ + z)(y + z) = (x + y)(x’ + z)
x y x’ x’y x + x’y x y x + y
0 0 0 0 0
0 1 0 1 1
1 0 1 0 1
1 1 1 1 1
x + x’y = (x + x’)(x + y) [ Distributive ]= 1 (x + y) [ x + x’ = 1 ]= x + y [ Axiom 2 ]
26
The 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 1
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0
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 1
1 1 0 0
1 1 1 1
27
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]
Boolean Algebra (2)
29
Standard forms of expressions
• We can write expressions in many ways, but some ways are more useful than others
• A sum of products (SOP) expression contains:
– Only OR (sum) operations at the “outermost” level
– Each term that is summed must be a product of literals
• The advantage is that any sum of products expression can be implemented using a two-level circuit
– literals and their complements at the “0th” level
– AND gates at the first level
– a single OR gate at the second level
• This diagram uses some shorthands…
– NOT gates are implicit
– literals are reused
– this is not okay in LogicWorks!
f(x,y,z) = y’ + x’yz’ + xz
30
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
31
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.
x y z f(x,y,z) f’(x,y,z)
0 0 0 1 0
0 0 1 1 0
0 1 0 1 0
0 1 1 1 0
1 0 0 0 1
1 0 1 0 1
1 1 0 1 0
1 1 1 0 1
f = x’y’z’ + x’y’z + x’yz’ + x’yz + xyz’= m0 + m1 + m2 + m3 + m6
= m(0,1,2,3,6)
f’ = xy’z’ + xy’z + xyz= m4 + m5 + m7
= m(4,5,7)
f’ contains all the minterms not in f
32
The dual idea: products of sums
• Just to keep you on your toes...
• A product of sums (POS) expression contains:
– Only AND (product) operations at the “outermost” level
– Each term must be a sum of literals
• Product of sums expressions can be implemented with two-level circuits
– literals and their complements at the “0th” level
– OR gates at the first level
– a single AND gate at the second level
• Compare this with sums of products
f(x,y,z) = y’ (x’ + y + z’) (x + z)
33
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
34
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. (Be careful if you’re writing the actual literals!)
x y z f(x,y,z) f’(x,y,z)
0 0 0 1 0
0 0 1 1 0
0 1 0 1 0
0 1 1 1 0
1 0 0 0 1
1 0 1 0 1
1 1 0 1 0
1 1 1 0 1
f = (x’ + y + z)(x’ + y + z’)(x’ + y’ + z’)= M4 M5 M7
= M(4,5,7)
f’ = (x + y + z)(x + y + z’)(x + y’ + z)(x + y’ + z’)(x’ + y’ + z)
= M0 M1 M2 M3 M6
= M(0,1,2,3,6)
f’ contains all the maxterms not in f
35
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
36
Converting between standard 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 = m(0,1,2,3,6)and f’ = m(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 ]
= M(4,5,7)
f = m(0,1,2,3,6)
= M(4,5,7)
37
Summary
• So far:
– A bunch of Boolean algebra trickery for simplifying expressions and circuits
– The algebra guarantees us that the simplified circuit is equivalentto the original one
– Introducing some standard forms and terminology
• Next:
– An alternative simplification method
– We’ll start using all this stuff to build and analyze bigger, more useful, circuits