590 likes | 750 Views
Maze Routing Steiner Trees With Delay vs. Wire Length Trade-off. Renato Hentschke Jaganathan Narasimham Marcelo Johann Ricardo Reis. Universidade Federal do Rio Grande do Sul {renato,johann,reis}@inf.ufr gs.br. IBM - Thomas Watson RC jagan@us.ibm.com. ISPD 2007.
E N D
Maze Routing Steiner Trees With Delay vs. Wire Length Trade-off Renato Hentschke Jaganathan Narasimham Marcelo Johann Ricardo Reis Universidade Federal do Rio Grande do Sul {renato,johann,reis}@inf.ufrgs.br IBM - Thomas Watson RC jagan@us.ibm.com ISPD 2007
Where are the rest of us from? Porto Alegre RS - Brasil
Let us start with a little… This work presents… AMAZE FAQ
An algorithm for single net Steiner Tree construction that uses A* searches and trades-off WL for delay Actual Routing Tree Topologies What is AMAZE? Can do both
Steiner Trees are used for estimation and perhaps global routing Maze Router is widely used for actual routing (global or detailed) Somewhere in the flow we decompose the nets by setting Steiner points or just forget our Steiner Trees and let the router run… In which context AMAZE fits in?
Maze Router has a lot of potential: Net ordering can be aliviated by negotiation Speed can be improved (a lot) with A* searches and by tuning data structures Memory is not a concern for most applications Degrees of freedom can be exploited to get quality results, e.g., good Trees Keep Maze router’s nice properties What is the motivation?
What about: Within 2% from optimal Steiner Trees? From 26% to 40% improvement in delay compared to AHHK? From 1% to 30% improvement in delay compared to P-Trees? As fast as any heuristic Steiner Tree algorithm How good can AMAZE be?
AMAZE Is AMAZE a new algorithm at all? Standard techniques: New Contributions A* search Our Biasing Multiple src tgts Sharing factor Hannan Grid Path Length factor Data Structures
The main weaknesses are (currently): Cannot guarantee efficiency (speed) or quality (good trees) with costs that vary too much. Problem for global routing that has to model congestion We have not checked if early estimation matches actual routing if context changes What not to expect from AMAZE?
Delay and WL trade-off Properties of A* Creating Steiner Trees with A* Improving Wirelenght Improving Delay to critical sinks Experimental results Concluding remarks Outline
1. Delay and WL trade-off MRST MRSA BRST Star CSA
Expand more promising nodes first, acording to: f(n) = g(n) + h(n) Intermediate searched space origin goal g(n) h(n) Complete Search 2.Basics of A* Effect of better estimation (higher h)
g= h= f = g=0 h=3 f =3 g= h= f = g= h= f = g= h= f = g= h= f = g= h= f = g= h= f = g= h= f = g= h= f = g= h= f = g= h= f = g= h= f = c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=2 c=2 c=2 c=2 c=2 c=2 c=2 Non uniform costs 1 2 3 4 6 7 8 9 10 13 14 15 11 Open List: 7
g= h= f = g= h= f = g=1 h=4 f =5 g=0 h=3 f =3 g= h= f = g=1 h=5 f =5 g= h= f = g= h= f = g=2 h=2 f =4 g= h= f = g= h= f = g=1 h=4 f =5 g= h= f = c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=2 c=2 c=2 c=2 c=2 c=1 c=2 c=1 c=1 c=2 Non uniform costs 1 2 3 4 6 7 8 9 10 13 14 15 11 Open List: 8, 1, 13, 6
g=3 h=3 f =6 g= h= f = g= h= f = g= h= f = g= h= f = g=1 h=4 f =5 g= h= f = g=1 h=4 f =5 g=3 h=3 f =6 g=2 h=2 f =4 g=4 h=1 f =5 g=1 h=4 f =5 g=0 h=3 f =3 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=2 c=2 c=2 c=2 c=2 c=1 c=2 c=1 c=1 c=2 Non uniform costs 1 2 3 4 6 7 8 9 10 13 14 15 11 Open List: 1, 13, 6, 9, 2, 14
g= h= f = g= h= f = g=0 h=3 f =3 g=3 h=3 f =6 g=4 h=1 f =5 g= h= f = g= h= f = g= h= f = g=1 h=4 f =5 g=1 h=4 f =5 g=3 h=3 f =6 g=2 h=2 f =4 g=1 h=4 f =5 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=2 c=2 c=1 c=2 c=1 c=2 c=2 c=2 c=2 Ties Non uniform costs 1 2 3 4 6 7 8 9 10 13 14 15 11 Open List: 1, 13, 6, 9, 2, 14
g= h= f = g= h= f = g=0 h=3 f =3 g=3 h=3 f =6 g=4 h=1 f =5 g= h= f = g= h= f = g= h= f = g=1 h=4 f =5 g=1 h=4 f =5 g=3 h=3 f =6 g=1 h=4 f =5 g=2 h=2 f =4 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=2 c=2 c=2 c=1 c=1 c=1 c=2 c=2 c=2 c=2 Non uniform costs 1 2 3 4 6 7 8 9 10 13 14 15 11 Open List: 1, 13, 6, 9, 2, 14 But not critical as f * = 6
g= h= f = g= h= f = g= h= f = g= h= f = g= h= f = g= h= f = g= h= f = g=0 h=4 f =4 g= h= f = g= h= f = g= h= f = g= h= f = g= h= f = c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 Uniform costs 1 2 3 4 6 7 8 9 10 13 14 15 11 Open List: 13
g=1 h=3 f =4 g= h= f = g= h= f = g= h= f = g= h= f = g= h= f = g= h= f = g=1 h=3 f =4 g=0 h=4 f =4 g= h= f = g= h= f = g= h= f = g= h= f = c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 Critical Ties 1 2 3 4 6 7 8 9 10 13 14 15 11 Open List: 14,7 f(14) = f(7) = f *
g=1 h=3 f =4 g= h= f = g=2 h=2 f =4 g= h= f = g= h= f = g= h= f = g= h= f = g=0 h=4 f =4 g= h= f = g=2 h=2 f =4 g= h= f = g= h= f = g=1 h=3 f =4 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 Can choose what you want 1 2 3 4 6 7 8 9 10 13 14 15 11 Open List: 15,8,7
g=3 h=1 f =4 g=3 h=1 f =4 g= h= f = g=2 h=2 f =4 g= h= f = g=0 h=4 f =4 g= h= f = g=1 h=3 f =4 g=2 h=2 f =4 g= h= f = g= h= f = g=1 h=3 f =4 g=3 h=3 f =6 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 worst c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 best Nodes close to the target first 1 2 3 4 6 7 8 9 10 13 14 15 11 Open List: 11,9,8,7
g=0 h=4 f =4 g=4 h=0 f =4 g= h= f = g=1 h=3 f =4 g=3 h=1 f =4 g= h= f = g=2 h=2 f =4 g=1 h=3 f =4 g=3 h=1 f =4 g=3 h=3 f =6 g= h= f = g=2 h=2 f =4 g= h= f = c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 Nodes close to the target first 1 2 3 4 6 7 8 9 10 13 14 15 11 Open List: 15,7,2,3 Only four nodes expanded
g=4 h=0 f =4 g= h= f = g=3 h=1 f =4 g= h= f = g=1 h=3 f =4 g=0 h=4 f =4 g=3 h=1 f =4 g=2 h=2 f =4 g=1 h=3 f =4 g= h= f = g= h= f = g=2 h=2 f =4 g=3 h=3 f =6 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 Degree of freedom But pay attention to: 1 2 3 4 6 7 8 9 10 13 14 15 11 Open List: 15,7,2,3
g=4 h=0 f =4 g= h= f = g=3 h=1 f =4 g= h= f = g=1 h=3 f =4 g=0 h=4 f =4 g=3 h=1 f =4 g=2 h=2 f =4 g=1 h=3 f =4 g= h= f = g= h= f = g=2 h=2 f =4 g=3 h=3 f =6 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 Degree of freedom But pay attention to: 1 2 3 4 6 7 8 9 10 13 14 15 11 Open List: 15,7,2,3
g=4 h=0 f =4 g= h= f = g=3 h=1 f =4 g= h= f = g=1 h=3 f =4 g=0 h=4 f =4 g=3 h=1 f =4 g=2 h=2 f =4 g=1 h=3 f =4 g= h= f = g= h= f = g=2 h=2 f =4 g=3 h=3 f =6 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=1 Degree of freedom But pay attention to: 1 2 3 4 6 7 8 9 10 13 14 15 11 Open List: 15,7,2,3
g=0 h=4 f =4 g=1 h=3 f =4 g= h= f = g= h= f = g= h= f = g= h= f = g= h= f = g=2 h=2 f =4 g= h= f = g= h= f = c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=2 c=1 c=1 c=2 c=1 c=2 With Hannan Grid 1 3 4 6 7 9 10 13 15 11 Open List: 15,7 Freedom was lost… unless
g=0 h=4 f =4 g=1 h=3 f =4 g= h= f = g= h= f = g= h= f = g= h= f = g= h= f = g=2 h=2 f =4 g= h= f = g= h= f = c=1 c=1 c=1 c=1 c=1 c=1 c=1 c=2 c=1 c=1 c=2 c=1 c=2 With Hannan Grid 1 3 4 6 7 9 10 13 15 11 Open List: 15,7 We check number of steps
Simple ties f = f all expanded Critical ties f=f=f* break for efficiency Depth ties f=f=f* and g=g true freedom Stepped depth ties f=f=f* and s=s w/Hannan Net result: Best efficiency, freedom to chose the paths Summary
Sinks are added one by one Multiple Sources connected tree Which target to connect next? Multiple Targets select the best accounts for blockages h function sees all sinks chosen target ct(n) used for speed First route all critical sinks (later on) 3.Creating Steiner Trees with A*
Formation of Trees Multi-pin nets h Multiple sources and targets Sources: Targets: Heuristic attracts search to closest node
Formation of Trees Multi-pin nets Multiple sources and targets Sources: Targets:
Formation of Trees Multi-pin nets Multiple sources and targets Sources: Targets:
Formation of Trees Multi-pin nets Multiple sources and targets Sources: Targets:
Formation of Trees Multi-pin nets Multiple sources and targets Sources: Targets:
Formation of Trees Multi-pin nets Multiple sources and targets Sources: Targets:
Formation of Trees Multi-pin nets Multiple sources and targets Sources: Targets:
Formation of Trees Multi-pin nets Multiple sources and targets Routing is complete for this simple case… But other pin dispositions require expertise
Sinks are added one by one Multiple Sources connected tree Which target to connect next? Multiple Targets select the best accounts for blockages h function sees all sinks chosen target ct(n) used for speed First route all critical sinks (later on) Select targets with A*
Share as many segments as possible Use decision points (freedom) to chose paths closer to other pins Performed by the biasing funcion called when stepped depth ties happen 4.Improving Wirelenght
1. Eliminate nodes behind target and parent node 2. And closer to the tree 3. Compute centroid 4. Take the closest node Biasing computation Improves WL by sharing as many paths as possible
Effect of biasing AMAZE with biasing off AMAZE with biasing ON
Route them first Use repulsive biasing Sharing Factor Path Length Factor 5.Improving Delay to critical sinks Use as little sharing as possible
Only for critical Sharing factor
Only for critical Path lenght factor Makes shortest paths from the source to the sinks
6.Experimental results Average of 100 randomly generated nets
Experimental results Average of 100 randomly generated nets
Sample Trees P-Trees AMAZE