250 likes | 461 Views
FUNCTION 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. a. c. b. b. k -Level functions.
E N D
FUNCTION 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
a c b b k-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 (k2) • 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 f b c d b e c
k-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 (k2) • 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)
Common 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 • Don’t 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.
SOP Minimization – Terms Example • Each Element offonis an Implicant • Prime Implicants are: Consider: • abc is a Prime Implicant but NOT anEssential Prime Implicant • bcd is an Implicant but NOT aPrime Implicant • bd is an Essential Prime Implicant • Product abc: • covers minterms: m4=abcd and m5=abcd • disjunction of literals a, b, c • variable d is a Don’t Care • f Represented by fon has Support Set: {a, b, c, d}
Karnaugh 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
Tabulation Method - Notation • Consider Support Set of f: S={x1, 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 (S={x1, x2, x3, x4}) x11x02x03x14 = m9, a minterm c1c2c3c4 = 1001 = 9x01x-2x-3x04 = a 4-cube 0--0
Cube 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
Tabulation 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)
Tabulation 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: “Petrick’s Method” is Exact Technique – Generates all Solutions Allowing the Best to be Used
Tabulation Method – STEP 1 • Partition Prime Implicants (or minterms) According to Number of 1’s • 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
STEP 1 - EXAMPLE f on = {m0, m1, m2, m3, m5, m8, m10, m11, m13, m15} = (0, 1, 2, 3, 5, 8, 10, 11, 13, 15)
STEP 1 - EXAMPLE f on = {m0, m1, m2, m3, m5, m8, m10, m11, m13, m15} = (0, 1, 2, 3, 5, 8, 10, 11, 13, 15)
STEP 1 - EXAMPLE f on = {m0, m1, m2, m3, m5, m8, m10, m11, m13, m15} = (0, 1, 2, 3, 5, 8, 10, 11, 13, 15)
STEP 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}
STEP 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
STEP 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 on={C, ...} • Row C and Columns 0, 2, 8, and 10 can be Eliminated Giving Reduced Cover Table • Examine Reduced Table for New EPIs
STEP 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
Row and Column Dominance • If Row P has x’s Everywhere Row Q Does Then Q Dominates P if P has fewer x’s • If Column i has x’s Everywhere j Does Then j Dominates iif ihas fewer x’s • 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 ior if Column i dominates Column j, eliminate Column i
STEP 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
The Cyclic Cover Table • For now, we Arbitrarily Choose a PI • Later we will Study Exact and Heuristic Methods • Arbitrarily Choose F so: fon={C, F, ...}This Choice May Lead to a Non-Optimal Result!!!! • Form Reduced Cover and Go To Step 2
STEP 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
STEP 2 – The Reduced Cover • Initially, Table has Rows GandB Removed • Secondary EPIs – A and E • All Columns Covered • Eliminate D • fon={C, F, A, E}
Result Check cd cd ab 0 0 0 1 1 1 1 0 ab 0 0 0 1 1 1 1 0 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 1 0 1 1 0 1 1 Final Result f on={A, 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)