CALTECH CS137 Fall2005 -- DeHon 1
CS137:Electronic Design Automation
Day 15: November 4, 2005
SAT for Partitioning
CALTECH CS137 Fall2005 -- DeHon 2
Today
• SAT Partitioning– Devadas– Wrighton
CALTECH CS137 Fall2005 -- DeHon 3
Partitioning Problem
• Given: netlist of interconnect cells– Graph G=(V,E)
• Partition into two equal halves (A,B) V=AB AB = {} |A|=|V|/2
• minimize the number of nets shared by halves |e=(s,t)E and sA and tB or sB and tA |<C
CALTECH CS137 Fall2005 -- DeHon 4
Constraining Partitions
• Balance:– |V| 2P
– P-long bit vector for each vV– Goal assign each v a unique bitvector
• v0 v1 … v(p-1)
– partition on v(p-1)
[Devadas DAC1989]
CALTECH CS137 Fall2005 -- DeHon 5
Balance
• Balance Constraints:– Forall pairs vi,vj
• vivj• vi0^vj0+vi1^vj1+…vi(p-1)^vj(p-1)=1
– |V|<2P
• Assign 2P-|V| codes such that vi(p-1) will form partition
– E.g. if |V|=6» Assign 000 and 100 » vi0^0+vi1^0+vi2^0=1
– |V|(2P-|V|) clauses
CALTECH CS137 Fall2005 -- DeHon 6
Cost
• Decision problem– Can ask for a partition that satisfies a
constraint
• Optimization: search for min C will satisfy
Eepp tstsewC
)1()1()),((
CALTECH CS137 Fall2005 -- DeHon 7
Partitioning Results
• Devadas 1989
CALTECH CS137 Fall2005 -- DeHon 8
Wrighton SAT Partitioning
CALTECH CS137 Fall2005 -- DeHon 9
• Constraint sets
• Cardinality
• Results
• Variations– Replication– Soed
CALTECH CS137 Fall2005 -- DeHon 10
Formulation
• Acceptable Partition:– All Nodes Represented– Partitions Balanced– Cut Edges < Bound
• For each variable, for each partition– Vi True if V appears in partition i
CALTECH CS137 Fall2005 -- DeHon 11
All Nodes Represented
ikiNodesV V 0
(A0A1A2) (B0B1B2) (C0C1C2)…
CALTECH CS137 Fall2005 -- DeHon 12
Exclusivity
• If do not want replication– Assert that node is in only one partition
– E.g. /(A0&A1)+/(A1&A2)+(/A0&A2)
jijikjiNodesV VV ;,0
CALTECH CS137 Fall2005 -- DeHon 13
Balance
• Sum of nodes in each part less than target
MaxSizeVNodesV
iki0
CALTECH CS137 Fall2005 -- DeHon 14
Cut Edges
• Edge cut if source or any sinks in different partitions– Pick source as point of reference– Cut if any sink not in partition with source
iidsteski ssrceeCut .)( .0
CALTECH CS137 Fall2005 -- DeHon 15
Bound on Edges Cut
Edgese
MaxEdgeseCut )(
CALTECH CS137 Fall2005 -- DeHon 16
Counting• Can use boolean logic to create binary
counters– Problem: don’t enable implications on
partial assignments
CALTECH CS137 Fall2005 -- DeHon 17
Alternate Counting
• Unencoded counter representation– …b3b2b1b0
– Position i says: there are at least i things– Count: 00000 00001 00011 00111 …
• Add:– XXX11 + XXXX1 = XX111
CALTECH CS137 Fall2005 -- DeHon 18
Totalizers
CALTECH CS137 Fall2005 -- DeHon 19
Size of Totalizers
• N+N 2N totalizer
• Ci=Ai+(Ai-1&B1)+…+(A1&Bi-1)+Bi
– i clauses
Ni
Ni21
22
Totalizer Tree: 2N2 + 2(N2/2)+4(N2/8)+… 4N2
CALTECH CS137 Fall2005 -- DeHon 20
CALTECH CS137 Fall2005 -- DeHon 21
Replication
• Two partitions of size 60%
CALTECH CS137 Fall2005 -- DeHon 22
Other Targets
• Relatively easy to change constraints– Sum of external degrees
• Sum of IO from all partitions
– Maximum subdomain degree• IO from largest partition
• Just need to add appropriate counters and constraints
CALTECH CS137 Fall2005 -- DeHon 23
Sum of External Degrees
20% total extra space
CALTECH CS137 Fall2005 -- DeHon 24
Maximum Subdomain Degree
20% total extra space
CALTECH CS137 Fall2005 -- DeHon 25
Admin
• Assignment 3B due today
CALTECH CS137 Fall2005 -- DeHon 26
Big Ideas
• Tools: SAT Reduction
• Bounding Enable pruning