1 Global Routing Method for 2-Layer Ball Grid Array Packages Yukiko Kubo*, Atsushi Takahashi** * The...

Post on 12-Jan-2016

218 views 0 download

Transcript of 1 Global Routing Method for 2-Layer Ball Grid Array Packages Yukiko Kubo*, Atsushi Takahashi** * The...

1

Global Routing Method for 2-Layer

Ball Grid Array Packages

Yukiko Kubo*, Atsushi Takahashi*** The University of Kitakyushu

** Tokyo Institute of Technology

2

Contents

IntroductionProblem Definition and StrategyGlobal Routing MethodExperimentsConclusion

3

Contents

IntroductionProblem Definition and StrategyGlobal Routing MethodExperimentsConclusion

4

Old package designCircuits were smallNumber of I/O terminals of packages

was small

-> Terminals were put on perimeter of package board

Radial routingManual design or simple automatic

design

Introduction

5

Recent package designCircuits are largeNumber of I/O terminals

of packages is largeBall Grid Array (BGA)Routing design is difficult

Reduction of design termRouting automation

Introduction

Ball Grid Array

6

Previous Works for BGA Package Design

Net generation and global routing (single layer)

Yu and Dai [ICCAD95] Shibata etc. [JIEP97](in Japanese)

Layer Assignment and single layer routing Tsai, Wang and Chen [TCAD98] Chen, Chen, Tsai and Chen [ICCD99]

Existing algorithms are for single layer routingGlobal routing method for 2-layer BGA packages is proposed

7

Contents

IntroductionProblem Definition and StrategyGlobal Routing MethodExperimentsConclusion

8

Our target

Route on layer1

Route on layer2

via

Ring wire for plating

Plating lead

Target: 2-layer BGA package with plating leads Plating lead: a wire connecting

outer ring to plate wires Finger (on layer1): connecting

BGA board and chip Ball (on layer2): connecting BGA

board and PCB Net: 2-terminal (a finger and a

ball) with plating lead

chip

ball

finger

ball

finger

via

9

Via assignment

Vias are on grid array:   Radius of vias are large for ball pitch = At most one via is allowed between four adjacent balls

10

Routing strategy: Monotonic routing

4

1 3

2 5

6

1 2 3 4 5 6

5

1 3

2 4

6

1 2 3 4 5 6

5

1 3

2 4

6

1 2 3 4 5 6

Monotonic routing Non-monotonic routing

Monotonic Routing: never snakes in horizontal direction crosses any horizontal line at most once

11

Condition for Monotonic Routing

4

1 3

2 5

6

1 2 3 4 5 6

Monotonic routing is possible

if and only if via assignment is monotonic Monotonic via assignment:

Net labels of vias on each row are

subsequence of net labels of fingers In monotonic via assignment,

Monotonic global routes are determined uniquely

Global routing = Monotonic via assignment

12

Routing Strategy: Routes on Each Layer

Layer1: Monotonic routes with plating tales Via assignment is monotonic Global routes are determined uniquely

Layer2: Short routes Each via is put near

corresponding ball4 11 10

14

1 6 5 7 13

0 3 8 12 92

0, 1, … , 14

2

4

12

13

10

11

140 3 8

91

5

6 7

Layer1 Layer2

13

Evaluation of Routes

Via assignment is monotonic-> Global routes can be determined uniquely

Global routes are evaluated by via assignment Evaluation: wire length (layer1), wire length (layer2)

and wire congestion

4 11 10

14

1 6 5 7 13

0 3 8 12 92

0, 1, … , 14

2

4

12

13

10

11

140 3 8

91

5

6 7

14

Evaluation: Wire Length

Wire length (Layer1): the number of crosses of vertical grid line and global routes

Monotonic routes If wire length is long,= routes snake= routes cross vertical

grid line

4 11 10

14

1 6 5 7 13

0 3 8 12 92

2 5

2

4

12

13

10

11

140 3 8

91

5

6 7

Len:0 Len:2

15

Evaluation: wire length

Wire Length (Layer2): Manhattan distance between a ball and a via

5

2

2 5

2

5

Len:1Len:2

16

Evaluation: Wire congestion

Routing failure occurs   = Congestion is dense = Congestion is not ballanced

Congestion evaluation: Sum of difference of adjacent congestion

4 11 10

14

1 6 5 7 13

0 3 8 12 922

4

12

13

10

11

140 3 8

91

5

6 7

Congestion between adjacent 2 vias : Reciprocal of wire pitch

Congestion: 5Congestion: 3

Difference of congestion: |3-5|=2

17

Problem Definition

2-Layer BGA Package Routing Input: 2-terminal nets (pair of a ball and a finger) Output: Global routes including vias Objective:

To minimize

Cost=a*wire length(layer1) + b*wire length(layer2) + c*wire congestion

Constraints: Monotonic via assignment Plating leads

18

Contents

IntroductionProblem Definition and StrategyGlobal Routing MethodExperimentsConclusion

19

Routing Optimization Approach

Greedy algorithm1. Give initial via assignment

2. Select via-assignment modification with maximum gain under monotonic constraint

3. If maximum gain > 0, apply the modification and go to 2

20

Routing Optimization Approach

Greedy algorithm1. Give initial via assignment

2. Select via-assignment modification with maximum gain under monotonic constraint

3. If maximum gain > 0, apply the modification and go to 2

21

Initial via assignment

Vias are generated according to ball sequences Each via sequence is divided into monotonic sub-sequen

ces Vias of sub-sequences for same ball sequence are put o

n different rows of via grid array

4 11 10

14

1 6 5 7 13

0 3 8 12 92

0, 1, … , 14

4

13

1011

12 140 3 82 9

1 56 7

22

Initial via assignment

Vias are generated according to ball sequence Each via sequences are divided into monotonic sub-sequ

ences Vias of sub-sequences for same ball sequence are put o

n different rows of via grid array

4 11 10

14

1 6 5 7 13

0 3 8 12 92

0, 1, … , 14

4

13

10

11

12 140 3 8

2 9

1

5

6 7

Vias of sub-sequences in different ball sequences can share same row of via grid array

23

Initial via assignment

Vias are generated according to ball sequence Each via sequences are divided into monotonic sub-sequ

ences Vias of sub-sequences for same ball sequence are put o

n different rows of via grid array

4 11 10

14

1 6 5 7 13

0 3 8 12 92

0, 1, … , 14

2

4

12

13

10

11

140 3 8

91

5

6 7

4

13

10

11

12 140 3 8

2 9

1

5

6 7

Vias of sub-sequences in different ball sequence can share same row of via grid array

24

Routing Optimization Approach

Greedy algorithm1. Give initial via assignment

2. Select via-assignment modification with maximum gain under monotonic constraint

3. If maximum gain > 0, apply the modification and go to 2

25

Via assignment modification

Modification patterns 2-via exchange 3-via rotation Sequential via movement

26

2-via exchange, 3-via rotation

u

k

d

j il

2-via exchange

u

k

d

j il

3-via rotation

2-via exchange: Adjacent 2 vias are exchanged

3-via rotation: 3 vias on a unit grid are rotated

27

Sequential via movement

Vias are moved to their adjacent grid one by one without overlaps

4 11 10

14

1 6 5 7 13

0 3 8 12 92

0, 1, … , 14

2

4

12

13

10

11

140 3 8

91

5

6 7

28

Complexity

Modification with maximum gain enumerating all modifications calculating the gain of them

Complexity to obtain modification with maximum gain (n: number of nets) 2-via exchange: O(n) 3-via rotation: O(n) Sequential via movement: O(n2) Total: O(n2)

29

Routing Optimization Approach

Greedy algorithm1. Give initial via assignment

2. Select via-assignment modification with maximum gain under monotonic constraint

3. If maximum gain > 0, apply the modification and go to 2

30

Contents

IntroductionProblem Definition and StrategyGlobal Routing MethodExperimentsConclusion

31

Experiments

Proposing method is implemented by C++CPU 3GHz, 1GB memoryCost function:

length(layer1) + length(layer2) + congestion

( a = b = c = 1 )

Comparison: ALL (Proposing method): 2-via exchange, 3-via

rotation, and sequential via movement SEQ: Sequential via movement only

32

Experimental results

data ALL SEQ

1 16.7 1.0

2 4.7 0.3

3 1.9 0.2

4 5.7 0.6

5 5.5 0.4

ALL generates better routes than SEQ ALL takes much more time than SEQ

Tradeoff between quality of solution and calculation time

0

200

400

600

800

1000

1200

1400

Init

SEQ

ALL Init

SEQ

ALL Init

SEQ

ALL Init

SEQ

ALL Init

SEQ

ALL

data1 data2 data3 data4 data5

Data

Cos

t

congestion

length(layer2)

length(layer1) Calculation Time (s)

33

Experimental result (data3)

Length(layer1): 252 →   53Length(layer2): 160 → 193  Congestion: 414.3 → 129.8Time(s): 1.90 (sec)

34

Contents

IntroductionProblem Definition and StrategyGlobal Routing MethodExperimentsConclusion

35

Conclusion

Global routing method for 2-layer BGA packages was proposed Monotonic routing was introduced Global routing method by monotonic via assignment

was proposed The method gives initial via assignment and

improve it by via assignment modification Experimental results

Our method generates good global routes Tradeoff between quality of solution and calculation

time

36

Future work

Reduction of calculation time without degrading solution

Accurate design rule consideration for both layer1 and layer2

Plating leads planning Whether is the plating lead of each net routed

on Layer1 or Layer2?

37

BGA Package Design

Consideration Multi-layer routing Obstacles Plating lead Chip scale package Multi-chip on board Electrical effects

board

Au bonding wiredie

solder ball

bonding finger

38

Evaluation: Wire length on layer1

4 11 10

14

1 6 5 7 13

0 3 8 12 922

4

12

13

10

11

140 3 8

91

5

6 7

len: 1

len: 3

39

Many obstacles on layer2 For short routes

Little obstacles on layer1 For long routes Plating leads is on layer1

Routes distribution

Layer1 Layer2

40

Sequential via movement

4 11 10

14

1 6 5 7 13

0 3 8 12 92

0, 1, … , 14

2

4

12

13

10

11

140 3 8

91

5

6 7

4 11 10

14

1 6 5 7 13

0 3 8 12 92

0, 1, … , 14

2 4

12

13

10

11

140 3 8

91

5

6

7

Layer1: Layer2:

Congestion:

41

Local change of the cost

Local change of cost is possible to calculate if Adjacent vias of the target via are known Two previous vias and a next via in the movement are kn

own Sum of local change of cost = gain

u

k

d

j il

k

j

d

i *l

The direction of movement is restricted to {right, left} or {above, below}

42

Cost graph

Nodes : target via and two previous viasEdges : the direction of next via

u

k

d

j il

j, k, u

j, k, l

j, k, d

i, j, k

43

Cost graph

j, k, u

j, k, l

j, k, d

k, u, a

k, u, b

k, l, b

u

k

d

j il

a

b

c

i, j, k

Nodes : target via and two previous viasEdges : the direction of next via

Weight of edges are local change of cost

44

Cost graph

Directed acyclic graph Calculate longest path Longest path = sequential movement with

maximum gain

Sequential via movement with maximum via is selected For all starting nodes,

Generate cost graph Search longest path

Select path with maximum gain among all

45

Experimental results

initial outputdata #net len1 len2 cong Cost len1 len2 cong Cost imp.

(%)

#mod time

(s)

1 316 175 316 356 847 86 359 174 619 27 54 16.7

2 192 418 192 620 1230 89 248 212 549 55 62 4.7

3 160 252 160 414 826 53 193 130 376 55 61 1.9

4 160 250 168 435 853 67 229 158 454 47 76 5.7

5 160 271 164 406 841 63 221 121 405 52 62 5.5

46

Experimental results

Comparison ALL:

Proposing method

SEQ sequential via movement

only Via movement starts

with via of large cost

ALL SEQ

data imp. time imp. time

1 27 16.7 24 1.0

2 55 4.7 50 0.3

3 55 1.9 54 0.2

4 47 5.7 46 0.6

5 52 5.5 47 0.4

47

Our Strategy

Strategy: Layer1: Monotonic routes with plating leads Layer2: Short routes

Layer1 Layer2