A DepthFirstSearch Controlled Gridless Incremental Routing Algorithm for

  • Slides: 34
Download presentation
A Depth-First-Search Controlled Gridless Incremental Routing Algorithm for VLSI Circuits Hasan Arslan and Shantanu

A Depth-First-Search Controlled Gridless Incremental Routing Algorithm for VLSI Circuits Hasan Arslan and Shantanu Dutt Electrical & Computer Eng. University of Illinois at Chicago ICCD 2004

Outline • Introduction • Importance of Incremental Routing • Previous work • Our Goals

Outline • Introduction • Importance of Incremental Routing • Previous work • Our Goals • A DFS-Based Incr. Routing Alg. • Non-Uniform Grids • DSR (Depth first search controlled Segment bump and Refit) Algorithm • Experimental Results • Conclusion

Introduction • In current VLSI Chip • The size gets smaller • High clock

Introduction • In current VLSI Chip • The size gets smaller • High clock frequency • Interconnections on chip very important • Technical Problems • • Wire-congestion and routability Crosstalk / noise Power consumption Terminal distribution

Incremental Routing • After a chip layout is completed • Time/noise violation • One

Incremental Routing • After a chip layout is completed • Time/noise violation • One or more optimization metrics • Technology constraints • Make changes to the circuit/system • Engineering Change Order (ECO) process • Time to meet market requirements • Enormous resources and time already spent. • Need a time-efficient & effective incremental routing algorithm

Incremental Routing (Cont. ) • Incremental Routing Problem • Set of existing routed nets

Incremental Routing (Cont. ) • Incremental Routing Problem • Set of existing routed nets R • Set of new nets S (due to timing violation, noise…) • Quality metrics for an Incr. Routing • Near-optimal incr. solutions in a short amount of time • Preserve previous routing results as much as possible • Complete the required incremental routing in the available channel area if such a solution exists

Prior work on Incremental Routing • 1) Emmert and Bhatia, “Incremental Routing in FPGA”

Prior work on Incremental Routing • 1) Emmert and Bhatia, “Incremental Routing in FPGA” , IEEE Int. ASIC Conference, 1998. • 2) Cong and Sarrafzadeh, “Incremental Physical Design” , ISPD 2000. • 3) Dutt, Shanmugavel and Trimberger, “Efficient Incremental Rerouting for Fault Reconfiguration in FPGAs”, ICCAD 1999. • 4) Dutt, Verma and Arslan “A Search-Based Bump and Refit Approach to Incremental Routing for ECO Applications in FPGAs”, TODAES 2002 • 5) Xiang, Chao, Wong “An ECO Algorithm for Eliminating Crossalk Violations”, ISPD 2004

Emmert-Bhatia (ASIC’ 98) • • Nets connected to faulty PLB, deleted and rerouted A

Emmert-Bhatia (ASIC’ 98) • • Nets connected to faulty PLB, deleted and rerouted A graph is built, from source pin to target pin Standard single-net routing mode (global then detailed) Do not perturb or move existing nets Cong-Sarrafzadeh (ISPD’ 00) • Single Net Routing : Route new nets without removing any existing nets. • Rip & Reroute : If some nets cannot be routed, rip-up the existing nets which occupy the resources of new nets. Reroute the ripped up nets.

Dutt, Shanmugavel and Trimberger (ICCAD’ 99) • Used incremental rerouting for dynamic fault reconfiguration

Dutt, Shanmugavel and Trimberger (ICCAD’ 99) • Used incremental rerouting for dynamic fault reconfiguration in FPGAs • Does not rip-up and reroute • Shift them (or their subnets) to other track positions --Bump-&-Refit (B&R) • No change in topology, length of existing nets • Optimal: Finds a detailed route if exists Dutt, Verma and Arslan (TODAES’ 02) • Extended basic B&R significantly for: – full incremental routing (global + detailed) – complex switchboxes – much better results than Std and R&R (routing succ within avail res, HP of failed nets, speed under certain conditions)

Our Goals • Incremental routing for VLSI (ASIC) circuits • Gridless framework for non-uniform

Our Goals • Incremental routing for VLSI (ASIC) circuits • Gridless framework for non-uniform width & spacing req. and memory & time efficiency • Address the quality metrics of incr. routing – Near-optimal incr. solutions (min. WL and vias) in a short amt. of time – Preserve previous routing results as much as possible – Complete the required incremental routing in the available channel area if such a solution exists = min. # of metal layers = max. routing success in given layers • Approach: – Allow bumping of existing nets for near-optimal solns to new nets – However, to obtain an overall good solution control the amount of perturbation of existing nets or their routing failures by retracting their bumpings using an overall DFS control

DFS-Based Incr. Routing Alg. (Incr. Routing Concepts) Adjacent-via n 2 n 1 R-BBox n

DFS-Based Incr. Routing Alg. (Incr. Routing Concepts) Adjacent-via n 2 n 1 R-BBox n 2 n 1

DFS-Based Incr. Routing Alg. (Incr. Routing Concepts) • If there is an edge between

DFS-Based Incr. Routing Alg. (Incr. Routing Concepts) • If there is an edge between two nets in OG, they might bump each other during shifting one of them. CG of n 1. v 1 ob 1 n 2. h 1 n 1. h 1 n 2. v 1 n 2 n 1. v 1 n 1. h 1 possible overlapping ob 1 n 2. v 1 n 2. h 1 CG of n 2 For net ni in OG • higher degree (more adj. net in OG) might bump more nets, passing through in dense area • Check only adj. nets/blocks in OG to create non-uniform grid for ni

DFS-Based Incr. Routing Alg. Do-DFS-Routing(ni) Route-with-Bumping(ni) Generate grid line in R-BB Cp=Get-Candidate-Paths Route-without-Bumping(ni) All

DFS-Based Incr. Routing Alg. Do-DFS-Routing(ni) Route-with-Bumping(ni) Generate grid line in R-BB Cp=Get-Candidate-Paths Route-without-Bumping(ni) All paths in Cp tested? return(succ. ) YES return(fail) Soln? NO Route-with-Bumping(ni) YES For each bumped net nk Do-DFS-Routing(nk) return(succ. ) YES Soln? NO return(fail) Retract curr. bumping-causing routing path

Non-Uniform Grid Extraction • Variable width/spacing rule Width / space req. of new net

Non-Uniform Grid Extraction • Variable width/spacing rule Width / space req. of new net To route new net • Create obstruction zone around existing nets • Find zero width path for new net

Non-Uniform Grid Extr. & Routing t BGLs (Boundary Grid Lines) VGLs (Vacant Grid Lines)

Non-Uniform Grid Extr. & Routing t BGLs (Boundary Grid Lines) VGLs (Vacant Grid Lines) s OGLs (Occupied Grid Lines) • Use VGLs to get solution without bumping. • Use VGLs and OGLs to do B&R type routing (OGLs has higher cost than VGLs).

DFS-Based Incr. Routing Alg. Do-DFS-Routing(ni) Route-with-Bumping(ni) Cp=Get-Candidate-Paths Generate grid line in R-BB Route-without-Bumping(ni) return(succ.

DFS-Based Incr. Routing Alg. Do-DFS-Routing(ni) Route-with-Bumping(ni) Cp=Get-Candidate-Paths Generate grid line in R-BB Route-without-Bumping(ni) return(succ. ) YES All paths in Cp tested? return(fail) NO Soln? NO Route-with-Bumping(ni) YES Get-Next-Path(CP) For each bumped net nk Do-DFS-Routing(nk) return(succ. ) Soln? NO return(fail) YES Soln? NO Retract curr. bumping-causing Routing path

Finding Solution without Bumping – Use the 4 via Algorithm (Carothers, Lee, T-CS, 1999)

Finding Solution without Bumping – Use the 4 via Algorithm (Carothers, Lee, T-CS, 1999) 1 -via routing 2 -via routing Adj-via n 1 nj n 2 n 3 n 1 Adj-via Bumped seg. n 2 n 1 Adj-via If 3 -via 1 -via path cannot be found due to obstacles 2 -via 3 -via routing 4 -via routing Adj-via n 1 cv n 1 Adj-via cv

DFS-Based Incr. Routing Alg. Do-DFS-Routing(ni) Route-with-Bumping(ni) Cp=Get-Candidate-Paths Generate grid line in R-BB Route-without-Bumping(ni) return(succ.

DFS-Based Incr. Routing Alg. Do-DFS-Routing(ni) Route-with-Bumping(ni) Cp=Get-Candidate-Paths Generate grid line in R-BB Route-without-Bumping(ni) return(succ. ) YES All paths of Cp tested? return(fail) NO solution NO Route-with-Bumping(ni) YES Get-Next-Path(Cp) For each bumped net nk Do-DFS-Routing(nk) return(succ. ) Soln? NO return(fail) YES Soln? NO Retract curr. bumping-causing Routing path

Selecting Paths to Route Bumped Seg. Adj-via n 1 n 1 Adj-via Equal distance

Selecting Paths to Route Bumped Seg. Adj-via n 1 n 1 Adj-via Equal distance m paths Random m paths Adj-via n 1 The first m paths The randomized initial path set selection gave the best solutions in terms of both quality and runtime.

DFS-Based Incr. Routing Alg. Do-DFS-Routing(ni) Route-with-Bumping(ni) Cp=Get-Candidate-Paths Generate grid line in R-BB Route-without-Bumping(ni) return(succ.

DFS-Based Incr. Routing Alg. Do-DFS-Routing(ni) Route-with-Bumping(ni) Cp=Get-Candidate-Paths Generate grid line in R-BB Route-without-Bumping(ni) return(succ. ) YES Have all path of CP tested return(failed) Soln? NO Route-with-Bumping(ni) YES Get-Next-Path(CP) For each bumped net nk Do-DFS-Routing(nk) return(succ. ) Soln? NO return(failed) NO YES solution NO Retract previous bumping-causing routing

DFS-Controlled Routing with Bump & Refit n 3. . v 1 nj n 2

DFS-Controlled Routing with Bump & Refit n 3. . v 1 nj n 2 n 3 nj nj n 2. . h 1 n 1. . b-seg n 3. . h 1 n 1. . b-seg n 2. . h 2 Pi= i-via path is explored P 1 n 2. pin or obs n 1. b-seg

DFS-Controlled Routing with Bump & Refit n 3. . v 1 nj n 2

DFS-Controlled Routing with Bump & Refit n 3. . v 1 nj n 2 n 3 nj nj n 2. . h 1 n 2. . h 2 n 3. . h 1 n 1. . b-seg n 2. . h 2 Pi= i-via path is explored n 1. b-seg P 1 P 2 n 2. pin or obs n 2. h 2 P 1 n 3. v 1

DFS-Controlled Routing with Bump & Refit n 3. . v 1 nj n 2

DFS-Controlled Routing with Bump & Refit n 3. . v 1 nj n 2 n 3 nj nj n 2. . h 1 n 2. . h 2 n 3. . h 1 n 2. . h 2 P 1 P 2 n 2. pin or obs n 1. . b-seg Pi= i-via path is explored n 1. b-seg n 2. h 2 P 1 obs n 3. v 1 P 1 anc P 2 -P 4 obs or anc. n 1 or anc. nj

DFS-Controlled Routing with Bump & Refit n 3. . v 1 nj n 2

DFS-Controlled Routing with Bump & Refit n 3. . v 1 nj n 2 n 3 nj nj n 2. . h 1 n 1 P 1 n 3. . h 1 n 2. . h 2 n 1. . b-seg Pi= i-via path is explored n 1. b-seg P 2 n 2. pin or obs n 2. h 2 P 2 -P 3 P 1 obs n 3. v 1 P 1 anc P 2 -P 4 obs or anc. n 1 or anc. nj P 1 obs n 3. h 1 P 2 -P 4 obs or anc. n 1 or anc. nj

DFS-Controlled Routing with Bump & Refit n 3. . v 1 nj n 2

DFS-Controlled Routing with Bump & Refit n 3. . v 1 nj n 2 n 3 nj nj n 2. . h 1 n 1 P 1 n 3. . h 1 n 2. . h 2 n 1. . b-seg n 2. . h 2 Pi= i-via path is explored n 1. b-seg P 2 n 2. pin or obs n 2. h 2 P 2 -P 3 P 1 obs n 3. v 1 P 1 anc P 2 -P 4 obs or anc. n 1 or anc. nj P 1 obs n 3. h 1 P 2 -P 4 obs or anc. n 1 or anc. nj

DFS-Controlled Routing with Bump & Refit n 3. . v 1 nj n 2

DFS-Controlled Routing with Bump & Refit n 3. . v 1 nj n 2 n 3 nj nj n 2. . h 1 n 1. . b-seg n 3. . h 1 Pi= i-via path is explored n 2. h 1 P 2 n 2. pin or obs n 1. . b-seg n 2. . h 2 P 2 n 1. b-seg n 2. h 2 P 1 obs P 2 -P 3 P 1 obs n 3. v 1 P 1 anc P 2 -P 4 obs or anc. n 1 or anc. nj P 1 obs n 3. h 1 P 2 -P 4 obs or anc. n 1 or anc. nj

DFS-Controlled Routing with Bump & Refit n 3. . v 1 nj n 2

DFS-Controlled Routing with Bump & Refit n 3. . v 1 nj n 2 n 3 nj nj P 1 n 3. . h 1 n 1 Pi= i-via path is explored n 2. h 1 P 2 n 2. pin or obs n 2. . h 2 P 2 n 1. b-seg n 2. h 2 P 1 obs P 2 -P 3 P 1 obs n 3. v 1 P 1 anc P 2 -P 4 obs or anc. n 1 or anc. nj P 1 obs P 2 VGL n 3. h 1 P 2 -P 4 obs or anc. n 1 or an. nj

Characteristics of Benchmark Circuits – Width of net 2 -15 unit – Space req.

Characteristics of Benchmark Circuits – Width of net 2 -15 unit – Space req. btw. nets 1 - 8 unit – Base 2 x 2 tile of Mcc 1 benchmark is replicated with diff. cell sizes and diff. # of pins – Nets connected to pins randomly generated routed by using max 4 -via routing – Experiment involved routing as many nets as possible under the constraint of 2 metal layers only routing succ. rate = efficacy of router

Experimental Results

Experimental Results

Experimental Results (Comparison of Failed Nets) • Unrouted nets are longer and wider when

Experimental Results (Comparison of Failed Nets) • Unrouted nets are longer and wider when Std. and R&R used • DSR gets more compact layout by routing more and wider nets

Experimental Results (Comparison of Modified Nets)

Experimental Results (Comparison of Modified Nets)

Experimental Results (Global Nets)

Experimental Results (Global Nets)

Experimental Results (Global Nets)

Experimental Results (Global Nets)

Conclusions • New Incremental Routing Algorithm DSR – gridless routing – variable width/space •

Conclusions • New Incremental Routing Algorithm DSR – gridless routing – variable width/space • Produces significant impr. over Std. R&R – Via incr. of modified nets (3 (5) times less than R&R, 10% and 20%, respectively) – Higher routing success rate (Std. =10. 8 (8. 5) R&R= 4. 6 (2. 4) times worse) – Wire length (HPBB) of failed nets: Std. = 36. 7 (6. 59) R&R = 5. 1 (2. 15) times worse) – Degree of modification (~20% less modification than R&R) • Future Work – Tile-based approach to avoid congestion – Timing-driven DSR algorithm

THANK YOU

THANK YOU