20121224 meeting standard cell routing via boolean satisfiability_mori ver

39
Standard Cell Routing via Boolean Satisfiability Nikolai Ryzhenko, Steven Burns Strategic CAD Labs, Intel Corporation Design Automation Conference, June 6, 2012

Upload: hanson-chi

Post on 07-Jul-2015

86 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

Standard Cell Routing via

Boolean Satisfiability

Nikolai Ryzhenko, Steven Burns

Strategic CAD Labs, Intel Corporation

Design Automation Conference, June 6, 2012

Page 2: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

Outline

2

• Introduction

• Stages before SAT formulation

• SAT formulation

• Quality assumptions

• Experimental results

• Conclusion

Page 3: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

Outline

3

• Introduction

• Stages before SAT formulation

• SAT formulation

• Quality assumptions

• Experimental results

• Conclusion

Page 4: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 5: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 6: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 7: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 8: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

Outline

8

• Introduction

• Stages before SAT formulation

• SAT formulation

• Quality assumptions

• Experimental results

• Conclusion

Page 9: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 10: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 11: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 12: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 13: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 14: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 15: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 16: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 17: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 18: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 19: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 20: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 21: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 22: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 23: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 24: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 25: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 26: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 27: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

Outline

27

• Introduction

• Stages before SAT formulation

• SAT formulation

• Quality assumptions

• Experimental results

• Conclusion

Page 28: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 29: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

SAT formulation

29

Page 30: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

SAT formulation

30

t12a t12

b t12c t13

c t23c

r1 r3 r4 r8 r10 r11

r1

r3 x

r4

r8

r10

r11 x

Page 31: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

SAT formulation

31

obj1 obj2

obj3

Page 32: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 33: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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

Page 34: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

Outline

34

• Introduction

• Stages before SAT formulation

• SAT formulation

• Quality assumptions

• Experimental results

• Conclusion

Page 35: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

Quality assumptions

• Some layout situations are not forbidden but their appearance should be as minimal as possible

– vias between metal1 and metal2

35

Page 36: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

Outline

36

• Introduction

• Stages before SAT formulation

• SAT formulation

• Quality assumptions

• Experimental results

• Conclusion

Page 37: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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%

Page 38: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

Outline

38

• Introduction

• Stages before SAT formulation

• SAT formulation

• Quality assumptions

• Experimental results

• Conclusion

Page 39: 20121224 meeting standard cell routing via boolean satisfiability_mori ver

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