70
CS258F 1998F Prof. J. Cong 1 Jason Cong 1 Jason Cong 2 Approaches to Multi-Layer Routing Multi-Layer Channel Routing Multi-Layer General Area Routing Routing one layer-pair at a time => reduced to two layer routing problems 3D maze routing Hierarchical routing Global routing + detailed routing

Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 1

Jason Cong 1

Jason Cong 2

Approaches to Multi-Layer Routing

• Multi-Layer Channel Routing• Multi-Layer General Area Routing

– Routing one layer-pair at a time => reduced to two layer routing problems

– 3D maze routing– Hierarchical routing – Global routing + detailed routing

Page 2: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 2

Jason Cong 3

A New Approach to Three Layer Channel Routing

Ref. Cong, J., D. F. Wong and C. L. Liu, "A New Approach to Three- or Four-Layer Channel Routing". IEEE Trans. Computer-Aided Design, 1988, Vol. 7, pp. 1094-1104.

Basic Idea

Transform two layer solutions into three layer solution

Reason:

Existence of good two layer channel routers

w(S) ≤ d+2

Jason Cong 4

Channel Routing Problem

Channel Density d

Max. # of crossings over all columns

Lower Bound

Two layer: d

Multi-layer [d/L]

(L: # of horizontal layers)

Layer Assignment

HVH

Page 3: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 3

Jason Cong 5

A Two-Layer Channel Routing Solution

1 2 43 4662 2

12 43 4 56 235

t1

t2

t3

t4

t5

t6

Jason Cong 6

Horizontal Track Assignmentt2k-1 →k-th track on layer 1

t2k →k-th track on layer 2

2 1 5 6 3 4 4 3 2 5

1 2 3 4 2 6 6 4 2

t1t2

t5t6

Horizontal Track AssignmentNo horizontal wire violation!

Folded track pair

t3t4

Page 4: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 4

Jason Cong 7

Vertical ConnectionsColumn by column

2 1 5 6 3 4 4 3 2 5

1 2 3 4 2 6 6 4 2

t1t2

t5t6

Vertical Connection after Track AssignmentProblem: Adjacent vias between a folded track pair

The only vertical wire violation is possible

t3t4

Jason Cong 8

Avoid Vertical Violation

Perfect Track PairingNo adjacent vias between every folded track pair

Resulted three layer solution [w/2]

How to obtain a solution with perfect track pairing?Insert empty tracks to break adjacent vias

Page 5: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 5

Jason Cong 9

Perfect Track Pairing2 1 5 6 3 4 4 3 2 5

1 2 3 4 2 6 6 4 2

t1

t2t3

t6

t4t5

An perfect tracking of the example dashed lines are the empty tracks inserted

Resulted three layer solution:[(w+e(S))/2](e(S): # of empty tracks inserted)

Jason Cong 10

Generate Perfect Track Pairing

Key Problem

Modify S to minimize e(S)

Solution Modification

S → S’ such that w’=w but e(S’)≤e(S)

Two Operations

1. Track permutation

2. Local re-routing

Page 6: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 6

Jason Cong 11

Simple Perfect Track Pairing of the Solution

2 1 5 6 3 4 4 3 2 5

1 2 3 4 2 6 6 4 2

t1

t3t2

t6

t4

t5

Jason Cong 12

After Exchanging Track 2 and 3

2 1 5 6 3 4 4 3 2 5

1 2 3 4 2 6 6 4 2

t1t3

t6

t5

t4

t2

Page 7: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 7

Jason Cong 13

After Rerouting

2 1 5 6 3 4 4 3 2 5

1 2 3 4 2 6 6 4 2

t1t3

t6

t5

t4

t2

Jason Cong 14

Compute Track PermutationTrack Permutation

1. What is a feasible track permutation?

2. What is the best track permutation?

Track Ordering Graph

The Track Ordering Graph of the Example

Feasible track permutation⇔ topological labeling

t1 t2

t4 t5 t6

t3

Page 8: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 8

Jason Cong 15

Two Processor Scheduling

The Task Precedence Graph An Scheduling SOlution

The best track permutation ⇔the optimal two processor scheduling solution

Solved in linear time

t1 t2

t4 t5 t6

t3P1 P2

t1 t3t4 t2t5t6

Time=1234

Jason Cong 16

Local Re-routing

Maze router

Wave propagation algorithm

Clean-up phase

h1

h2v2

v1

( a )

h1

h2v2

x

( b )

h1

h2v2

( c )

Page 9: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 9

Jason Cong 17

Singular Track Shiftingt1

t3t4t5t6

t2

( a )

t1

t3t4t5t6

t2

( b )

t1

t3t4t5t6

t2

( c )

t1

t3t4t5t6

t2

( d )

Singular Track Shifting.

Minimize the total # of adjacent vias

Jason Cong 18

Decide Relative Ordering Within Each Track Pair

Track group state graph

The track group state graph for the example

Shortest s-t path ⇔optimal relative ordering for every track pair

Solved in quadratic time

a(3,4)

s 1

23

32 54

45

6 ta(1,2)

a(4,6)

a(5,6)

a(2,5)

a(2,4)a(1,3)

0a(3,5)0

Page 10: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 10

Jason Cong 19

Table Experimental Results of Our Three Layer Channel Router

Ex. d w # ofsingulartracksafterpermutation

# ofadjacent viasre-moved

# ofemptytracksinserted

# oftracks inour 3Lsolution

Lowerbound for3Lsolution

YK3a 15 15 1 0 0 8 8

YK3b 17 17 1 0 0 9 9YK3c 18 18 2 1 0 9 9

D1 18 18 2 2 0 9 9

D3 15 15 1 0 0 9 8

D5 17 17 1 0 0 9 9

Diff. 19 19 11 8 1 10 10

Jason Cong 20

Comparison With Other Three Layer Channel Routers

Ex. d C&L B&S Cham E&D Ours Lower Bound

YK3a 15 8 8 8 8 8 8

YK3b 17 10 10 10 10 9 9

Yk3c 18 9 10 10 9 9 9

Diff. 19 14 11 11 13 10 10

Page 11: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 11

Jason Cong 21

Deutsch’s Difficult Example

CONG et al: THREE- OR FOUR-LAYER CHANNEL ROUTING

Jason Cong 22

Conclusions

Two layer solution → three layer solutionApply results for well studied combinatorial optimization problems

High quality solution and short running time ( < 20 CPU sec)

Page 12: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 12

MARS :An Enhanced Multilevel Routing System

Jason Cong, Jie Fang, Kei-Yong Khoo, Min Xie and Yan ZhangComputer Science Department

University of California,Los Angeles

Jason Cong 24

Challenges in High-performance Chip Design

• Smaller feature size and higher Intergration[NTRS’97]– DSM effects

• Variable wire sizes for delay• Variable wire spacing for noise & delay

– Larger designs

• New design methodologies

Page 13: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 13

Jason Cong 25

Traditional Two Level Routing Flow

Congestion-DrivenGlobal Routing

Detailed Routing &Ripup Re-routing

Floorplan/Partition Result

Final Layout

Floorplan/Placement Result

Final Layout

GR

DR

Jason Cong 26

Three-level Routing Flow [Cong, et al., ISPD 2000]

Performance-DrivenGlobal Routing

Congestion-DrivenWire Planning

Gridless Detailed RoutingRipup & Re-routing

Floorplan/Partition Result

Final Layout

Planning & Re-planning

Floorplan/Placement Result

Final Layout

Page 14: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 14

Jason Cong 27

Is Three-level Sufficient?• Larger designs require more levels of hierarchy

Floorplan/Placement Result

Final Layout

…30x30

100x100

100x100

–2.5x2.5 cm2 chip with 0.07μm / 360,000 tracks

Our Proposal: Use Multilevel Optimization Method

Jason Cong 28

MARS Outline• Introduction• Multilevel Routing System

– J. Cong, J. Fang and Y. Zhang, “Multilevel Approach to Full-Chip Gridless Routing” ICCAD 2001

– J. Cong, M. Xie and Y. Zhang, "An Enhanced Multilevel Routing System," ICCAD 2002

• Gridless Detailed Routing Engine - Dune – J. Cong, J. Fang and K. -Y. Khoo, "DUNE - A Multilayer Gridless

Routing System", IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 20, (no. 5), pp 633-647, May 2001

– J. Cong, J. Fang and K.-Y. Khoo , “Via Design Rule Consideration in Multi-Layer Maze Routing Algorithms”, ISPD 1999

– J. Cong, J. Fang and K.Y. Khoo, “An Implicit Connection Graph Maze Routing Algorithm for ECO Routing”, ICCAD 1999

• Conclusion and Future Work

Page 15: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 15

Jason Cong 29

Multilevel “V-shaped” Optimization

Downward Pass: Coarsening

Upward Pass: Refinement

Jason Cong 30

Brief Review of Multilevel Methods• General Applications

– Originally used to accelerate partial differential equations.

– Later used in image processing, combinatorial optimization, control theory, statistical mechanics, quantum electrodynamics, and linear algebra.

• Applications in VLSI CAD– Min-cut circuit partitioning, hMETIS [Karypis, et al.,

TVLSI’99]

– Balance delay and cut size partitioning, HPM [Cong, et al., DAC’00]

– Placement, mPL[Cong, et al., ICCAD’00]

Page 16: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 16

Jason Cong 31

Multilevel Routing Framework

G0

•Initial fine routing tile generation

•Use the gridless detailed router to finalize the paths

G1•Tile coarsening •Route

refinement

Gk

• Initial routing

•Scalable due to the hierarchical nature•Ability to integrate various routing and interconnect optimization algorithms

•WireSizng

•Buffer Insertion

•Wire Ordering and Spacing

•Multicommodity flow based algorithm

•Maze Refinement

•Implicit graph gridless routing

Jason Cong 32

Downward Pass —Finest Tile Generation+Capacity Estimation

• 3-D routing graph generation• Resource estimation: weighted sum of the height of

each empty “slice”

Planning Graph Construction Congestion Estimation

S1

S2

S3

w

D

D2

D1

D3

W1

W3

W2

DDWDDWDDWC 332211 ×+×+×=

G0

Page 17: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 17

Jason Cong 33

G0

G1

•Tile coarsening

Gk

Downward Pass — Capacity Propagation

Jason Cong 34

Downward Pass — Tile Coarsening• Tile Mergence

Ti,j

Ti,j+1 Ti+1,j+1

Ti+1,jGi Gi+1

T’i,j

level i level i+1

• Estimate resources on the coarser tiles from finer tiles

T1 T2

T3 T4

T

Page 18: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 18

Jason Cong 35

Downward Pass — Resource Reservation

• Motivation: consider local net effect– Accurate congestion estimation– Avoid wasting planning efforts

• Approach: estimate and reserve the resource for local nets– Maze routing for local nets during coarsening– Deduct resource on corresponding coarser level routing

edges– Incur little runtime increase – Flexible route

Jason Cong 36

Downward Pass — Reservation Calculation

• Example: given 2 pins s and t on horizontal layer

s

A B

C D

t

A B

C D

t

s

A B

C D

s

rCD= w*v2/vv2

• reservation amount = the total resource taken by the paths of local nets

rBD = w*h1/hrAC = 0h

h1

rBDrAC rAB = w*v1/vv

v1

rAB

rCD

Page 19: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 19

Jason Cong 37

Downward Pass — Effects: Approach

Without

Reservation

With

Reservation

Jason Cong 38

G0

G1

Gk

• Initial routing by flow-based algorithm

Initial Routing at Coarsest Level

Page 20: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 20

Jason Cong 39

• Start the planning at the coarsest level

Multicommodity Flow-based Initial Routing

• Advantages of flow-based algorithm– Fast enough for coarsest grids– More global view– Can be integrated with performance optimization by

including high-performance topologies, such as A-Tree, BA-Tree, and P-Tree

• Used the approximate algorithm in [Albrecht, ISPD’00]– Minimize the overall congestion– Randomized Rounding– Rely on later levels to remove overflow

Jason Cong 40

Multicommodity Flow-based Initial Routing • Global Routing Problem can be formed as a mixed integer linear programming (NP-

hard) problem : assuming there are li candidate Steiner tree for each net i

λ – maximum congestion, Ti,j – the jth Steiner tree for net i,e – edge of global routing graph, wi,e – cost of net i to go through e, c(e) – capacity of e, k – number of nets to be routed,xi,j – 0 or 1, indicating whether Pi,j is selected for net Ili – candidate tree number of net i

Page 21: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 21

Jason Cong 41

Multicommodity Flow-based Initial Routing• linear programming relaxation → fractional global routing

problem

• can be solved optimally by fast matrix multiplication: slow• approximate, combinatorial algorithms: faster, with error

bound

Jason Cong 42

Approximation Algorithm for Fractional Global Routing

• originally used as approximation for multi-terminal multi-commodity flow problem

• associate each edge with a length , which is related with the congestion at e

• at any step, route a unit flow along the minimum Steiner tree

• then multiply every edge on the tree with long edges ↔ congested edges

• after sufficient many steps, say X, there are a flow number Xi,j , assigned to the jth candidate tree of net i, and Xi,j /X is the fractional flow for net i on the jth tree.

Page 22: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 22

Jason Cong 43

Approximation Algorithm for Fractional Global Routing

– xi,ji is the flow on Ti,ji

– ye is the length of edge e– Zi is the current total

cost for net I– Wi,e is the width of net i

at edge e– δ , γ , ε are

parameters of the algorithm.

– Implementation: δ can be 1 (related to the error bound), γ between 7 and 10, ε between 0.6 and 2.0

Jason Cong 44

G0

G1

•Route refinement

Gk

Multilevel Routing Framework

Page 23: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 23

Jason Cong 45

Upward Pass — Incremental Refinement• Refine the coarser level results at the finer level• Use A* algorithm to refine the path for each net• Use the coarser level results as a guide

L1 L2

Local nets

N1

N2

N3

Global nets

preferred region for N3

Routing graph for N3

Lower cost

Higher cost

Jason Cong 46

Upward Pass — Graph Based Steiner Tree Heuristic : Motivation

• Minimum spanning tree in MRS– Decompose multi-pin connection into 2-pin connections using

geometric MST– Each 2-pin connection is treated as a different net– Unnecessary long wires cause extra congestion

• Steiner tree approach– Simplistic approach– Congestion driven construction– Whole tree refinement

Page 24: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 24

Jason Cong 47

c

ba

Upward Pass — Graph Based Steiner Tree Heuristic : Approach

(2)

• Tree Construction– Starting from a geometric MST– Hit and stop

• Steiner tree refinement– A list of edges first sorted by

length – Connect newly appeared nodes

first– Refine the remaining edges– Keep the order of subnets at every

level(1)

ba

c

d e

(2) (3)

(4)

(1)(1)

b

a

d

c

f

e

(1)

(3)

(4)

(2)

(5)

Jason Cong 48

Upward Pass — Multi-iteration Refinement: Motivation

• Problem of single iteration refinement– Level to level refinement– May suffer from net ordering within one level – Multi-iteration not meaningful due to local net

effect– Takes more effort to correct errors introduced

on coarser levels

Page 25: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 25

Jason Cong 49

Upward Pass — Multi-iteration Refinement: Approach

• History based multi-iteration refinement – First proposed in [Nair, TCAD’87 ], later used in PathFinder

[McMurchie et al, FPGA Symp’95]– Iteratively update each edge’s cost with the consideration of

historical congestion information – Reroute all the nets based on the new edge cost functions

• Cost function used in MARS( , ) * ( , ) * ( , )cost e i congestion e i history e iα β= +

( , ) ( , 1) * ( , 1)history e i history e i congestion e iγ= − + −

Jason Cong 50

Hierarchical vs. Multilevel Routing

Hierarchical MethodsCoarse-level decisions constrain the fine-level solution.

Multilevel Methods Coarse-level decisions only guide the fine-level solution.

Page 26: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 26

Jason Cong 51

Incremental Refinement

level i planning result

N1

N2

N3

Gi

N1

N2

N3

Gi

Multilevel Routing Hierarchical Routing

Jason Cong 52

Incremental Refinement

level i-1: local nets routing

N1

N2

N3

L1 L2

Gi-1

N1

N2

N3

L1 L2

Gi-1

Multilevel Routing Hierarchical Routing

Page 27: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 27

Jason Cong 53

Incremental Refinement

N1

N2

N3

L1 L2

Gi-1

N1

N2

N3

L1 L2

Gi-1

Hierarchical RoutingMultilevel Routing

level i-1: global nets refinement

Jason Cong 54

Incremental Refinement

preferred region for N3

N1

N2

N3

L1 L2

Gi-1

N1

N2

N3

L1 L2

Gi-1

Hierarchical RoutingMultilevel Routing

Page 28: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 28

Jason Cong 55

Incremental Refinement

refinement for N3

N1

N2

N3

L1 L2

Gi-1

N1

N2

N3

L1 L2

Gi-1

Local Congestion!

Hierarchical RoutingMultilevel Routing

Jason Cong 56

Overview of Gridless Detailed Routing Problem

• Gridless Routing Engine -- Efficient routing graph construction and representation [ICCAD’99]

• Extended maze searching algorithm [ISPD’99, TCAD’00]

• Summery and future works

Page 29: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 29

Jason Cong 57

Overview of Gridless Detailed Routing Problem

• Efficient routing graph construction and representation

• Maze searching algorithm• Summery and future works

Jason Cong 58

Motivations & Challenges in Routing Graph Construction

• Motivations in routing graph construction– Graph determines possible routes– Graph determines potential searching space– Graph representation determines searching speed

• Challenges in high performance design– Gridless routing requirements– Large amount of objects

Page 30: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 30

Jason Cong 59

Existing Routing Graph:Tile-based Approach

•Tile Partition

•Corner-StitchingData Structure

•A Tile-to-TileSearching

s

t

T1

T2 T4

T3

T7

T5

T6

Jason Cong 60

Difficulties of Tile-based Approach

•Point Finding

•Neighbor Finding

Page 31: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 31

Jason Cong 61

Existing Routing Graph:Uniform Grid Approach

•Uniform Grids

•Large Searching Space

•Explicit or ImplicitRepresentations

•Huge Memory forExplicit Representation

Jason Cong 62

Existing Routing Graph:General Graph

•Computed Based onBoundary Extensions

•Sparser than Uniform-Grids

•Difficult for ImplicitRepresentations

Page 32: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 32

Jason Cong 63

Features of Our Approach[ICCAD’99]

• Use non-uniform grid graph– Smaller comparing with uniform grid approach

• Use implicit representation – Further saves memory

• Efficient query data structure– Fast in answering rectangle intersection queries– Exploring localities in routing queries

Jason Cong 64

Obstacle Expansion for Gridless Routing

• Expansion of obstacles according to width rule and spacing rule

Ww=4 Sw=2Ew=Ww/2+Sw

Page 33: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 33

Jason Cong 65

Obstacle Expansion for Gridless Routing

• Expansion of obstacles according to width rule and spacing rule

Ww=4 Sw=2Ew=Ww/2+Sw

Jason Cong 66

Obstacle Expansion for Gridless Routing- The Via Rules

• Expansion of obstacles according to width rule and spacing rule

Ww=4 Sw=2Ew=Ww/2+SwWv=6 Sv=2Ev=Wv/2+Sv

Page 34: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 34

Jason Cong 67

Obstacle Expansion for Gridless Routing -Multi-layer Routing

• Expansion of obstacles according to width rule and spacing rule

Ww=4 Sw=2Ew=Ww/2+Sw

Ww=6 Sw=2

Jason Cong 68

S

T

Non-uniform Grid Graph GS

• Given a set of obstacles and a source s and sink t• GS is an orthogonal grid graph

Page 35: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 35

Jason Cong 69

Strong Connection Graph GS

• Definition:– A graph contains at least on of shortest path from

source (s) to sink (t) if such paths exist

• Theorem:– The expansion graph Gs constructed by our

algorithm is a strong connection graph

• Proof is based on a multi-layer extension of [zheng96]

Jason Cong 70

S

T

Implicit Representation of GS

y1

y2

y3

y4

y5

y6

y7

y8

x1 x3 x4x2 x5 x6 x7 x8 x9 x10

• Store x, y locations in arrays• Space Pre-Construction)(NO )log( NNO

Page 36: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 36

Jason Cong 71

Searching on GS

y1

y2

y3

y4

y5

y6

y7

y8

x1 x3 x4x2 x5 x6 x7 x8 x9 x10

• Determine the location of neighboring node: easy

T

S

• Determine if the location is valid: difficult

Free?

Jason Cong 72

Point Enclosure Query• Given a set of rectangles and a query point q• Query: if the query point is contained by any of the

given rectangles

a

b

dc

q

Page 37: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 37

Jason Cong 73

Segment-based Query

• Merge expanded rectangles into non-overlapping polygons– Line-sweeping algorithm [NP82]

• Represent the polygons using the boundary segments

• Determine the point enclosure query using a ceiling query

Jason Cong 74

Segment-based Query: Expansion

Expansion

Page 38: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 38

Jason Cong 75

Segment-based Query: Line-sweeping

Jason Cong 76

Segment-based Query: Ceiling Query

qp

Page 39: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 39

Jason Cong 77

Segment-based QueryAlgorithms

• Range tree• Segment tree• Interval tree• Priority tree

Jason Cong 78

Segment Query Problem

Y1

Y2

Y3Y4

Y5

Y6

Y7

Y8

X1 X2 X3 X4 X5

q

S1 S2S3

S4S5 S6

S8

S10S9

S7

Page 40: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 40

Jason Cong 79

Range Tree [Ben79, BM80]

• Two-level binary search tree structure– First-level is built on y coordinates– Second-level is a sorted list of segments using their x

coordinates

• Complexity– O(n) space;– O(n) query;– O(nlogn) build up and O(logn) insert & delete.

Jason Cong 80

Range Tree Example

Y1

Y2

Y3Y4

Y5

Y6

Y7

Y8

X1 X2 X3 X4 X5

S1 S2 S3

S4S5 S6

S8

S10S9

S7

S9

S2

S1

S4

S5

S8

S7

S3

S6

S10

Page 41: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 41

Jason Cong 81

Segment Tree [Ben77]

• Two-level tree structure– First-level uses x coordinates as leaves– Segments are stored in the highest tree nodes that is fully

covered by the segment– Second-level tree use sorted segments based on y coordinate

• Complexity– O(nlogn) space– O(log2n) query– O(nlogn) build up and O(log2n) insert & delete

Jason Cong 82

Segment Tree Example

X2X1 X3 X4 X5

S3 S6

S2 S5

S10S8S9

S3 S6

S3 S6

S1 S4

S7 S9

S2 S5

S8 S10

S9S7

Y1

Y2

Y3Y4Y5Y6

Y7

Y8

X1 X2 X3 X4 X5

S1 S2 S3

S4S5 S6

S8

S10S9

S7

Page 42: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 42

Jason Cong 83

Interval Tree [Ede83]

• Improvement over segment tree– Each edge is stored once in the lowest tree level that contains it– Each node stores two sorted lists of left/right end-points of

segment

• Complexity– O(n) space– O(logn + k) query (where k is the # intervals cover p)– O(nlogn) build up and O(logn) insert & delete

Jason Cong 84

Interval Tree Example

X1 X2 X3 X4 X5

S1 S4

S3 S6

S2 S5

S10S8

S7 S9

Y1

Y2

Y3Y4Y5Y6

Y7

Y8

X1 X2 X3 X4 X5

S1 S2 S3

S4S5 S6

S8

S10S9

S7

Page 43: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 43

Jason Cong 85

Priority Tree [McC85]

• Answers range query– Given a set of 2-D points <xi, yi>, returning the points that falls

into the range (-∞, xq], [yq, + ∞)– We can map the ceiling query into a range query by

considering the x coordinates

• Complexity– O(n) space– O(logn+k) query– O(nlogn) build up and O(logn) insert & delete

Jason Cong 86

(xq, xq)

Range Query

X1 X2 X3 X4 X5

(x1, x2)(x1, x3)

(x3, x4)

(x4, x5)

Y1

Y2

Y3Y4Y5Y6

Y7

Y8

X1 X2 X3 X4 X5

S1 S2 S3

S4S5 S6

S8

S10S9

S7

Page 44: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 44

Jason Cong 87

Priority Tree Example

(x4, x5)

(x3, x4)(x1, x3)

(x1, x2)S1 S4

S7 S9

S3 S6

S2 S5

S8 S10

Jason Cong 88

Summary of Segment-based Queries

Algorithm Initialize Insert Delete Query Memory

Range Tree O(nlogn) O(logn) O(logn) O(n) O(n)

Segment Tree O(nlogn) O(log2n) O(log2n) O(log2n) O(nlogn)

Interval Tree O(nlogn) O(logn) O(logn) O(logn+k) O(n)

Priority Tree O(nlogn) O(logn) O(logn) O(logn+k) O(n)

Page 45: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 45

Jason Cong 89

Rectangle-based Query• Given a set of rectangles and a query point q• Query: if the query point is contained by any of the

given rectangles

a

b

dc

q

Jason Cong 90

Rectangle-based Query Algorithms

• K-D tree• Quad-list quad tree• Multiple storage quad tree• HV/VH tree• 1-D and 2-D indexing

Page 46: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 46

Jason Cong 91

K-D Tree [Ben75]

• Binary tree is a binary tree that uses k-keys iteratively

• Complexity– O(n) space– O(logn) query– O(nlogn) build up and O(logn) insert & delete

Jason Cong 92

K-D Tree Example

c

a b

d

Use XR

Use YB

Use XL

Page 47: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 47

Jason Cong 93

Quad-list Quad Tree [Ked82]

• Routing region is equally divided into four sub-regions

• Rectangles that intersect with the cut-lines are store in the quad-list implemented as a binary tree

• Rectangles that fall within the sub-regions are stored in the sub-trees

Jason Cong 94

Quad-list Quad Tree Example

a

b

dc

q

b c

da

Page 48: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 48

Jason Cong 95

Multiple Storage Quad Tree[Bro86, WP89]

• Do not store rectangles on cut-lines• Store multiple copies of rectangle at the leave

nodes

Jason Cong 96

Multiple Storage Quad Tree Example

a

b

dc

qdac

c b

b

Page 49: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 49

Jason Cong 97

HV/VH Tree [LFW93]

• Contains two types of nodes: V-node and H-node

• Each node represents a vertical or horizontal cut-line

• H-nodes and V-nodes are interleaving in the overall tree structure

Jason Cong 98

c

HV/VH Tree Examples

a

b

dc

q

b

a

H-node

d

V-nodes

Leaf nodes

Page 50: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 50

Jason Cong 99

1-D and 2-D Indexing

• Practical data structures• Taking advantages of VLSI designs• Simple to build up• Using 1-D or 2-D indexing to speedup practical

query operation

Jason Cong 100

1-D Indexing Example

a

d

db

a

b

dc

q

c

a

b

c

Page 51: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 51

Jason Cong 101

2-D Indexing Example

a

b

dc

q

a

a

c

c

a

b, c, d

c, d

Jason Cong 102

Our 2-D Query Data Structure

• Drawbacks of existing 1/2-D indexing structure– Inefficient in search many small objects in a slice– Need multiple expansion of all obstacles for routing wires of

different width and/or spacing– Do not explore the locality of maze queries

• Our data structure– 2-D query data structure– Do not pre-expand obstacles– Effective cache structure

Page 52: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 52

Jason Cong 103

Our 2-D Query Data Structure

a

b

dc

q

Data Structure

Is q in free space

Query

c b,d

Jason Cong 104

Caching

a

b

dc

q

Cache is an array that storesprevious query results

Caching Obstacles

Caching Empty Area

Page 53: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 53

Jason Cong 105

Summary of Rectangle-based Queries

Algorithm Initialize Insert Delete Query MemeoryK-D Tree O(nlogn) O(logn) O(logn) O(logn) O(n)BQT O(n2) O(n) O(n) O(n) O(n)MSQT O(n2) O(n) O(n) O(n) O(n2)

HV/VH Tree O(n2) O(n) O(n) O(n) O(n)1/2-DIndexing

O(n) O(1) O(1) O(n) O(n)

Slit+Interval O(n) O(logn) O(logn) O(n) O(n)

Jason Cong 106

Run Time of Segment-based Query Algorithms

Range Tree Segment Tree Interval TreeDeutsch 1209 1186 1178Bus100 1085 1096 1032Tile0 4893 6559 4927Tile1 3531 4528 3442Tile2 5202 6971 5153Tile3 5311 6727 5115Tile4 3461 4154 3338

Page 54: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 54

Jason Cong 107

Run Time of Rectangle-based Query Algorithms

Slit+Interval Tree K-D TreeExample QueriesInit Q.N.C. Q.C. Init Query

Biomedm1 1,000,000 2.86 9.71 1.97 1.15 18.30Biomedm2 1,000,000 2.83 6.58 1.58 1.14 17.57Biomeds1 1,000,000 2.86 7.60 1.74 1.17 16.83Biomeds2 1,000,000 2.87 8.01 1.62 1.17 17.97Mix1 1,000,000 3.05 9.87 1.75 1.36 18.51Mix2 1,000,000 5.45 10.39 2.05 2.77 19.33Mix3 1,000,000 3.13 8.36 1.50 1.33 17.79Ratio 2.35 0.47 0.10 1.00 1.00

Jason Cong 108

Run Time on Rectangle-based Query Algorithms [LFW93]

BQT HV/VH K-D QLQT HQT

Init Qry Init Qry Init Qry Init Qry Init Qry

Test1 0.08 0.93 0.09 0.95 0.25 1.48 0.13 1.04 0.17 0.07

Test2 0.20 2.02 0.23 2.04 0.55 2.93 0.31 1.74 0.35 1.31

Test3 0.55 11.06 0.67 10.24 1.46 16.74 1.11 8.36 1.19 5.56

Ratio 0.40 0.66 0.41 0.65 1.00 1.00 0.60 0.59 0.70 0.41

Page 55: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 55

Jason Cong 109

Experiment and Comparative Studies

70117225668232741.5 x 3192.8Eco-737224013959232926.1 x 1676.8Eco-61969477542231556.6 x 1676.8Eco-52326336417231372.5 x 1608.6Eco-42320046417531372.5 x 1593.3Eco-32324536417231372.5 x 1593.3Eco-22323096417331372.5 x 1593.3Eco-1RectsCellsPinsLayersDimensionEx.

• Examples

• Comparing– Explicit Uniform Grid Graph– Iroute from Magic Layout Editor [Arnold 88]

Jason Cong 110

Comparison of Memory Usage Unit: MB

3.01.0014.3Ratio

84.743.6641.1Eco-7

52.615.9359.4Eco-6

35.212.7191.0Eco-5

32.610.9161.7Eco-4

32.67.2160.2Eco-3

32.710.9160.2Eco-2

32.710.9160.2Eco-1

IrouteNon-Uni. GridUni. GridsEx.

Page 56: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 56

Jason Cong 111

Comparison of Runtime and ECO Routing Quality

47591 / 2079.7935690 / 7438.2Eco-7

56423 / 2074.2937858 / 7024.7Eco-6

34543 / 1243.1427061 / 5412.3Eco-5

24385 / 15357.3921760 / 12224.0Eco-4

36593 / 10368.7034736 / 11034.5Eco-3

13162 / 6226.5811332 / 446.3Eco-2

22629 / 8942.1517374 / 6619.1Eco-1

IrouteResult(wl/vc)Time(s)

Non-UniformResult(wl/vc)Time(s)

Ex.

Jason Cong 112

Conclusion of Routing Graph andQuery Data Structure

• Non-uniform grid graph GS and its implicit representation

• Efficient query data structures• Efficient for ECO routing

– Smaller : 14x smaller than uniform grid and 2-3x smaller than Iroute

– Faster : 2-4x faster than Iroute with comparable or better results

Page 57: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 57

Jason Cong 113

Overview of Gridless Detailed Routing Problem

• Efficient routing graph construction and representation

• Maze searching algorithm• Summery and future works

Jason Cong 114

Review of Maze Routing Algorithm

• Basics of maze algorithms:

a

b c d

q

s

t Connection GraphPoint-by-point Expan-sion strategy based on the dynamic program-ming principleSort wavefront nodes according to their costs using a priority queue

L1

L2

L3

Page 58: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 58

Jason Cong 115

Optimality of Maze Algorithm

• Monotone cost function– Longer path has a higher cost– Outward expansion

• Satisfies dynamic programming principle– Local optimality leads to global optimality– Every node is expanded at most once!

Jason Cong 116

Variations of Maze Algorithm

• Optimal solutions:– A* algorithm [Hadlock’77]– Enhanced representations [Soukup’92]

• Other solutions– Bounded solutions– Heuristics

• Soukup’s algorithm [Soukup’78]• Line-probe algorithm

Page 59: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 59

Jason Cong 117

Challenges in Implicit Graph Routing

• On-the-fly computation of graph nodes

a

b c d

q

s

t

L1

L2

L3 •Wavefront nodes vs.visited nodes

•Visited nodes storeback-links

Jason Cong 118

Features of Our Approach[ISPD’99, TCAD’00]

• Path-based maze routing algorithm– Distinguish the representation of routing graph and

the representation of maze searching– Removing visited nodes via explicit path

representation in Wavefront nodes– Flexible design rule supports in detailed routing

Page 60: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 60

Jason Cong 119

Path-based Maze Algorithm

• Separation of routing graph and maze searching• Storing paths explicitly in the Wavefront nodes

•Remove visited nodesand back-links

•Store back-pathsexplicitly in wavefrontnodesa

b c d

q

s

t

L1

L2

L3

Jason Cong 120

Flexible Design Rule Support:Via Design Rules

Metal1

Metal2

Metal3

Via1

Via2

W1 W2

W3

e1

W1S1

S1S2

S3 S5S4

Page 61: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 61

Jason Cong 121

a

b c d

q

s

t

Min. via-to-via spacing = 2

Simple Example

One-the-fly checking will not find connection!

L1

L2

L3

Jason Cong 122

Our Observation

a

b c d

q

s

t

We can find the optimal solution by exploringnodes multiple times!

Min. via-to-via spacing = 2

L1

L2

L3

Page 62: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 62

Jason Cong 123

a

b c

s

t

L1

L2

L3

Definition: β -Nodes

• Optimal path to β -node is not part of an optimal design rule correct path

• Impact of β -node– Dynamic Programming Principle no more holds!

β -node

Jason Cong 124

Problem Formulation

• Given– Given a gridded connection graph– Ki be the minimum via-to-via spacing between layer

i and i+1

• Find– Via-rule correct optimal path

Page 63: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 63

Jason Cong 125

Our Solution to Via Problem

• Allow multiple expansion at each node• Encode distance to the last via

– Extended connection graph

Jason Cong 126

a

b c d

q

s

t K=2

Extended Connection Graph

0-112

Expand each nodeinto 2K nodesEdge (ui, vi+1) ifv is to the right of uDi-edge e(ui, vi-1) if v is to the left of uEdge e(uk, v0) and e(vk, u0)

L1

L2

L3

|)|(|'| VKOV = |)|(|'| EKOE =

Page 64: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 64

Jason Cong 127

Expansion on Ext. Conn. Graph

0-112

sa

bq

c dt

L1

L2

L3

Jason Cong 128

0-112

sa

bq

c dt

Implicit Multi-path Searching on Ext. Conn. Graph

Step node priority queue dictionarystart {0,s} {s,s}1 s {1,c0}{1,a} {c0,sc}{a,sa}2 c0 {1,a}{2,b-1} {a,sa}{b-1, scb}

{2,d1} {d1,scd}… …Done

Page 65: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 65

Jason Cong 129

Routing Example

s

t

Jason Cong 130

Comparison on Random Examples

109/50.9%214/35.9%59696x964test4

160/79.6%201/39.6%50796x304Test3

81/56.3%144/17.8%80796x963Test2

94/66.2%142/15.7%90796x303Test1

OptimalTotalLayers

Improved Examples# netsX/Y GridsNum.Ex.

Page 66: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 66

Jason Cong 131

Conclusions of Maze Routing Algorithm

• Distinguish routing graph and maze searching• Efficient maze searching algorithm

– Representing Wavefront nodes only– Path-based algorithm

• Flexible support for design rules• A multi-path algorithm for practical via rules

Jason Cong 132

Local Refinement

S1

S2

S3

T1

T2T3

Page 67: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 67

Jason Cong 133

Local Refinement

S1

S2

S3

T1

T2T3

Jason Cong 134

Local Refinement

S1

S2

S3

T1

T2T3

Page 68: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 68

Jason Cong 135

Ripup & Re-planning

S1

S2

S3

T1

T2T3

Jason Cong 136

Summary of Gridless Detailed Routing Engine ― Dune

• Implicit representation of non-uniform grid graph

• Efficient query data structure• Path-based maze search algorithm

Page 69: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 69

Jason Cong 137

Experimental Results

42589

32210

125661056241854734

1122629415471

25024

3101

Pin

4

3

44336656

4

Level

28177312940 × 6710S38584

21035311430 × 6180S38417

832137040 × 3880S15850699536590 × 3640S13207277434020 × 2230S9234312434330 × 2370S53788197310438 × 6468Primary2203737552 × 4988Primary1355134903 × 4904Struct75414152400 × 152400Mcc2

1694439000 × 45000Mcc1

NetLayerDimension (μm)Examples

• Examples

Jason Cong 138

N/A

5441.2

N/A

3356.2

2-level

Runtime(s)

N/A

90.9%

N/A

91.75%

2-level

Completion Rate

12333.6

1311

2515

1507.1

3-level

99.1%

99.4%

93.7%

96.5%

MRS

92.2%7644.8Mcc2

96%436.7Mcc1

90.7%1227.6standard cell (20k-30k)

93.1%548.9standard cell (2k-10k)

3-levelMRS

Experimental Results• MRS vs. 2-level and 3-level routing flows

2-level: wireplanning + detailed routing3-level: global routing + pin assignment + wireplanning + detailed routingMRS: first version of multilevel routing system, without resource reservation, steiner tree decomposition and iterative refinement

Page 70: Approaches to Multi-Layer Routing - UCLAcadlab.cs.ucla.edu/~cong/CS258F/chap8_03.pdf · Approaches to Multi-Layer Routing ... solution YK3a 15 15 1 0 0 8 8 YK3b 17 17 1 0 0 9 9 YK3c

CS258F 1998F

Prof. J. Cong 70

Jason Cong 139

Experimental Results

circuit #failed nets runtime(s) #failed nets runtime(s)S5378 21 31.7 0 36.1S9234 14 20.4 0 25.4S13207 80 85.9 0 105.1S15850 89 171.2 1 130.4S38417 177 459.7 3 466.7S38584 304 791.9 1 664.9Struct 4 154.7 0 50

Primary1 1 135.8 0 36.9Primary2 0 533.5 0 134.2

Mcc1 17 521.3 0 134.6Mcc2 826 28833 46 4367.4

Raytheon 16 28 13 28.3Avg. 1 1 0.075 0.71

• MRS vs. MARS

Jason Cong 140

Future Work

• Non-uniform routing tiles for multilevel planning• Integration with other multilevel physical design

systems, i.e., partitioning, placement, etc.