State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect15: Heuristic Two Level Logic Minimization Dr. Yaser Khalifa Electrical and Computer Engineering Department State University of New York at New Paltz
Unate Function Definition : If, in the minimum sum-of-product form of a switching function, each variable appears either in its true form or its complemented form, but not both, then the function is called a unate function. Ex) f 1 (x 1 x 2 x 3 )= x 1 + x 2 x 3 ’ : unate f 1 (x 1 x 2 x 3 )= x 1 + x 1 ’ x 2 x 3 ’ : ≠ unate due to x 1 & x 1 ’ Th A switching function is unate if and only if it can be expressed as a sum of essential prime cubes, all intersecting at a common subcube.
Heuristic Logic Minimization Heuristic Logic Minimization (cube-based) ② Unate recursive paradigm : ESPRESSO (or in English; Divide-and-Conquer!) i.e. Decomposition Make use of Shannon’s expansion to recursively operate on subsets of logic cover until cover has unate property. Why looking for the unate property recursively? Every prime of a unate function is essential. Minimum form is given as the union of all EPIs. Note that min form = EPIs + minimum PIs in general. If F is a unate function, min form = EPIs : this is good to find min. form. In ESPRESSO, used for complementation and tautology checking.
(b) Shannon Expansion where Complementation
How to determine if a function is unate : The definition on prev. page requires the min. form of the function. But we are looking for it. Thus, we need another method. A function is unate if it is unate in all its variables. A function is unate in x j if it is monotone in x j. Thus, a function is unate if it is monotone in all its variables Monotone in x j ? x j change causes all changing outputs to change in the same direction. If x j of 0 1 causes all changing outputs to change from 0 1 : monotone increasing in x j from 1 0 : monotone decreasing in x j
ABCDF=C’D +ABD F1=C’D +ABD+A’B’C’ Both OK for D: 0 1
ABDCF=C’D +ABD F1=C’D +ABD+A’B’C’ Both OK for C: 0 1
ABCDF=C’D +ABD F1=C’D +ABD+A’B’C’ F1 NOT OK for A: 0 1
Heuristic Minization Operators Expand –Make implicants prime –Remove covered implicants Reduce –Reduce size of each implicant while preserving cover Reshape –Modify implicant pairs: enlarge one implicant enabling the reduction of another Irredendant –Make cover irredundant
Example On-set: Prime implicants: | 0**0 1 | *0*0 1 | 01** 1 | 10** 1 | 1*01 1 | *101 1
Example Expand 0000 to = 0**0 –Drop 0100, from the cover Expand 1000 to = *0*0 –Drop 1010 from the cover Expand 0101 to = 01** –Drop 0111 from the cover Expand 1001 to = 10** –Drop 1011 from the cover Expand 1101 to = 1*01 Cover is { }
Example reduction Reduce 0**0 to nothing. Reduce = *0*0 to = 00*0 Reduce = 1*01 to = 1101 Cover is { }
Example reshape Reshape { to { Where = 10*1 Cover is { }
Example second expansion Expand = 10*1 = 10** Expand = 1101 to = *101 Cover is { }
Summary of Example Expansion: –Cover: { } –Prime, redundant, minimal w.r.t single cube containment Reduction: – eliminated –B = *0*0 reduced to b = 00*0 –E = 1*01 reduced to e = 1101 –Cover: { } Reshape: –{ } reshaped to { } where d = 10*1 Second expansion –Cover: { } –Prime, irredundant (= minimal)