Top Banner
Global Routing
19

Global Routing. Global routing: To route all the nets, should consider capacities Sequential −One net at a time Concurrent −Order-independent 2.

Dec 27, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

Global Routing

Page 2: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

Global Routing

• Global routing:

To route all the nets, should consider capacities

Sequential− One net at a time

Concurrent− Order-independent

2

Page 3: 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

Page 4: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

4

Global Routing in a Connectivity Graph

Channel connectivity graph

Switchboxconnectivity graph

Page 5: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

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

Page 6: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

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

Page 7: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

7

Horizontal macro-cell edges Vertical macro-cell edges

Defining the routing regions

Global Routing in a Connectivity Graph

+

Page 8: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

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

Page 9: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

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

Page 10: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

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

Page 11: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

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)

Page 12: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

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!

Page 13: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

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

Page 14: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

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

Page 15: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

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

Page 16: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

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

Page 17: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

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

Page 18: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

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

Page 19: Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.

20

Dijkstra AlgorithmInitialize D

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

Find shortest path by backtracing