Date post: | 28-Dec-2015 |
Category: |
Documents |
Upload: | philippa-clark |
View: | 213 times |
Download: | 0 times |
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.
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
3
Boolean Algebra
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.
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:
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
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
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
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
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
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’)
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’
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
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]
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’]
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.
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
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
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
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
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
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
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
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)
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’)
26
Strategy for operator (literal) reduction
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