1 / 26

CS137: Electronic Design Automation

CS137: Electronic Design Automation. Day 15: November 4, 2005 SAT for Partitioning. Today. SAT Partitioning Devadas Wrighton. Partitioning Problem. Given: netlist of interconnect cells Graph G=(V,E) Partition into two equal halves (A,B) V=A B AB = {} |A|=|V|/2

walden
Download Presentation

CS137: Electronic Design Automation

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. CS137:Electronic Design Automation Day 15: November 4, 2005 SAT for Partitioning

  2. Today • SAT Partitioning • Devadas • Wrighton

  3. Partitioning Problem • Given: netlist of interconnect cells • Graph G=(V,E) • Partition into two equal halves (A,B) • V=AB • AB = {} • |A|=|V|/2 • minimize the number of nets shared by halves • |e=(s,t)E and sA and tB or sB and tA |<C

  4. Constraining Partitions • Balance: • |V|  2P • P-long bit vector for each vV • Goal assign each v a unique bitvector • v0 v1 … v(p-1) • partition on v(p-1) [Devadas DAC1989]

  5. Balance • Balance Constraints: • Forall pairs vi,vj • vivj • 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

  6. Cost • Decision problem • Can ask for a partition that satisfies a constraint • Optimization: search for min C will satisfy

  7. Partitioning Results • Devadas 1989

  8. Wrighton SAT Partitioning

  9. Constraint sets • Cardinality • Results • Variations • Replication • Soed

  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

  11. All Nodes Represented (A0A1A2) (B0B1B2) (C0C1C2)…

  12. Exclusivity • If do not want replication • Assert that node is in only one partition • E.g. /(A0&A1)+/(A1&A2)+(/A0&A2)

  13. Balance • Sum of nodes in each part less than target

  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

  15. Bound on Edges Cut

  16. Counting • Can use boolean logic to create binary counters • Problem: don’t enable implications on partial assignments

  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

  18. Totalizers

  19. Size of Totalizers • N+N  2N totalizer • Ci=Ai+(Ai-1&B1)+…+(A1&Bi-1)+Bi • i clauses Totalizer Tree: 2N2 + 2(N2/2)+4(N2/8)+…  4N2

  20. Replication • Two partitions of size 60%

  21. 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

  22. Sum of External Degrees 20% total extra space

  23. Maximum Subdomain Degree 20% total extra space

  24. Admin • Assignment 3B due today

  25. Big Ideas • Tools: SAT Reduction • Bounding  Enable pruning

More Related