08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
20121224 meeting standard cell routing via boolean satisfiability_mori ver
1. Standard Cell Routing via
Boolean Satisfiability
Nikolai Ryzhenko, Steven Burns
Strategic CAD Labs, Intel Corporation
Design Automation Conference, June 6, 2012
4. Introduction
• Routing constitutes a significant part of creation
of cell libraries
• They proposed a flow for routing nets within a
standard cell that
a) generates candidate routes for point-to-point
segments
b) finds conflicts between candidate routes
c) solves a SAT instance producing a legal and complete
routing for all nets in the standard cell
4
5. The Boolean Satisfiability
Problem (SAT)
• Given: A Boolean formula F(x1, x2, x3, …, xn)
• Can F evaluate to 1 (true)?
– Is F satisfiable?
– If yes, return values to xi’s (satisfying assignment)
that make F true
– Example :
• This is a CNF form
• (a + b + c) (a’ + b’ + c) (a + b’ + c’) (a’ + b + c’) = 1
5
6. Previous works
• SAT is ideally suited for tasks where there are
multiple conflicts among a discrete set of objects
– In [4], SAT is used to complete a greedy routing
approach
– In [8], SAT is formulated for transistor placement
– In [9], SAT is applied for FPGA routing
– In [10], SAT is used for routing regular logic bricks
– In [11], nets in a manufacturing hotspot region are
simultaneously ripped up and rerouted
6
7. Our SAT formulation
•
•
•
•
Independence on net ordering
Does not compromise design rule cleanliness
Rip-up-and-reroute is not needed
The result is
a) a legal solution
b) a precise report that no solution exists
7
9. Stages before SAT formulation
Creation of ties
Enumeration of possible routes
Pruning of redundant routes
Detection of conflicts between routes
Pruning of unfeasible routes
Pruning routes by signature
9
10. Stages before SAT formulation
Creation of ties
Enumeration of possible routes
Pruning of redundant routes
Detection of conflicts between routes
Pruning of unfeasible routes
Pruning routes by signature
10
11. Create ties -- Example
• 3 nets and 7
terminals
• 5 terminal-toterminal
connections (ties)
a
n t
n t
c
c
c
c
n c (t 12 t13 ) ( t12 t )
23
c
c
(t 23 t13 )
a
12
b
b
12
11
12. Stages before SAT formulation
Creation of ties
Enumeration of possible routes
Pruning of redundant routes
Detection of conflicts between routes
Pruning of unfeasible routes
Pruning routes by signature
12
13. Produce
possible
routes
c2
b1
a1
b2
c1
c3
a2
a
a
12
1
t r
b
b
12
3
c
c
t r
t r
12
6
b
b
12
4
c
c
t r
t r
12
7
a
a
12
2
t r
b
b
12
5
t r
c
c
12
8
t r
• Routes are
constructed by
maze
algorithm
independently
from each
other
•
c
c
13
9
t r
c
c
13
10
t r
c
c
23
11
t r
http://workbench.lafayett
e.edu/~nestorj/cadapplet
s/MazeRouter.html
13
14. Stages before SAT formulation
Creation of ties
Enumeration of possible routes
Pruning of redundant routes
Detection of conflicts between routes
Pruning of unfeasible routes
Pruning routes by signature
14
15. Pruning of redundant routes
Extra example
• The layout after
merging of r2 and r3
must be identical to r1
• These two routes have
equivalent influence on
all other routes as the
route r1 and thus we
can safely prune r1
15
16. Stages before SAT formulation
Creation of ties
Enumeration of possible routes
Pruning of redundant routes
Detection of conflicts between routes
Pruning of unfeasible routes
Pruning routes by signature
16
17. Detect
conflicts
{ r2 , r3 } is
conflict
c2
b1
a1
t12a
b2
r1
c1
a2
c3
b
b
12
3
t r
c
c
12
6
t r
c
c
13
9
t r
a
a
12
1
t r
b
b
12
4
t r
c
c
12
7
t r
c
c
13
10
t r
a
a
12
2
t r
b
b
12
5
t r
c
c
12
8
t r
c
c
23
11
t r
r1
r2
r3
r4
r5
r6
r7
r8
r9
r10
r11
t12b
r2
r3
r4
t12c
r5
t13c
t23c
r6
r7
r8
r9
r10
x
x
x
x
x
x
x
x
x
x
r11
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
17
18. Detect
conflicts
{ r2 , r4 } is also
conflict
c2
b1
a1
t12a
b2
r1
c1
a2
c3
b
b
12
3
t r
c
c
12
6
t r
c
c
13
9
t r
a
a
12
1
t r
b
b
12
4
t r
c
c
12
7
t r
c
c
13
10
t r
a
a
12
2
t r
b
b
12
5
t r
c
c
12
8
t r
c
c
23
11
t r
r1
r2
r3
r4
r5
r6
r7
r8
r9
r10
r11
t12b
r2
r3
r4
t12c
r5
t13c
t23c
r6
r7
r8
r9
r10
x
x
x
x
x
x
x
x
x
x
r11
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
18
19. Stages before SAT formulation
Creation of ties
Enumeration of possible routes
Pruning of redundant routes
Detection of conflicts between routes
Pruning of unfeasible routes
Pruning routes by signature
19
20. Prune unfeasible routes
• tb12 is mandatory tie, r6 & r7 block tb12
• tc have to choose 2 ties, r2 blocks tc12 & tc1
c2
b1
a1
t12a
b2
r1
c1
a2
c3
b
b
12
3
t r
c
c
12
6
t r
c
c
13
9
t r
a
a
12
1
t r
b
b
12
4
t r
c
c
12
7
t r
c
c
13
10
t r
a
a
12
2
t r
b
b
12
5
t r
c
c
12
8
t r
c
c
23
11
t r
r1
r2
r3
r4
r5
r6
r7
r8
r9
r10
r11
t12b
r2
r3
r4
t12c
r5
t13c
t23c
r6
r7
r8
r9
r10
x
x
x
x
x
x
x
x
x
x
r11
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
20
21. Prune unfeasible routes
• After prune r2, r6 and r7, r5 blocks the
mandatory tie ta12 → prune r5
c2
b1
a1
t12a
b2
c1
a2
c3
r1
a
a
12
1
t r
a
2
r3
r4
t12c
r5
r8
t13c
r9
t r
r1
b
b
12
3
b
b
12
4
t r
b
b
12
5
t r
x
r4
r5
x
x
r8
c
c
12
6
t r
c
c
12
7
t r
c
c
12
c
c
13
9
c
c
13
10
t r
x
r9
x
8
t r
x
r10
r11
t r
r11
x
r3
t r
r10
t23c
a
12
t12b
c
c
23
11
t r
x
21
22. Prune unfeasible routes
• If both r9 and r11 are chosen, tb12 will be
blocked → r9 and r11 can’t be selected together
c2
b1
a1
t12a
b2
c1
a2
c3
r1
a
a
12
1
t r
a
2
r3
t12c
r4
r8
t13c
r9
t r
b
b
12
3
b
b
12
4
t r
b
b
12
5
t r
x
r4
x
r8
x
r9
c
c
12
6
t r
c
c
13
9
t r
c
c
12
7
t r
c
c
13
10
t r
r11
r1
r3
t r
r10
t23c
a
12
t12b
c
c
12
x
x
r10
8
t r
r11
c
c
23
11
t r
x
22
23. Prune unfeasible routes
• r9 blocks both tc12 and tc23 → prune route r9
c2
b1
a1
t12a
b2
c1
a2
c3
r1
a
a
12
1
t r
a
2
r3
t12c
r4
r8
t13c
r9
t r
b
b
12
3
b
b
12
4
t r
b
b
12
5
t r
x
r4
x
r8
x
r9
c
c
12
6
t r
c
c
13
9
t r
c
c
12
7
t r
c
c
13
10
t r
r11
r1
r3
t r
r10
t23c
a
12
t12b
c
c
12
x
x
x
r10
8
t r
r11
c
c
23
11
t r
x
x
23
24. Stages before SAT formulation
Creation of ties
Enumeration of possible routes
Pruning of redundant routes
Detection of conflicts between routes
Pruning of unfeasible routes
Pruning routes by signature
24
25. Prune routes by signature
1) both routes belong to one tie
2) conflicts of r4 are fully covered by conflicts of r3
→ prune r3
c2
b1
a1
t12a
b2
c1
a2
c3
r1
a
a
12
1
t r
a
2
r3
t r
b
b
12
3
b
b
12
4
t r
t13c
t23c
r8
r10
r11
r1
r3
t r
r4
t12c
a
12
t12b
b
b
12
5
t r
x
r4
r8
r10
c
c
12
6
t r
c
c
13
9
t r
c
c
12
7
t r
c
c
13
10
t r
c
c
12
8
t r
c
c
23
11
t r
r11
x
25
26. After pruning routes
c2
b1
a1
t12a
b2
c1
a2
c3
a
a
12
1
t r
a
r1
a
12
2
t r
t12b
r4
t12c
r8
t13c
r10
t23c
r11
r1
b
b
12
3
t r
b
b
12
4
t r
b
b
12
5
t r
r4
r8
c
c
12
6
t r
c
c
12
7
t r
c
c
12
8
t r
r10
r11
c
c
13
9
t r
c
c
13
10
t r
c
c
23
11
t r
26
28. SAT formulation
• When ri is set to 1, it means that the
associated route is applied in the layout
• A tie clause (1) can be either true (connected
tie) or false (disconnected tie)
28
33. SAT formulation
• The result of this example:
– r1 = 1 , r4 = 1 , r8 = 1 , r9 = 1
c2
b1
a1
b2
c1
a2
c3
b
b
12
3
c
c
12
6
t r
t r
c
c
13
9
t r
a
a
12
1
t r
b
b
12
4
c
c
12
7
t r
t r
c
c
13
10
t r
a
a
12
2
t r
b
b
12
5
t r
c
c
12
8
t r
c
c
23
11
t r
33
35. Quality assumptions
• Some layout situations are not forbidden but
their appearance should be as minimal as
possible
– vias between metal1 and metal2
35
39. Conclusion
• They proposed a standard cell routing flow
formulated as a Boolean satisfiability problem
– several pruning techniques that make the SAT
formulation more effective
– improve routing quality while remaining in the SAT
framework
• It demonstrated acceptable runtime and 89%
coverage of the industrial standard cell library
39