20121224 meeting standard cell routing via boolean satisfiability_mori ver
TRANSCRIPT
Standard Cell Routing via
Boolean Satisfiability
Nikolai Ryzhenko, Steven Burns
Strategic CAD Labs, Intel Corporation
Design Automation Conference, June 6, 2012
Outline
2
• Introduction
• Stages before SAT formulation
• SAT formulation
• Quality assumptions
• Experimental results
• Conclusion
Outline
3
• Introduction
• Stages before SAT formulation
• SAT formulation
• Quality assumptions
• Experimental results
• Conclusion
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
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
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
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
Outline
8
• Introduction
• Stages before SAT formulation
• SAT formulation
• Quality assumptions
• Experimental results
• Conclusion
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
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
Create ties -- Example
• 3 nets and 7 terminals
• 5 terminal-to-terminal connections (ties)
11
tnb
b 12
12 13 12 23
23 13
( ) ( )
( )
c c c c
c
c c
n t t t t
t t
tna
a 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
Produce
possible
routes
• Routes are constructed by maze algorithm independently from each other
• http://workbench.lafayette.edu/~nestorj/cadapplets/MazeRouter.html
13
a2
b1
b2
c1
c2
c3
a1
rtaa
112 rtaa
212
rtbb
312 rtbb
412 rtbb
512
rtcc
612 rtcc
712rt
cc
812
rtcc
913 rtcc
1013rt
cc
1123
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
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
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
t12a t12
b t12c t13
c t23c
r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11
r1 x
r2 x x x x x x x
r3 x x x x
r4 x x x x
r5 x x x
r6 x x x x
r7 x x x x
r8 x x
r9 x x x
r10 x
r11 x
Detect
conflicts
{ r2 , r3 } is conflict
17
a2
b1
b2
c1
c2
c3
a1
rtaa
112 rtaa
212
rtbb
312 rtbb
412 rtbb
512
rtcc
612 rtcc
712rt
cc
812
rtcc
913 rtcc
1013rt
cc
1123
18
t12a t12
b t12c t13
c t23c
r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11
r1 x
r2 x x x x x x x
r3 x x x x
r4 x x x x
r5 x x x
r6 x x x x
r7 x x x x
r8 x x
r9 x x x
r10 x
r11 x
a2
b1
b2
c1
c2
c3
a1
rtaa
112 rtaa
212
rtbb
312 rtbb
412 rtbb
512
rtcc
612 rtcc
712rt
cc
812
rtcc
913 rtcc
1013rt
cc
1123
{ r2 , r4 } is also conflict
Detect
conflicts
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
t12a t12
b t12c t13
c t23c
r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11
r1 x
r2 x x x x x x x
r3 x x x x
r4 x x x x
r5 x x x
r6 x x x x
r7 x x x x
r8 x x
r9 x x x
r10 x
r11 x
Prune unfeasible routes
• tb12 is mandatory tie, r6 & r7 block tb
12
• tc have to choose 2 ties, r2 blocks tc12 & tc
1
20
a2
b1
b2
c1
c2
c3
a1
rtaa
112 rtaa
212
rtbb
312 rtbb
412 rtbb
512
rtcc
612 rtcc
712rt
cc
812
rtcc
913 rtcc
1013rt
cc
1123
t12a t12
b t12c t13
c t23c
r1 r3 r4 r5 r8 r9 r10 r11
r1 x
r3 x
r4 x
r5 x
r8 x
r9 x x
r10
r11 x
Prune unfeasible routes
• After prune r2, r6 and r7, r5 blocks the mandatory tie ta
12 → prune r5
21
a2
b1
b2
c1
c2
c3
a1
rtaa
112 rtaa
212
rtbb
312 rtbb
412 rtbb
512
rtcc
612 rtcc
712rt
cc
812
rtcc
913 rtcc
1013rt
cc
1123
t12a t12
b t12c t13
c t23c
r1 r3 r4 r8 r9 r10 r11
r1
r3 x
r4 x
r8 x
r9 x x
r10
r11 x
• If both r9 and r11 are chosen, tb12 will be
blocked → r9 and r11 can’t be selected together
22
a2
b1
b2
c1
c2
c3
a1
rtaa
112 rtaa
212
rtbb
312 rtbb
412 rtbb
512
rtcc
612 rtcc
712rt
cc
812
rtcc
913 rtcc
1013rt
cc
1123
Prune unfeasible routes
t12a t12
b t12c t13
c t23c
r1 r3 r4 r8 r9 r10 r11
r1
r3 x
r4 x
r8 x
r9 x x x
r10
r11 x x
• r9 blocks both tc12 and tc
23 → prune route r9
23
a2
b1
b2
c1
c2
c3
a1
rtaa
112 rtaa
212
rtbb
312 rtbb
412 rtbb
512
rtcc
612 rtcc
712rt
cc
812
rtcc
913 rtcc
1013rt
cc
1123
Prune unfeasible routes
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
t12a t12
b t12c t13
c t23c
r1 r3 r4 r8 r10 r11
r1
r3 x
r4
r8
r10
r11 x
Prune routes by signature
1) both routes belong to one tie 2) conflicts of r4 are fully covered by conflicts of r3
→ prune r3
25
a2
b1
b2
c1
c2
c3
a1
rtaa
112 rtaa
212
rtbb
312 rtbb
412 rtbb
512
rtcc
612 rtcc
712rt
cc
812
rtcc
913 rtcc
1013rt
cc
1123
t12a t12
b t12c t13
c t23c
r1 r4 r8 r10 r11
r1
r4
r8
r10
r11
After pruning routes
26
a2
b1
b2
c1
c2
c3
a1
rtaa
112 rtaa
212
rtbb
312 rtbb
412 rtbb
512
rtcc
612 rtcc
712rt
cc
812
rtcc
913 rtcc
1013rt
cc
1123
Outline
27
• Introduction
• Stages before SAT formulation
• SAT formulation
• Quality assumptions
• Experimental results
• Conclusion
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
SAT formulation
29
SAT formulation
30
t12a t12
b t12c t13
c t23c
r1 r3 r4 r8 r10 r11
r1
r3 x
r4
r8
r10
r11 x
SAT formulation
31
obj1 obj2
obj3
t12a t12
b t12c t13
c t23c
r1 r4 r8 r10 r11
r1
r4
r8
r10
r11
32
SAT formulation
tc12 = r8
tc13 = r10
tc23 = r11
ta12 = 1
33
a2
b1
b2
c1
c2
c3
a1
rtaa
112 rtaa
212
rtbb
312 rtbb
412 rtbb
512
rtcc
612 rtcc
712rt
cc
812
rtcc
913 rtcc
1013rt
cc
1123
SAT formulation
• The result of this example:
– r1 = 1 , r4 = 1 , r8 = 1 , r9 = 1
Outline
34
• Introduction
• Stages before SAT formulation
• SAT formulation
• Quality assumptions
• Experimental results
• Conclusion
Quality assumptions
• Some layout situations are not forbidden but their appearance should be as minimal as possible
– vias between metal1 and metal2
35
Outline
36
• Introduction
• Stages before SAT formulation
• SAT formulation
• Quality assumptions
• Experimental results
• Conclusion
Routability and Runtime
• 188 different cell from an industrial library • 269 cells: 112 single-height and 157 double-height• 89% cells (239 from total 269) were successfully routed
37
Cell type #cells #routed routed %Combinational 120 115 96%Delay cell 11 11 100%Latch 14 14 100%Non-scan DFF 14 13 93%Scan DFF 29 21 72%Adder 16 9 56%Multiplexer 25 21 84%Clock driver 40 35 88%Total 269 239 89%
Runtime < 1 min < 5 min < 1 hours > 1 hour#cells 169 20 37 14% from all routed ~70% ~8% ~15% ~6%
Outline
38
• Introduction
• Stages before SAT formulation
• SAT formulation
• Quality assumptions
• Experimental results
• Conclusion
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