two level and multi level minimization. espresso algorithm 1.expands implicants to their maximum...

38
Two Level and Multi level Minimization

Upload: rafe-king

Post on 04-Jan-2016

224 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Two Level and Multi level Minimization

Page 2: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Espresso Algorithm1. Expands implicants to their maximum size

Implicants covered by an expanded implicant are removed from further considerationQuality of result depends on order of implicant expansionHeuristic methods used to determine orderStep is called EXPAND

Irredundant cover (i.e., no proper subset is also a cover) is extracted from the expanded primesJust like the Quine-McCluskey Prime Implicant ChartStep is called IRREDUNDANT COVER

Solution usually pretty good, but sometimes can be improvedMight exist another cover with fewer terms or fewer literalsShrink prime implicants to smallest size that still covers ON-setStep is called REDUCE

Repeat sequence REDUCE/EXPAND/IRREDUNDANT COVER to find alternative prime implicantsKeep doing this as long as new covers improve on last solution

A number of optimizations are tried, e.g., identify and remove essential primes early in the process

2.

3.

4.

5.

Page 3: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Details of ESPRESSO AlgorithmProcedure ESPRESSO ( F, D, R) /* F is ON set, D is don’t care, R OFF *

R = COMPLEMENT(F+D); /* Compute complement */F = EXPAND(F, R) ; /* Initial expansion */F = IRREDUNDANT(F,D); /* Initial irredundant cover */F = ESSENTIAL(F,D) /* Detecting essential primes */F = F - E; /* Remove essential primes from F */D = D + E; /* Add essential primes to D */WHILE Cost(F) keeps decreasing DO

F = REDUCE(F,D); /* Perform reduction, heuristic which cubes */F = EXPAND(F,R); /* Perform expansion, heuristic which cubes */F = IRREDUNDANT(F,D); /* Perform irredundant cover */

ENDWHILE;F = F + E;RETURN F;

END Procedure;

Page 4: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Need for Iterations in ESPRESSOEspresso: Why Iterate on Reduce, Irredundant Cover, Expand?

Initial Set of Primes found bySteps1 and 2 of the Espresso

Method

4 primes, irredundant cover,but not a minimal cover!

Result of REDUCE:Shrink primes while still

covering the ON-set

Choice of order in which to perform shrink is important

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

1 1 0 0

1 1 1 1

0 0 1 1

1 1 1 1

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

1 1 0 0

1 1 1 1

0 0 1 1

1 1 1 1

Page 5: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

ESPRESSO Example

Espresso Iteration (Continued)

Second EXPAND generates adifferent set of prime implicants

IRREDUNDANT COVER found byfinal step of espresso

Only three prime implicants!

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

1 1 0 0

1 1 1 1

0 0 1 1

1 1 1 1

AB

CD 00 01 11 10

00

01

11

10

D

B

C

A

1 1 0 0

1 1 1 1

0 0 1 1

1 1 1 1

Page 6: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Example of ESPRESSO Input/Output

.i 4

.o 1

.ilb a b c d

.ob f

.p 100100 10101 10110 11000 11001 11010 11101 10000 -0111 -1111 -.e

-- # inputs-- # outputs-- input names-- output name-- number of product terms-- A'BC'D'-- A'BC'D-- A'BCD'-- AB'C'D'-- AB'C'D-- AB'CD'-- ABC'D-- A'B'C'D' don't care-- A'BCD don't care-- ABCD don't care-- end of list

ƒ(A,B,C,D) = m(4,5,6,8,9,10,13) + d(0,7,15)�Espresso Input Espresso Output

.i 4

.o 1

.ilb a b c d

.ob f

.p 31-01 110-0 101-- 1.e

ƒ = A C' D + A B' D' + A' B

Page 7: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Espresso :: conclusion

• The algorithm successively generates new covers until no further improvement is possible.

• Produces near-optimal solutions.

• Used for PLA minimization, or as a sub-function in multilevel logic minimization.

• Can process very large circuits.– 10,000 literals, 100 inputs, 100 outputs– Less than 15 minutes on a high-speed

workstation

Page 8: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Multilevel Logic Minimization

• In many applications, 2-level logic is unsuitable as compared to random (multilevel) logic.– Gates with high fanin are slow, and take more

area.– It makes sense to transform a 2-level logic

realization to multi-level logic.

Page 9: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

• A classical example :: XOR function– For an 8-input XOR function,

• For 2-level NAND-NAND realization

8C1 + 8C3 + 8C5 + 8C7 = 128 NAND8 gates

1 NAND128 gate

• For 3-level XOR realization

7 XOR2 gates

28 NAND2 gates

Number of levels = 9

Page 10: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

• Multilevel logic optimization:1. Local

» Rule-based transformation

2. Global» Weak division

Page 11: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Local Optimization Technique

• Used in IBM Logic Synthesis System.

• Perform rule-based local transformations.– Objective reduce area, delay, power.– Developing a good set of rules is a challenge.– Should be comprehensive enough so as to

completely explore the design space.

• Basic idea:– Apply a transformation which reduces cost.– Iterate and continue the transformations as

long as solution keeps improving.

Page 12: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

• AND/OR transformations– Reduce the size of the circuit, critical path.– Typical transformations:

a . 1 = a

a + 1 = 1

a + a’ = 1

a . a’ = 0

(a’)’ = a

a + a’ . b = a + b

xor (xor(a1,a2,…,an), b) = xor (a1,a2,…,an,b)

• Transform the AND/OR form to NAND form (or NOR form).

Page 13: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

• NAND (NOR) transformations– Some synthesis systems assume that all

gates are of the same type (NAND or NOR).– Does not require technology mapping.– Rules framed that transform a NAND (NOR)

network to another.– Examples:

NAND (NOT (NAND (a,b)), c) = NAND (a,b,c)

NAND (NAND(a,b,c), NAND(a,b,c’)) =

NAND(a,b)

Page 14: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

How complex is the algorithm?

• n number of circuit nodes

m number of rules– Ordering of rule (by cost reduction) takes

O(mn log mn) time.– The process has to be repeated many times.

• To speed up, we can use lazy evaluation.– We only check those circuit nodes which

were modified in the previous iteration.– O(m log m) for every rule application.

Page 15: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Global Optimization Technique

• Used in GE Socrates.– Looks at all the equations at one time.

• Perform weak division.– Divide out common sub-expressions.– Literal count gets reduced.

• The following iterative steps are carried out:– Generate the candidate sub-expressions.– Select a sub-expression to divide.– Divide functions by selected sub-expression.

Page 16: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Example

• Original equations:f1 = a.b.c + b.c.d + b.e.g f2 = b.c.f.h + d.g + a.b.g

No. of literals = 18

– We find literals saved for sub-expressions:

b.c 4 a.b 2

a + d 2 b.g 2

Select the sub-expression bc.• Modified equations (after iteration 1):

f1 = (a + d).u + b.e.g

f2 = u.f.h + d.g + a.b.g

u = b.c No. of literals = 14

Page 17: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

f1 = (a + d).u + b.e.g

f2 = u.f.h + d.g + a.b.gu = b.c

– Literals saved for the sub-expressions:b.g 2

• Modified equations (after iteration 2):f1 = (a + d).u + e.v

f2 = u.f.h + d.g + a.vu = b.cv = b.g No. of literals = 12

• No common sub-expressions STOP

Page 18: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

About the algorithm

• Basically a greedy algorithm– Can get stuck in local minima.

– Generation of all candidate expressions is expensive.• Some heuristic used.

Page 19: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Multilevel Logic Interactive Synthesis System (MIS)

• A very popular & widely used algorithm.– Uses factoring of equations.– Similar to weak division used in Socrates.– The target technology is CMOS gate.

• Complex gates realizing any complex functions.

• Example:

f’ = (a + b + c)

g’ = (a + b) . (d + e + f) . h

Page 20: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Basic Concept

• For global optimization,– Use algebraic factorization to identify

common sub-expressions.– Avoid exponential search.

• For local optimization,– Identify 2-level sub-circuits.– Minimize them using Espresso, or some

similar approach.

Page 21: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Global Optimization Approach

• Given a netlist of gates– Scan the network– Apply simple heuristics to “clean up” the

netlist.• Constant propagation• Double inverter elimination• Espresso minimization of each equation.

– Then proceed for global optimization with a view to minimize area.

Page 22: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

– Basically an iterative approach.• Enumerate all common factors and identify

the “best” candidate.• Equations themselves may be common

factors.• Invert an equation if it helps.

– Factors may show up in the inverted form.

• Number of literals used to estimate area.

Page 23: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Local Optimization Approach

• Next step is to look at the problem locally.– Each equation treated as a complex gate.

• Optimize two or more gates that share one or more literals.

• Break a large gate into smaller gates.– For each equation, the don’t care input set is

obtained from the neighborhood gates.• Minimized using Espresso.

• Also an iterative step.

Page 24: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Some Illustrative Examples

• Factoring can reduce area.– An equation in simple sum-of-products form

can have many literals.• Many transistors for CMOS realization.

– Factoring the equation reduces the number of literals.• Reduces number of transistors in CMOS

realization.

Page 25: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Introduction

• Representation of Boolean functions– Canonical

• Truth table• Karnaugh map• Set of minterms

– Non-Canonical• Sum of products• Product of sums• Factored form• Binary Decision Diagram

Page 26: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Binary Decision Diagram (BDD)

• Proposed by Akers in 1978.– Several variations suggested subsequently.

• Ordered BDD (OBDD)• Reduced Ordered BDD (ROBDD)

– A set of reduction rules and operators defined for BDDs.

• Construction of a BDD is based on the Shannon expansion of a function.

Page 27: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Shannon Expansion

• Given a boolean function f(x1,x2,…,xi,…,xn)

• Positive cofactor

fi1 = f(x1,x2,…,1,…,xn)

• Negative cofactor

fi0 = f(x1,x2,…,0,…,xn)

• Shannon’s expansion theorem states that

f = xi’ fi0 + xi fi

1

f = (xi + fi0 )(xi’ + fi

1 )

Page 28: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

How to construct BDD?

f = ac + bc + a’b’c’

= a’ (b’c’ + bc) + a (c + bc)

= a’ (b’c’ + bc) + a (c)

b’c’ + bc c

a

fThis is the first step. The process is continued for all input variables.

Page 29: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Reduction Rules

x

y y

Page 30: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

x

y z

x

y z

x

y z

x

y z

x

y z

x

y z

Page 31: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Some Benefits of BDD

• Check for tautology is trivial.– BDD is a constant 1.

• Complementation.– Given a BDD for a function f, the BDD for f’

can be obtained by interchanging the terminal nodes.

• Equivalence check.– Two functions f and g are equivalent if their

BDDs (under the same variable ordering) are the same.

Page 32: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

An Important Point

• The size of a BDD can vary drastically if the order in which the variables are expanded is changed.

• The number of nodes in the BDD can be exponential in the number of variables in the worst case, even after reduction.

Page 33: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

Use of BDD in Synthesis

• BDD is canonical for a given variable ordering.• It implicitly uses factored representation:

x

y yhh

x’h + xh = h

x

y z

x

y z

x

y z

h h h

a b a b

ah + bh = (a+b)h

Page 34: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

• Variable reordering can reduce the size of BDD.– Implicit logic minimization.

• Some redundancy rumored during the construction of BDD itself.

Page 35: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

MUX realization of functions

x

f

f g

0 1

f g

f

x

Page 36: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

MUX-based Functional Decomposition

f g

h 0 1

f gh

f f

An example ===>

Page 37: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

1

0 1

b

a

0

f

dc

f

1

d

b

a

c

0

Page 38: Two Level and Multi level Minimization. Espresso Algorithm 1.Expands implicants to their maximum size Implicants covered by an expanded implicant are

To Summarize

• BDDs have been used traditionally to represent and manipulate boolean functions.– Used in synthesis systems.– Used in formal verification tools.– Efficient packages to manipulate BDDs are

available.