60 likes | 205 Views
CONTOUR A Tile - Based Gridless Router. 18-760 Paper Review 3 Nishant Sinha. Automatic Routing in VLSI Circuits. Ambitious Goals Produce Hand-Quality layout for VLSI chips No Manual Intervention Fast enough ( hours, not weeks! ) How do you route a cell with several Net s?
E N D
CONTOURATile-BasedGridless Router 18-760 Paper Review 3 Nishant Sinha
Automatic Routing in VLSI Circuits • Ambitious Goals • Produce Hand-Quality layout for VLSI chips • No Manual Intervention • Fast enough ( hours, not weeks! ) • How do you route a cell with several Nets? • Split every Net into a spanning tree of point-to-point Connections • Try to route the next easily routable Connection • Backtrack on failure • Remember, we are Gridless! • Corner-Stitched, Tiling planes at our rescue • So, what’s new there in CONTOUR? • Multiple search paths through a tile • Design-Rule-Correct connections of new wires
What we already know : Tile Planes Represent chip geometry as solid and clear tiles, one per layer Router needs to dig out space for every new wire Are Tile Planes efficient everywhere? Surprisingly, NO; They have hard time detecting Fatal routes New Idea : Contours Bloat the Geometry (Obstacles) by a Factor Factor = 2• (spacing needed by wire) + wire width –1 Easier Problem : CenterlineUnit-width Routing Guarantees Design-Rule correctness with actual wire width Tiles and Contours
The Routing Algorithm • Not ready yet! Need some more Tools.. • 2 Path Heaps, A ManhattanCost Function, • and the BloatedContours (obviously !) to work on • Ok, all this, but how exactly do you Connect the Terminals? • Start out searching from both the terminals together ( A* ) • Collect the candidate paths in the Two Heaps alternately • Keep Propagating All the Paths till .. • Either Heap is Empty – Oops! Sorry, No path • Discover an Empty tile, connected both ways • Don’t Stop; Look for a cheaper Path • Make the current discovery an Upper bound for the solution • Iterate till this Upper bound becomes the Lower one! • An Important Lesson they learnt • Keep ALL the candidate paths till you Win (or Lose!)
The Routing Algorithm : Gruesome Details • Its all about Paths • A path is actually a collection of topologically equivalent ones • Identified by the destination tile and back pointers • Path Expansion • Find a empty eligible neighbor around path p6 • Compute the minimal cost on 1-D tile projections • Prune, trade Quality for Speed
Does this Really Work? • Indeed! • Claims say it will work for Real chips at all design levels • A Bipolar Processor, BIPS-0 done entirely with it • BIPS-1 64-bit floating point unit entirely done with CONTOUR • On DEC 3000/800, few seconds for every Cell • 532 seconds for the Divider (7495 connections; 14/s) • 80% time spent Routing : 38% Initialization, 42% PathPropagation • And Why is it supposedly so good? • Contour based Routing • Smart Search