global routing. global routing: to route all the nets, should consider capacities sequential...

19
Global Routing

Upload: sophie-tamsin-williamson

Post on 27-Dec-2015

223 views

Category:

Documents


0 download

TRANSCRIPT

Global Routing

Global Routing

• Global routing:

To route all the nets, should consider capacities

Sequential− One net at a time

Concurrent− Order-independent

2

3

1 2 3

4

5

6

7

8

9 1 2 3

4

5

6

7

8

9

1

2

3

4

5

6

7

8

9

10

11

12

13

14

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Channel connectivity graph

Switchboxconnectivity graph

Global Routing in a Connectivity Graph

4

Global Routing in a Connectivity Graph

Channel connectivity graph

Switchboxconnectivity graph

5

Combines switchboxes and channels, handles non-rectangular block shapes

Suitable for full-custom design and multi-chip modules Overview:

Routing regions

1 2 3

4 5 6 7

8 9

10 11 12

B

A

B

A

Global Routing in a Connectivity Graph

Graph-based path search

2,2

4,2

1,2

2,7

4,2

0,1 1,2

3,1

2,2

4,24,2

0,4

Graph representation

1 2 3

4

2,2

4,2

1,2

2,7

4,2

1,2 1,2

5 68

4,2

7

2,2

4,2

9

10

4,2

1,5

11 12

6

Algorithm Overview

1. Define routing regions

2. Define connectivity graph

3. Determine net ordering

4. Assign tracks for all pin connections in Netlist

5. Consider each net

a)Free corresponding tracks for net’s pins

b)Decompose net into two-pin subnets

c)Find shortest path for subnet connectivity graph

d)Assign subnet to the nodes of shortest path and update routing capacities

6. If there are unrouted nets, goto Step 5, otherwise END

Global Routing in a Connectivity Graph

7

Horizontal macro-cell edges Vertical macro-cell edges

Defining the routing regions

Global Routing in a Connectivity Graph

+

8

2

3

4

5

67

89

101112

13 1415

16

1718

19

20

21

22

23

24

25

2627

1

2

3

4

5

6

7

8

9

10

11 12

13 14 15

16

17

18

19

20

21

22

23

24

25

26

27

1

Defining the connectivity graph

Global Routing in a Connectivity Graph

9

2

3

4

5

67

89

101112

13 1415

16

1718

19

20

21

22

23

24

25

2627

1

2

3

4

5

6

7

8

9

10

11 12

13 14 15

16

17

18

19

20

21

22

23

24

25

26

27

1,2

Horizontal capacity of routing region 1

Vertical capacity of routing region 1

2 Tracks

1 T

rack 1

Defining Capacities

10

2

3

4

5

67

89

101112

13 1415

16

1718

19

20

21

22

23

24

25

2627

1

2

3

4

5

6

7

8

9

10

11 12

13 14 15

16

17

18

19

20

21

22

23

24

25

26

27

1,2

2,2

2,2

2,2

3,2

1,2

1,2

2,1

3,1

1,3

2,3

1,1

2,1

3,1 3,1

1,1

2,1

4,1

3,1

1,1

6,1

3,1

1,1

1,1

1,4

3,4

1,8

1

Defining Capacities

11

Net Ordering

• Determine net orderingA bad net ordering

− may increase total wire length,− may even prevent completion of the routing

(for some circuits which are indeed routable.).

A

A

B

B

B First (Good Order)

A

AB

B

A First(Bad Order)

12

Criteria for Net Ordering

Criticality of net:− Critical nets first

Number of terminals:− Simple nets first, since they are less flexible

Estimated wire length:− Short nets first, since they are less flexible− Long nets first, since they may generate critical paths

Consider bounding rectangles:

A

A

B

BB terminal is inside A’s BR.

A

A

B

B

So B First.

A

AB

B

If A First:

But not always applicable!

14

l

1 2 3

4 5 6 7

8 9

10 11 12

B

A

B

Aw

1 2 3

4

2,2

4,2

1,2

2,7

4,2

1,2 1,2

5 68

4,2

7

2,2

4,2

9

10

4,2

1,5

11 12

Example

Global routing of the nets A-A and B-B

15

l

1 2 3

4 5 6 7

8 9

10 11 12

B

A

B

Aw

1 2 3

4

2,2

4,2

1,2

2,7

4,2

1,2 1,2

5 68

4,2

7

2,2

4,2

9

10

4,2

1,5

11 12

B

A

B

A

0,1

3,1

0,4

1 2 3

4

2,2

4,2

1,2

2,7

4,2

1,2

5 68

7

2,2

4,2

9

10

4,2

11 12

Example

Global routing of the nets A-A and B-B

16

l

1 2 3

4 5 6 7

8 9

10 11 12

B

A

B

Aw

1 2 3

4

2,2

4,2

1,2

2,7

4,2

1,2 1,2

5 68

4,2

7

2,2

4,2

9

10

4,2

1,5

11 12

B

A

B

A

B

A

B

A

1 2 3

4

2,2

4,2

1,2

2,7

4,2

0,1 1,2

5 68

3,1

7

2,2

4,2

9

10

4,2

0,4

11 12

1

4 1,2 0,1

5 6

4,2

0,4

2 3

1,1

3,1

1,7

4,1

1,1

8

2,1

7

1,1

3,1

9

10

11 12

Example

Global routing of the nets A-A and B-B

17

l

1 2 3

4 5 6 7

8 9

10 11 12

B

A

B

Aw

B

A

B

A

Example

Global routing of the nets A-A and B-B

18

1 2 3

3,1 3,4 3,3

1,4 1,1 1,4 1,3

3,4 3,1 3,3

45 6 7

8 9 10

B

AB

A

4 5 7

8

6

9 10

1 2 3ExampleDetermine routability of a placement

B

AB

A

4 5 7

8

6

9 10

1 2 3

?1 2 3

3,1 3,4 3,3

0,3 0,1 0,4 0,2

3,4 3,1 2,2

45 6 7

8 9 10

B

AB

A

4 5 7

8

6

9 10

1 2 3

1 2 3

3,1 3,4 3,3

0,3 0,1 0,4 0,2

3,4 3,1 2,2

45 6 7

8 9 10

19

1 2 3

3,1 3,4 3,3

1,4 1,1 1,4 1,3

3,4 3,1 3,3

45 6 7

8 9 10

B

AB

A

4 5 7

8

6

9 10

1 2 3

B

AB

A

4 5 7

8

6

9 10

1 2 3

B

AB

A

4 5 7

8

6

9 10

1 2 3

1 2 3

3,1 3,4 3,3

0,3 0,1 0,4 0,2

3,4 3,1 2,2

45 6 7

8 9 10

1 2 3

2,0 2,3 3,3

0,2 0,0 0,3 0,2

2,3 2,0 2,2

45 6 7

8 9 10

ExampleDetermine routability of a placement

20

Dijkstra AlgorithmInitialize D

Find min distance from u to each node (so far)

Find shortest path by backtracing