Title: FUNCTION OPTIMIZATION
1FUNCTION OPTIMIZATION
- Switching Function Representations can be
Classified in Terms of Levels - Number of Levels, k, is Number of Unique Boolean
(binary) Operators
EXAMPLES
1-Level
2-Level
multi-level
2k-Level functions
- 22n Possible Switching Functions of n Variables
(actually much fewer types obtained by permuting
and/or complementing input variables) - 1-Level Forms
- Cannot Represent all Possible Functions
- 2-Level Forms
- Can Represent all Possible Functions
- With Additional Restrictions CANONICAL
- k-Level Forms (k?2)
- Many Different Ways to Represent a Given
Functions - If a multi-input Gate Represents a (binary or
greater) Boolean Operator - Expression can Represent a Netlist
- k Indicates depth of Netlist
EXAMPLES
2-Level
Multi-Level
a
1-Level
a
b
f
a
f
c
b
f
c
d
b
e
c
3k-Level function properties
- 1-Level Forms
- Due to Restriction of Representable Functions,
Not as Useful - 2-Level Forms
- Can be Canonical
- Longest PI to PO Path is Always 2 Related to
Delay - Minimization Usually Means
- Minimum Number of Terms
- Minimum Number of Literals in Expression
- k-Level Forms (k?2)
- Many More Possible Representations
- Can be Optimized for Area
- Delay is More Complicated
- False Path Problem
- Spatio-temporal Correlations
- Typically an Area versus Delay Tradeoff (e.g.,
Ripple versus CL Adder)
4Common Terms for 2-Level Minimization
- Literal A variable in complemented or
uncomplemented form - Product The disjunction (AND) of a set of
literals also represents a cube - Support Set Set of all variables that define
the domain of a switching function - Minterm A disjunction (AND) containing an
instance of each literal corresponding to a
variable in the support set that is in the
on-set, fon,of a function - Dont Care The absence of a supporting variable
in a product term - Implicant A product term that covers one or
more minterms in the on-set, fon, of a function - Prime Implicant An implicant in the on-set,
fon, of a function such that it is not a
subproduct of any other possible implicant in the
set. - Essential Prime Implicant A prime implicant
that covers at least one minterm NOT covered by
any other implicant in the on-set, fon.
5SOP Minimization Terms Example
- Each Element of fon is an Implicant
- Prime Implicants are
- abc is a Prime Implicant but NOT an Essential
Prime Implicant - bcd is an Implicant but NOT a Prime Implicant
- bd is an Essential Prime Implicant
- Product abc
- covers minterms m4abcd and m5abcd
- disjunction of literals a, b, c
- variable d is a Dont Care
- f Represented by fon has Support Set a, b, c,
d
6Karnaugh Map
- Simplification Using Karnaugh Map
- Use as few loops as possible
- Use as large loop as possible
- Prime Implicant Corresponds to as large loop as
Possible - Karnaugh Map Simplification is Finding fon such
that - fon contains as few prime implicants as possible
- fon must contain all essential prime implicants
- fon contains NO implicants that are NOT prime
7Tabulation Method - Notation
- Consider Support Set of f Sx1, x2, , xn
- xici denotes xi if ci 1 xi if ci
0 1 if ci - - If NO ci -, then we have a minterm
- Can be Represented by Decimal Equivalent of ci
- EXAMPLE (Sx1, x2, x3, x4)
- x11x02x03x14 m9, a minterm ? c1 c2 c3 c4
1001 9 x01x-2x-3x04 a 4-cube ? 0--0
8Cube Merging
- Basic Operation in Tabulation Method
- 2 Cubes that Differ in a SINGLE ci can be Merged
into a Single Cube - EXAMPLE
- ? 1-01? 0-01
- Merge ? and ? into ?
- ? --01
9Tabulation Method
- Input f on as a set of minterms
- Output f on as a set of
- All Essential Prime Implicants
- As Few Prime Implicants as Possible
- Finding as few Prime Implicants as Possible is an
NP-Hard Problem!!!!! - Reduces to the Set Covering Problem for Unate
Functions - Unate function a constant or is represented by
a SOP using either uncomplemented or complemented
literals for each variable - Reduces to the Minimum Cost Assignment Problem
for Binate Functions (ex. EXOR) - This is 2-Level (SOP) Optimization (Minimization)
10Tabulation Method
- STEP 1
- Convert Minterm List (specifying f on) to Prime
Implicant List - STEP 2
- Choose All Essential Prime Implicants
- If all minterms are covered HALTElse GO To
STEP 3 - STEP 3
- Formulate the Reduced Cover Table Omitting the
rows/cols of EPI - If Cover Table can be Reduced using Dominance
Properties, Go To Step 2 - Else Must Solve the Cyclic Cover Problem 1)
Use Exact Method (exponentially complex) 2) Use
Heuristic Method (possibly non-optimal result) - NOTE Quine-McCluskey Refers to Using a Branch
and Bound Heuristic - NOTE Petricks Method is Exact Technique
Generates all Solutions Allowing the Best to be
Used
11Tabulation Method STEP 1
- Partition Prime Implicants (or minterms)
According to Number of 1s - Check Adjacent Classes for Cube Merging Building
a New List - If Entry in New List Covers Entry in Current List
Disregard Current List Entry - If Current List New List HALTElse Current
List ? New List New List ? NULL Go To Step 1
12STEP 1 - EXAMPLE
- f on m0, m1, m2, m3, m5, m8, m10, m11, m13,
m15 ? (0, 1, 2, 3, 5, 8, 10, 11, 13, 15)
13STEP 1 - EXAMPLE
- f on m0, m1, m2, m3, m5, m8, m10, m11, m13,
m15 ? (0, 1, 2, 3, 5, 8, 10, 11, 13, 15)
14STEP 1 - EXAMPLE
- f on m0, m1, m2, m3, m5, m8, m10, m11, m13,
m15 ? (0, 1, 2, 3, 5, 8, 10, 11, 13, 15)
15STEP 1 - EXAMPLE
- f on m0, m1, m2, m3, m5, m8, m10, m11, m13,
m15 ? (0, 1, 2, 3, 5, 8, 10, 11, 13, 15)
f on A,B,C,D,E,F,G 00--, -01-, -0-0, 0-01,
-101, 1-11, 11-1
16STEP 2 Construct Cover Table
- PIs Along Vertical Axis (in order of of
literals) - Minterms Along Horizontal Axis
NOTE Table 4.2 in book is incomplete
17STEP 2 Finding the Minimum Cover
- Extract All Essential Prime Implicants, EPI
- EPIs are the PI for which a Single x Appears in a
Column
- C is an EPI so f onC, ...
- Row C and Columns 0, 2, 8, and 10 can be
Eliminated Giving Reduced Cover Table - Examine Reduced Table for New EPIs
18STEP 2 Reduced Table
Distinguished Column
Essential row
- The Row of an EPI is an Essential row
- The Column of the Single x in the Essential Row
is a Distinguished Column
19Row and Column Dominance
- If Row P has xs Everywhere Row Q Does Then Q
Dominates P if P has fewer xs - If Column i has xs Everywhere j Does Then j
Dominates i if i has fewer xs - If Row P is equal to Row Q and Row Q does not
cost more than Row P, eliminate Row P, or if Row
P is dominated by Row Q and Row Q Does not cost
more than Row P, eliminate Row P - If Column i is equal to Column j, eliminate
Column i or if Column i dominates Column j,
eliminate Column i -
20STEP 3 The Reduced Cover Table
- Initially, Columns 0, 2, 8 and 10 Removed
- No EPIs are Present
- No Row Dominance Exists
- No Column Dominance Exists
- This is Cyclic Cover Table
- Must Solve Exactly OR Use a Heuristic
21The Cyclic Cover Table
- For now, we Arbitrarily Choose a PI
- Later we will Study Exact and Heuristic Methods
- Arbitrarily Choose F so fonC, F, ... This
Choice May Lead to a Non-Optimal Result!!!! - Form Reduced Cover and Go To Step 2
22STEP 3 Dominance
- Initially, Reduced Table has Columns 11 and 15
Removed
- G is Dominated by E
- B is Dominated by A
- Form Reduced Cover Table and Go To Step 2
23STEP 2 The Reduced Cover
- Initially, Table has Rows G and B Removed
- Secondary EPIs A and E
- All Columns Covered
- Eliminate D
- fonC, F, A, E
24Result Check
cd
cd
0
0
0
1
1
1
1
0
ab
0
0
0
1
1
1
1
0
ab
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
Final Result f onA, C, E, F
Initial Minterm List fon m0, m1, m2, m3, m5,
m8, m10, m11, m13, m15 ? (0, 1, 2, 3, 5, 8,
10, 11, 13, 15)