1 / 10

Heuristic Minimization of Two-Level Logic

Heuristic Minimization of Two-Level Logic. Espresso near optimal solution fast. Two Principles for the Espresso. 1. Decomposition recursive divide and conquer by cofactor operation the shannon expansion 2. Unate function tautology checking covering essential prime. Example. Ex:

steffie
Download Presentation

Heuristic Minimization of Two-Level Logic

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Heuristic Minimization of Two-Level Logic • Espresso • near optimal solution • fast

  2. Two Principles for the Espresso 1. Decomposition • recursive divide and conquer by cofactor operation • the shannon expansion 2. Unate function • tautology checking • covering • essential prime

  3. Example Ex: G = x1x2x3’ + x1’x2x4’ + x1x2x3x4 x1 x2 x3 x4 1 1 0 2 G = 0 1 2 0 1 1 1 1 1 1 0 2 Gx4’ = 0 1 2 2 1 1 0 2 Gx4 = 1 1 1 2 1 1 0 0 x4 ’Gx4’+x4Gx4 = 0 1 2 0 1 1 0 1 1 1 1 1

  4. Divide & Conquer by Cofactor Op.

  5. The Paradigm 1. Apply the operation to cofactor 2. Merge the result operate(f,g) = merge( xi operate(fxi,gxi), xi’operate(fxi’,gxi’) ) The choice of the splitting variable? => Select splitting variable such that the cofactors made are as close as possible to a unate function.

  6. Unate Function • A logic function is monotone increasing (decreasing) in a variable xj if changing xj from 0 to 1 causes all the outputs that change, to increase from 0 to 1(from 1 to 0). Ex: f = x1x2’ + x2’x3 x1 x2 x3 f 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 x1: positive unate 1 0 0 1 x2: negative unate 1 0 1 1 x3: positive unate 1 1 0 0 1 1 1 0 • A function is unate if it is unate in all its variables.

  7. Unate Cover • A cover C is said to be monotone increasing (decreasing) in the variable xj if all the cubes in C have either 1( 0 ) or 2 in variable xj. • Proposition : A cover is unate if it is monotone in all its variables. • 1 0 1 2 0 1 => unate cover => unate function 2 2 1 1 0 2 ? • not unate cover => not unate function 1 1 0 1 2 0 F = 2 0 2 => 2 0 2 1 0 0 • Proposition: A logic function f is monotone increasing (decreasing) in xj if and only if no prime implicant of f has a 0(1) in the jth position.

  8. Property of Unate Function • Proposition: A unate cover is a tautology if and only if it contains a row of 2’s. pf: (<=) trivial (=>)Assume the cover represent a monotone increasing function, the function contains 1’s and 2’s. The minterm (0,0,....0) must be covered. Unless the cover contains (2,2,....2) , the minterm (0,0,...0) will not be covered.

  9. Property of Unate Funcation • Proposition: If a logic function f is monotone increasing in xj, then the complement of f (f ’) is monotone decreasing in xj. • Proposition: The complement of a unate function is unate. • Proposition: The cofactor of a unate function f is unate.

  10. Choice of Splitting Variable • The choice of splitting variable when performing decomposition is guided by => making Cx and Cx’ unate, given cover C • Select a binate variable to split • Select the “most” binate variable to split to keep Cx and Cx’ size small Ex: x1 x2 x3 x4 2 1 2 0 C= 2 2 1 0 1 2 1 1 0 2 2 2 x4 is selected as splitting variable 1 2 1 2 Cx4= 0 2 2 2 2 1 2 2 Cx4’ = 2 2 1 2 0 2 2 2

More Related