
((Lec19Lec19)) GeometricGeometric DataData StructuresStructures forfor LayoutsLayouts ^ What you know X Some basic ASIC placement (by annealing) X Some basic ASIC routing (global versus detailed, area routing by cost- based maze routing) X Some timing analysis: logical and electrical ^ What you don’t know X Basic representation techniques for handling a lot of geometry X Standard “procedures” supported on these geometric data structures X Pros, cons comparative features of common geometric structures © R. Rutenbar 2001 CMU 18-760, Fall01 1 CopyrightCopyright NoticeNotice © Rob A. Rutenbar 2001 All rights reserved. You may not make copies of this material in any form without my express permission. © R. Rutenbar 2001 CMU 18-760, Fall01 2 Page 1 WhereWhere AreAre We?We? ^ Geometric data structures for BIG layouts… M T W Th F Aug 27 28 29 30 31 1 Introduction Sep 3 4 5 6 7 2 Advanced Boolean algebra 10 11 12 13 14 3 JAVA Review 17 18 19 20 21 4 Formal verification 24 25 26 27 28 5 2-Level logic synthesis Oct 1 2 3 4 5 6 Multi-level logic synthesis 8 9 10 11 12 7 Technology mapping 15 16 17 18 19 8 Placement 22 23 24 25 26 9 Routing 29 30 31 1 2 10 Static timing analysis Nov 5 6 7 8 9 11 Electrical timing analysis 12 13 14 15 16 12 Thnxgive 19 20 21 22 23 13 Geometric data structs & apps 26 27 28 29 30 14 Dec 3 4 5 6 7 15 10 11 12 13 14 16 © R. Rutenbar 2001 CMU 18-760, Fall01 3 NominalNominal Deadlines…Deadlines… Last 760 lecture (probably… Thnxgive 19 20 21 22 23 13 Revisions: 26 27 28 29 30 14 Dec 3 4 5 6 7 15 Move HW5 and Paper3 to 10 11 12 13 14 16 17 Dec Monday, due 5pm 17 18 19 20 21 Finals Lyz Knight’s office. Proj3 still Due 14 Dec Friday. HW5 6 PPT slide Proj 3 demos paper review ^ …and, this is clearly a bit extreme for the last week of class X Open to suggestions for moving some deadlines BACK some… X …but need to be careful not to mess up people with finals, early travel plans for break, etc © R. Rutenbar 2001 CMU 18-760, Fall01 4 Page 2 DataData StructuresStructures ^ A large IC layout represents a lot of data X 10M to 100M devices X ~10 to 20 pieces of geometry per device X 0.1 to 1 billion rectangles--easily ^ How do we manage this large collection of data? X Depends on what you want to do with the layout. Logic gate: Typical ASIC: Module or cell: 1000s of cells. 10s of gates. 100s of rectangles. © R. Rutenbar 2001 CMU 18-760, Fall01 5 22 BasicBasic KindsKinds ofof “Queries”“Queries” onon thesethese StructuresStructures A “pick” operation-- A “region query” operation-- Given (x,y), tell me what Given a box, tell me I touch.... everything inside the box © R. Rutenbar 2001 CMU 18-760, Fall01 6 Page 3 DataData Structures:Structures: QueriesQueries ^ Data structure queries X Pick: Given an x,y location, tell me what lives there. X Region query: Given a bounding box, tell me what’s inside it. ^ Uses X Checking DRC-type layout interactions X Printing masks. X Extracting electrical circuits from layout. X Searching the neighborhood of a given device or circuit. ^ Note: X No inserting or deleting data is done -- just asking where things are. © R. Rutenbar 2001 CMU 18-760, Fall01 7 DataData Structures:Structures: LayoutLayout ModificationModification ^ Adding & Deleting geometry X Inserting or removing rectangles from the data collection. ^ Uses X Interactive layout editing: Cadence Virtuoso or MAGIC. X Global and detailed routing. X Local rip-up and reroute. X Placement “legalization” = fine local adjustments. ^ Caveats X With some data structures, it is easy to add new geometry but difficult to delete. X Need to be careful to match structure to the application © R. Rutenbar 2001 CMU 18-760, Fall01 8 Page 4 DataData Structures:Structures: UsefulUseful ReferencesReferences ^ Survey paper X J. Rosenberg, “Geographical data structures compared: a study of data structures supporting region queries,” IEEE Trans. CAD, CAD-4, 1, Jan. 1985. X Old, but very useful. Actually has code (in a somewhat archaic looking C now) for a lot of these data structures. ^ Tile plane paper X J. Ousterhout, “Corner stitching: a data structuring technique for VLSI layout tools,” IEEE Trans. CAD, CAD-3, 1, Jan. 1984. X It’s the data structure underneath the Berkeley MAGIC layout editor X Yeah, the same Ousterhout who developed tcl/tk, and MAGIC. © R. Rutenbar 2001 CMU 18-760, Fall01 9 DataData Structures:Structures: SurveySurvey ofof TypesTypes ^ Linked List X Simple but slow ^ Bins X Straightforward - commonly used ^ Quad Trees X Very widely used ^ k-d Trees X Good complexity but limited ^ Corner Stitched Tile Planes X Good for layout editing, fine-grain local manipulation of shapes © R. Rutenbar 2001 CMU 18-760, Fall01 10 Page 5 DataData Structures:Structures: LinkedLinked ListsLists ^ OK for grouping small amounts of data X But as soon as you have lots of rectangles & complex queries, this is bad ^ Complexity (assume you have N rectangles) X Time: Z Find O(N) Z Insert O(N) ( O(1) if not sorted ) Z Delete O(N) X Memory: Z O(N) - one link for each data item. List ptr data data data obj obj obj . NULL prev next prev next NULL prev next © R. Rutenbar 2001 CMU 18-760, Fall01 11 PracticalPractical Issues:Issues: LinkedLinked ListsLists ^ Lousy complexity, but widely used… X …when you only have a “a few” objects to represent X More sophisticated structures will get presented after this… X …but, they all come with some overhead; nothing is free X If you have a small # of rectangles to handle, a linked list is the right way X Where the breakpoint is between doing it like this (“flat”) and using a smart structure is something you have to determine empirically © R. Rutenbar 2001 CMU 18-760, Fall01 12 Page 6 DataData Structures:Structures: BinsBins ^ Bin idea X Divide up surface of the chip into rectangular bins (also called buckets) X Inside each bin, you have a linked list of all the rectangles you touch. Data organized by a 2D array of geometric bins, each of which holds all local rectangles in a linked lists. © R. Rutenbar 2001 CMU 18-760, Fall01 13 DataData Structure:Structure: BinsBins ^ Queries X Pick: go to the bin with the (x,y) you want, look at all the rectangles X Region query: go to all the bins that touch the region, look at all the rectangles Pick (x, y) Region query © R. Rutenbar 2001 CMU 18-760, Fall01 14 Page 7 DataData Structures:Structures: BinsBins ^ How does it really work X Need a pointer to a “rectangle object” from every bin it touches. X May have to walk thru lots of bins to insert/delete a big rectangle X Impacts the granularity of the grid you pick... Eight bins point to this one object. © R. Rutenbar 2001 CMU 18-760, Fall01 15 DataData Structures:Structures: BinsBins ^ How big should the bins be? X Let, Ao = average object size and Ab = bin size. Ao << Ab Ao ≈ Ab Ao >> Ab #bins / object: 1 4 many... ^ If you have many, small bins... X Memory use is large, insert and delete times are long. X But “pick” operations are really fast (few objects per bin) X Need to be careful to tune bin granularity to problem © R. Rutenbar 2001 CMU 18-760, Fall01 16 Page 8 DataData Structures:Structures: BinsBins ^ Summary X Good for evenly distributed objects of similar size. ^ Complexity X Time: Z Find O(1) Z Insert O(1) Z Delete O(1) X Memory: Z O(N) - if number of bins is < number of objects - small linked list per bin X But this assumes a lot of empirical tuning, and is pretty much a best-case estimate. BAD things can happen if your geometry isn’t “evenly distributed”.... © R. Rutenbar 2001 CMU 18-760, Fall01 17 DataData Structures:Structures: QuadQuad TreesTrees ^ Problem with bins: X What if data is not uniformly distributed? X If one small region of the chip is very dense, the search in that region is slow since the bin size is fixed and the linked lists for each bin are long. X We want to divide up space in a more dynamic fashion - only subdivide region where the “action” is. Few objects in this region. Lots of detail here. © R. Rutenbar 2001 CMU 18-760, Fall01 18 Page 9 DataData Structures:Structures: QuadQuad TreesTrees ^ Tree data structure with four children: List of geometry Given a region (called a quad), that hits a bisector line subdivide it into four equal parts: UL UR LL LR UL UR LL LR Each child is another quad tree. Rules: • If an object overlaps any of these bisector (center) lines in this quad, put it in the list for this quad. • Else if it is totally within a single quadrant, pass the object to the appropriate child tree. © R. Rutenbar 2001 CMU 18-760, Fall01 19 QuadQuad TreeTree ConstructionConstruction ^ Objects that hit either of the bisector lines… X These cannot be entirely inside the UL, UR, LL, LR regions X So, they go on the ‘bisector list” at the top. UL UR LL LR UL UR LL LR Each child is another quad tree. © R. Rutenbar 2001 CMU 18-760, Fall01 20 Page 10 QuadQuad TreeTree ConstructionConstruction ^ Objects that don’t hit either of bisector lines X These live entirely inside one of the UL, UR, LL, LR regions X So, they get passed down to me quad tree for that region X Just repeat this recursion UL UR LR UL UR LL LR LL UL UR LL LR © R.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages31 Page
-
File Size-