ruei-rung lee , j.-h. roland jiang, and wei-lun hung a l c om lab

Post on 01-Feb-2016

45 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Ruei-Rung Lee , J.-H. Roland Jiang, and Wei-Lun Hung A L C om Lab Grad. Inst. of Electronics Engineering National Taiwan University. Outline. Introduction Prior Work and Preliminaries Main Algorithms Experimental Results Conclusions and Future work. Introduction. - PowerPoint PPT Presentation

TRANSCRIPT

Ruei-Rung Lee, J.-H. Roland Jiang, and Wei-Lun Hung

ALCom LabGrad. Inst. of Electronics EngineeringNational Taiwan University

112/04/22 DAC 1

m

OutlineIntroductionPrior Work and PreliminariesMain AlgorithmsExperimental ResultsConclusions and Future work

2

IntroductionBi-decomposition is a special kind of functional

decompositionFunctional decomposition

Break a large function into a network ofsmaller functions

Reduce circuit and communication complexityand thus simplify physical design

Bi-decomposition plays an important role in logic synthesis for restructuring Boolean networks

3

OutlineIntroductionPrior Work and PreliminariesMain AlgorithmsExperimental ResultsConclusions and Future Work

4

Closest Prior Work[Mishchenko et al., 01]

BDD-based approachTwo main limitations

Memory explosion problem Decomposability is checked under a fixed variable partition

5

Preliminaries: Bi-decomposition

6

ff

A

f B

h

XA XB XC

XBXC

Bi-decompose

XA

Preliminaries:Variable PartitionA set X = {XA|XB|XC} is a partition

meaning XA , XB , XC are pair-wise disjoint and XA∪ XB∪ XC = X

If XC = ψ, we have disjoint

bi-decomposition ; otherwise, non-disjoint

7

f

A

f B

h

XA XBXC

P

Preliminaries: Craig InterpolationGiven φA and φB are Boolean formulas, if φA ∧ φB

is unsatisfiable, then there exists anotherBoolean formula P with the following properties:φA → PP∧ φB is unsatisfiableP refers only to the common variables of φA and φB

8

φAφB

OutlineIntroductionPrior Work and PreliminariesMain AlgorithmsExperimental ResultsConclusions and Future Work

9

Bi-decomposition CasesWe consider OR, AND, XOR bi-decompositions

These three cases are enough to generate any other type of bi-decomposition

10

a b a+b ab a⊕b a(¬b)0 0 0 0 0 00 1 1 0 1 01 0 1 0 1 11 1 1 1 0 0

Disjoint OR Bi-decompositionDisjoint: the common

variable set Xc is empty.E.g.

f(a,b,c,d) = (¬a)b+cd

X = {a,b,c,d}={XA|XB}

XA= {a,b}, XB= {c,d}

f(X) = (¬a)b+cd

= fA(a,b)+fB(c,d)

XB\XA00 01 11 10

00 0 1 0 0

01 0 1 0 0

11 1 1 1 1

10 0 1 0 0

fA(XA) 0 1 0 0

fB(XB)0010

f

A

f B

OR

XA XB

11

Bi-decomposabilityUnder what condition can f(X)

be written as fA(XA)∨ fB(XB) ?The necessary and sufficient

condition: For every 1-entry,no 0-entries can appear simultaneously in the corresponding rowand column

f(1101) = 0 = fA(11) +fB(01)

f(0010) = 0 = fA(00) +fB(10)

f(1110) = 1 = fA(11) +fB(10)??

XB\XA00 01 11 10

00 0 1 0 0

01 0 1 0 0

11 1 1 1 1

10 0 1 0 0

12

fB(XB)0010

fA(XA) 0 1 0 0

XB\XA00 01 11 10

00 0 1 0 0

01 0 1 0 0

11 1 1 1 1

10 0 1 1 0

fA(XA) 0

fB(XB)

0

SAT-based Bi-decomposability ∃ fA, fB such that f(X) = fA(XA) ∨ fB(XB)

⇔ For every 1-entry, no 0-entries can appear simultaneously in the corresponding row and column ⇔ f(XA,XB) ¬∧ f(XA’,XB) ¬∧ f(XA,XB’) is unsatisfiable

XB\XA00 01 11 10

00 0 1 0 0

01 0 1 0 0

11 1 1 1 1

10 0 1 1 0

fA(XA) ? ? ? ?

fB(XB)????

XA

XB

XA’

XB’

13

Non-disjoint Bi-decomposition ∃ fA, fB such that f(X) = fA(XA,XC) ∨ fB(XB,XC)

⇔ Under every valuation of XC, for every 1-entry, no 0-entries can appear simultaneously in the corresponding row and column ⇔ f(XA,XB,XC) ¬∧ f(XA’ ,XB,XC) ¬∧ f(XA,XB’ ,XC)is unsatisfiable

XC=00 XAXB XC=01 XA

XB XC=10 XAXB XC=11 XA

XB

14

OR Bi-decomposition ∃ fA, fB such that f(X) = fA(XA,XC) ∨ fB(XB,XC)

⇔ f(XA,XB,XC) ¬∧ f(XA’ ,XB,XC) ¬∧ f(XA,XB’ ,XC)

is unsatisfiable Two problems remain to be solved

How to derive fA and fB? How to partition X into XA, XB, XC?

15

How to derive fA?

f(XA,XB,XC) ¬∧ f(XA’ ,XB,XC) ¬∧ f(XA,XB’ ,XC) is UNSAT

16

f ff

XA XB

XA’ XB’

XC

1 00Onset of fA

Offset of fA

φA φB

•φA ∧ φB is UNSAT1.φA → P2.P∧ φB is UNSAT3.P refers only to the common variables of φA,φB

φA φB

How to derive fB?Let ¬fA be the care condition of fB

f(XA,XB,XC) ¬∧ fA(XA,XC) ¬∧ f(XA’ ,XB,XC) is UNSAT

17

fA ff

XA XB XA’ XC

1 00Onset of fB

Offset of fB

φAφB

How to partition X into XA,XB,XC?

φA =

φB =

18

f ff

XA XB

XA’ XB’

XC

1 00

f’ f”fX”

1 00

X X’

(αxi,βxi

) =(0,1) (αxi,βxi

) =(1,0) (αxi,βxi

) =(0,0)

(αxi,

βxi)

xi belongs to

(0,0) XC

(0,1) XB

(1,0) XA

(1,1) either XA or XB

How to partition X into XA,XB,XC?

We make unit assumption of MiniSat on the control variablesAssume all the control variables are 0SAT solver will return a conflict clause consisting of only the

control variablesThe conflict clause corresponds to a variable partition

E.g.

Conflict clause (αx1+βx1

+αx2+βx3

) indicates the unit assumption αx1

=0,βx1=0,αx2

=0,andβx3=0 causes

unsatisfiability. So x1∈XC, x2∈XB, and x3∈XA

19

Avoid Trivial Variable Partition Bi-decomposition trivially holds if XC, XA∪ XC, or

XB∪ XC equals X SAT solver may return a conflict clause that consists of

all the control variables ⇒ XC = X

To avoid these trivial partitions, as unit assumption we specify two distinct variables xa and xb to be in XA and XB, respectively, and all other variables in XC To check if a function is bi-decomposable, we have to

try at most C(n,2) iterations

20

AND Bi-decomposition∃ fA, fB such that f=fA ∧ fB ⇔ ∃ fA, fB such that ¬f=¬fA ∨

¬fB

E.g.

f (a,b,c,d) = (a+¬b+c)(b+¬c+d)

¬f (a,b,c,d) = (¬a)b(¬c) ∨ (¬b)c(¬d)

= ¬fA(a,b,c) ∨ ¬fB (b,c,d)

fA (a,b,c)= (a+¬b+c), fB (b,c,d) = (b+¬c+d)

f (a,b,c,d) = fA(a,b,c) ∧ fB (b,c,d)

21

XOR Bi-decomposition(1)=(5)⊕ (7), (2)=(5)⊕ (8),(3)=(6)⊕ (7), (4)=(6)⊕ (8)

⇒ (1)⊕ (4)=(2)⊕ (3)⇒ (1)⊕ (2)=(3)⊕ (4)⇒ [(1)≡(2)]∧ [(3)≠(4)] UNSAT

22

XA’ XA

XB\XA 00 01 11 10

00

XB’ 01 (1) (3)

11

XB 10 (2) (4)

fA f B

XOR

XA XBXC

fB(XB

)

(7)

(8)fA(XA) (5) (6)

XOR Bi-decomposability [(1)≡(2)]∧ [(3)≠(4)] UNSAT ∃ fA, fB such that f(X) = fA(XA,XC)⊕ fB(XB,XC) ⇔

(f(XA,XB,XC)≡f(XA,XB’,XC))∧ (f(XA’,XB,XC)≠f(XA’,XB’,XC) ) UNSAT

For every pair of columns (rows), their patterns are either complementary or identical to each other

23

XA,X

c

XA’,Xc

XB\XA 00 01 11 10

00

XB,Xc 01 (1) (3)

11

XB’,Xc 10 (2) (4)

≡ ≠

XB\XA 00

00 1

01 0

11 0

10 1

11

1

0

0

1

01

0

1

1

0

10

1

0

0

1

How to derive fA and fB?fA = f(XA,0,XC)fB = f(0,XB,XC) f(0,0,⊕ XC)

24

Xc

XB\XA00 01 11 10 fB(XB,Xc)

00 1 0 1 1 1

01 0 1 0 0 0

11 0 1 0 0 0

10 1 0 1 1 1

fA(XA,Xc) 1 0 1 1

Xc

XB\XA00 01 11 10 fB(XB,Xc)

00 1 0 1 1 0

01 0 1 0 0 111 0 1 0 0 110 1 0 1 1 0

fA(XA,Xc) 1 0 1 1

How to partition X into XA,XB,XC?

Similar to that in OR bi-decomposition (f(X)≡f(X’))∧ (f(X”)≠f(X”’))∧

(((xi≡xi”)∧ (xi’≡xi”’))∨ αxi)

∧ (((xi≡xi’)∧ (xi”≡xi”’))∨ βxi)

25

(αxi, βxi

) Xi belongs to

(0,0) XC

(0,1) XB

(1,0) XA

(1,1) either XA or XB

Outline Introduction Prior Work and Preliminaries Main Algorithms Experimental Results Conclusions and Future Work

26

Experimental Results

OR2-decomposition XOR-decomposition

circuit #in #max #out #dev #slv Time(sec)

Mem(Mb)

#dev #slv Time(sec)

Mem(Mb)

i2 201 201 1 1 1 1.07 18.6 1 34 2.16 18.59

s6669c 322 49 294 101 24423 198.14 29.13 176 3120 279.03 22.87

Dalu 75 75 16 1 26848 352.87 24.14 16 210 26.59 19.68

C880 60 45 26 16 222 8.36 20.72 11 4192 83.08 18.72

27

Experimental Results

28

Variable partition

OR2-decomposition XOR-decomposition

Outline Introduction Prior Work and Preliminaries Main Algorithms Experimental Results Conclusions and Future Work

29

Conclusions and Future WorkConclusions

We formulated OR, AND, XOR bi-decomposition in terms of SAT solving

We automated the process of variable partitioningExperimental results showed we can bi-decompose

large Boolean functionsFuture Work

We will study how to effectively enumerate better variable partition

30

Thank You

31

top related