Title: IKI10201 03aBoolean Algebra
1IKI1020103a-Boolean Algebra
- Bobby Nazief
- Semester-I 2005 - 2006
The materials on these slides are adopted from
those in CS231s Lecture Notes at UIUC, which is
derived from Howard Huangs work and developed by
Jeff Carlyle.
2Road Map
Logic Gates Flip-flops
3
Boolean Algebra
3
6
Finite-StateMachines
6
4
Sequential DesignTechniques
Logic DesignTechniques
CombinatorialComponents
StorageComponents
2
Binary Systems Data Represent.
7
5
8
Register-TransferDesign
8
Generalized FSM
ProcessorComponents
9
3Boolean Algebra
4Boolean values
- Earlier, we used electrical voltages to
representtwo discrete values 1 and 0, from which
binary numberscan be formed. - Its 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.
5Basic boolean operations
- There are two basic operations for logical values.
AND (product) of two inputs
OR (sum) of two inputs
Operation
Expression
xy, or x?y
x y
Truth table
6Axiomatic 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
7Basic 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
8Proofing the theorems using axioms
- Idempotency x x x
- Proof 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 x
- Proof 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
9Duality principle
- The left and right columns of axioms are duals
- exchange all ANDs with ORs, and 0s with 1s
- So are the theorems
10Boolean 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.
11Boolean 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)
12Truth 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 orderin this
example, from 000 to 111.
13Complement 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(yz yz)
14Complementing a function algebraically
- You can use DeMorgans 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(yz 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(yz yz) f(x,y,z) ( x(yz
yz) ) complement both sides x (yz
yz) because (xy) x y x (yz)
(yz) because (x y) x y x (y
z)(y z) because (xy) x y, twice
15Algebraic manipulation
- We can now start doing some simplifications
xy xyz xy x(y y) xyz
Distributive xy xy 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
16Canonical 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.
17Minterms
- 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
xyz xyz xyz xyz xyz xyz xyz xyz
Minterm Is true when Shorthand xyz x0, y0,
z0 m0 xyz x0, y0, z1 m1 xyz x0, y1,
z0 m2 xyz x0, y1, z1 m3 xyz x1, y0,
z0 m4 xyz x1, y0, z1 m5 xyz x1, y1,
z0 m6 xyz x1, y1, z1 m7
18Sum 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).
f xyz xyz xyz xyz xyz m0
m1 m2 m3 m6 ?(0,1,2,3,6)
f xyz xyz xyz m4 m5 m7
?(4,5,7)
f contains all the minterms not in f
19Sum 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 xyz xyz xyz xyz xyz
xyz xyz xyz xyz ?(3,4,5,6,7) - or, convert the expression into truth-table and
then read the minterms from the table
20Maxterms
- 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 z x
y z x y z x y z x y z
Maxterm Is false when Shorthand x y z x0,
y0, z0 M0 x y z x0, y0, z1 M1 x y
z x0, y1, z0 M2 x y z x0, y1,
z1 M3 x y z x1, y0, z0 M4 x y
z x1, y0, z1 M5 x y z x1, y1,
z0 M6 x y z x1, y1, z1 M7
21Product 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).
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
22Product of maxterms practise
- F xy xz, how to express this in the product
of maxterms? - (xy x)(xy 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
23Minterms and maxterms are related
- Any minterm mi is the complement of the
corresponding maxterm Mi - For example, m4 M4 because (xyz) x y
z
Maxterm Shorthand x 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 Shorthand xyz m0 xyz m1 xyz m
2 xyz m3 xyz m4 xyz m5 xyz m6 xyz m
7
24Converting 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 dont 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 DeMorgans
law M4 M5 M7 By the previous page
?(4,5,7)
f ?(0,1,2,3,6) ?(4,5,7)
25Standard 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 xyz xyz
f(x,y,z) (x y)(x y z)(x y z)
26Strategy for operator (literal) reduction
27Other Logic Operations
- Weve 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.
NAND (NOT-AND)
NOR (NOT-OR)
XOR (eXclusive OR)
Operation
Expressions
(xy) x y
(x y) x y
x ? y xy xy
Truth table