10/7/2015 1 VLSI Physical Design Automation Prof. David Pan Office: ACES 5.434 Lecture 6. Floorplanning (1)

Slides:



Advertisements
Similar presentations
Floorplanning. Non-Slicing Floorplan Representation Rectangle-Packing-Based Module Placement, H. Murata, K. Fujiyoushi, S. Nakatake and Y. Kajitani, IEEE.
Advertisements

Analysis of Floorplanning Algorithm in EDA Tools
Octagonal Drawing Johan van Rooij. Overview What is an octagonal drawing Good slicing graphs Octagonal drawing algorithm for good slicing graphs Correctness.
Lecture 24 MAS 714 Hartmut Klauck
Michael Alves, Patrick Dugan, Robert Daniels, Carlos Vicuna
1 Interconnect Layout Optimization by Simultaneous Steiner Tree Construction and Buffer Insertion Presented By Cesare Ferri Takumi Okamoto, Jason Kong.
Chapter 3 The Greedy Method 3.
Complexity 15-1 Complexity Andrei Bulatov Hierarchy Theorem.
Interconnect Estimation without Packing via ACG Floorplans Jia Wang and Hai Zhou Electrical & Computer Engineering Northwestern University U.S.A.
3 -1 Chapter 3 The Greedy Method 3 -2 The greedy method Suppose that a problem can be solved by a sequence of decisions. The greedy method has that each.
Floorplanning Professor Lei He
ICS 252 Introduction to Computer Design Lecture 14 Winter 2004 Eli Bozorgzadeh Computer Science Department-UCI.
EDA (CS286.5b) Day 7 Placement (Simulated Annealing) Assignment #1 due Friday.
Processing Rate Optimization by Sequential System Floorplanning Jia Wang 1, Ping-Chih Wu 2, and Hai Zhou 1 1 Electrical Engineering & Computer Science.
1 CSC 6001 VLSI CAD (Physical Design) January
CSE 242A Integrated Circuit Layout Automation Lecture: Floorplanning Winter 2009 Chung-Kuan Cheng.
Module #1 - Logic 1 Based on Rosen, Discrete Mathematics & Its Applications. Prepared by (c) , Michael P. Frank and Modified By Mingwu Chen Trees.
CSE 144 Project Part 2. Overview Multiple rows Routing channel between rows Components of identical height but various width Goal: Implement a placement.
Floorplanning. Obtained by subdividing a given rectangle into smaller rectangles. Each smaller rectangle corresponds to a module.
Chip Planning 1. Introduction Chip Planning:  Deals with large modules with −known areas −fixed/changeable shapes −(possibly fixed locations for some.
1 ENTITY test is port a: in bit; end ENTITY test; DRC LVS ERC Circuit Design Functional Design and Logic Design Physical Design Physical Verification and.
1 Minimum Spanning Trees Longin Jan Latecki Temple University based on slides by David Matuszek, UPenn, Rose Hoberman, CMU, Bing Liu, U. of Illinois, Boting.
KNURE, Software department, Ph , N.V. Bilous Faculty of computer sciences Software department, KNURE The trees.
8/15/ VLSI Physical Design Automation Prof. David Pan Office: ACES Lecture 8. Floorplanning (2)
1 Minimum Spanning Trees Longin Jan Latecki Temple University based on slides by David Matuszek, UPenn, Rose Hoberman, CMU, Bing Liu, U. of Illinois, Boting.
Graph Algorithms Using Depth First Search Prepared by John Reif, Ph.D. Distinguished Professor of Computer Science Duke University Analysis of Algorithms.
1 PQ Trees, PC Trees, and Planar Graphs Hsu & McConnell Presented by Roi Barkan.
CSE 242A Integrated Circuit Layout Automation Lecture 5: Placement Winter 2009 Chung-Kuan Cheng.
Mixed Non-Rectangular Block Packing for Non-Manhattan Layout Architectures M. Wu, H. Chen and J. Jou Department of EE, NCTU HsinChu, Taiwan ISQED 2011.
Introduction to Routing. The Routing Problem Apply after placement Input: –Netlist –Timing budget for, typically, critical nets –Locations of blocks and.
August 25, 2015National Workshop on VLSI Design Physical Design Automation Speaker: Speaker: Debdeep Mukhopadhyay Dept of Comp. Sc and Engg IIT.
9/4/ VLSI Physical Design Automation Prof. David Pan Office: ACES Detailed Routing (I)
© The McGraw-Hill Companies, Inc., Chapter 3 The Greedy Method.
Global Routing. Global routing:  To route all the nets, should consider capacities  Sequential −One net at a time  Concurrent −Order-independent 2.
Simulated Annealing.
Global Routing.
CAD for Physical Design of VLSI Circuits
VLSI Backend CAD Konstantin Moiseev – Intel Corp. & Technion Shmuel Wimer – Bar Ilan Univ. & Technion.
Modern Floor-planning Based on B ∗ -Tree and Fast Simulated Annealing Paper by Chen T. C. and Cheng Y. W (2006) Presented by Gal Itzhak
CSCI 115 Chapter 7 Trees. CSCI 115 §7.1 Trees §7.1 – Trees TREE –Let T be a relation on a set A. T is a tree if there exists a vertex v 0 in A s.t. there.
Massachusetts Institute of Technology 1 L14 – Physical Design Spring 2007 Ajay Joshi.
10/25/ VLSI Physical Design Automation Prof. David Pan Office: ACES Lecture 3. Circuit Partitioning.
1 Lower Bounds Lower bound: an estimate on a minimum amount of work needed to solve a given problem Examples: b number of comparisons needed to find the.
Placement. Physical Design Cycle Partitioning Placement/ Floorplanning Placement/ Floorplanning Routing Break the circuit up into smaller segments Place.
Discrete Structures Lecture 12: Trees Ji Yanyan United International College Thanks to Professor Michael Hvidsten.
Deferred Decision Making Enabled Fixed- Outline Floorplanner Jackey Z. Yan and Chris Chu DAC 2008.
Non-Slicing Floorplanning Joanna Ho David Lee David Omoto.
Rectlinear Block Packing Using the O-tree Representation Yingxin Pang Koen Lampaert Mindspeed Technologies Chung-Kuan Cheng University of California, San.
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
Agenda Review: –Planar Graphs Lecture Content:  Concepts of Trees  Spanning Trees  Binary Trees Exercise.
1 Twin Binary Sequences: A Non-Redundant Representation for General Non-Slicing Floorplan Evan Young Department of Computer Science and Engineering The.
Strings Basic data type in computational biology A string is an ordered succession of characters or symbols from a finite set called an alphabet Sequence.
Subject : CAD For VLSI (7CS4) 1 Unit 5 Floor-planning, Placement & Routing.
LIMITATIONS OF ALGORITHM POWER
VLSI Floorplanning and Planar Graphs prepared and Instructed by Shmuel Wimer Eng. Faculty, Bar-Ilan University July 2015VLSI Floor Planning and Planar.
An Exact Algorithm for Difficult Detailed Routing Problems Kolja Sulimma Wolfgang Kunz J. W.-Goethe Universität Frankfurt.
Introduction to NP Instructor: Neelima Gupta 1.
Chapter 11. Chapter Summary  Introduction to trees (11.1)  Application of trees (11.2)  Tree traversal (11.3)  Spanning trees (11.4)
The Early Days of Automatic Floorplan Design
RTL Design Flow RTL Synthesis HDL netlist logic optimization netlist Library/ module generators physical design layout manual design a b s q 0 1 d clk.
VLSI Physical Design Automation
Partial Reconfigurable Designs
VLSI Physical Design Automation
Source Code for Data Structures and Algorithm Analysis in C (Second Edition) – by Weiss
Graph Algorithms Using Depth First Search
VLSI Physical Design Automation
Sequence Pair Representation
Chapter 11 Limitations of Algorithm Power
VLSI Physical Design Automation
Floorplanning (Adapted from Prof. E. Young’s and Prof. Y
Presentation transcript:

10/7/ VLSI Physical Design Automation Prof. David Pan Office: ACES Lecture 6. Floorplanning (1)

2 10/7/2015 Hierarchical Design Several blocks after partitioning: Need to: –Put the blocks together. –Design each block. Which step to go first?

3 10/7/2015 Hierarchical Design How to put the blocks together without knowing their shapes and the positions of the I/O pins? If we design the blocks first, those blocks may not be able to form a tight packing.

4 10/7/2015 Floorplanning The floorplanning problem is to plan the positions and shapes of the modules at the beginning of the design cycle to optimize the circuit performance: –chip area –total wirelength –delay of critical path –routability –others, e.g., noise, heat dissipation, etc.

5 10/7/2015 Floorplanning v.s. Placement Both determines block positions to optimize the circuit performance. Floorplanning: –Details like shapes of blocks, I/O pin positions, etc. are not yet fixed (blocks with flexible shape are called soft blocks). Placement: –Details like module shapes and I/O pin positions are fixed (blocks with no flexibility in shape are called hard blocks).

6 10/7/2015 Floorplanning Problem Input: –n Blocks with areas A 1,..., A n –Bounds r i and s i on the aspect ratio of block B i Output: –Coordinates (x i, y i ), width w i and height h i for each block such that h i w i = A i and r i  h i /w i  s i Objective: –To optimize the circuit performance.

7 10/7/2015 Bounds on Aspect Ratios If there is no bound on the aspect ratios, can we pack everything tightly? - Sure! But we don ’ t want to layout blocks as long strips, so we require r i  h i /w i  s i for each i.

8 10/7/2015 Bounds on Aspect Ratios We can also allow several shapes for each block: For hard blocks, the orientations can be changed:

9 10/7/2015 Objective Function A commonly used objective function is a weighted sum of area and wirelength: cost =  A +  L where A is the total area of the packing, L is the total wirelength, and  and  are constants.

10 10/7/2015 Wirelength Estimation Exact wirelength of each net is not known until routing is done. In floorplanning, even pin positions are not known yet. Some possible wirelength estimations: –Center-to-center estimation –Half-perimeter estimation

11 10/7/2015 Dead space Dead space is the space that is wasted: Minimizing area is the same as minimizing deadspace. Dead space percentage is computed as (A -  i A i ) / A  100% Dead space

12 10/7/2015 Slicing and Non-Slicing Floorplan Slicing Floorplan: One that can be obtained by repetitively subdividing (slicing) rectangles horizontally or vertically. Non-Slicing Floorplan: One that may not be obtained by repetitively subdividing alone. Otten (LSSS-82) pointed out that slicing floorplans are much easier to handle.

13 10/7/2015 Polar Graph Representation A graph representation of floorplan. Each floorplan is modeled by a pair of directed acyclic graphs: –Horizontal polar graph –Vertical polar graph For horizontal (vertical) polar graph, –Vertex: Vertical (horizontal) channel –Edge: 2 channels are on 2 sides of a block –Edge weight: Width (height) of the block Note: There are many other graph representations.

14 10/7/2015 Polar Graph: Example Horizontal Polar Graph Vertical Polar Graph

10/7/ Simulated Annealing using Polish Expression Representation D.F. Wong and C.L. Liu, “A New Algorithm for Floorplan Design” DAC, 1986, pages

16 10/7/2015 Representation of Slicing Floorplan Slicing Floorplan V HH 213H V 64 V 75 Slicing Tree Polish Expression ( postorder traversal of slicing tree ) 21H67V45VH3HV

17 10/7/2015 Polish Expression Succinct representation of slicing floorplan –roughly specifying relative positions of blocks Postorder traversal of slicing tree 1. Postorder traversal of left sub-tree 2. Postorder traversal of right sub-tree 3. The label of the current root For n blocks, a Polish Expression contains n operands (blocks) and n-1 operators (H, V). However, for a given slicing floorplan, the corresponding slicing tree (and hence polish expression) is not unique. Therefore, there is some redundancy in the representation.

18 10/7/2015 Skewed ST and Normalized PE Skewed Slicing Tree: –no node and its right son are the same. Normalized Polish Expression: –no consecutive H’s or V’s Slicing Floorplan V HH 213H V 64 V 75 Slicing Tree (Skewed) Polish Expression 21H67V45VH3HV V HH 21H V 6 V 7 3 Slicing Tree H67V45V3HHV

19 10/7/2015 Normalized Polish Expression There is a 1-1 correspondence between Slicing Floorplan, Skewed Slicing Tree, and Normalized Polish Expression. Will use Normalized Polish Expression to represent slicing floorplans. –What is a valid NPE? Can be formulated as a state space search problem.

20 10/7/2015 Neighborhood Structure Chain: HVHVH.... or VHVHV.... The moves: M1: Swap adjacent operands (ignoring chains) M2: Complement some chain M3: Swap 2 adjacent operand and operator (Note that M3 can give you some invalid NPE. So checking for validity after M3 is needed.) It can be proved that every pair of valid NPE are connected. 16H35V2HV74HV Chains

21 10/7/2015 Example of Moves V2H5V1H V4H5V1H V45HV1H V45VH1H M1 M3 M2

22 10/7/2015 Shape Curve To represent the possible shapes of a block. w h (0,0) wh = A Soft block Block with several existing design w h (0,0) Feasible region Feasible region

23 10/7/2015 Combining Shape Curves 12V: 12H: 1 2 h w 12V w h H

24 10/7/2015 Find the Best Area for a NPE Recursively combining shape curves. V 23 Pick the best H

25 10/7/2015 Updating Shape Curves after Moves If keeping k points for each shape curve, time for shape curve computation for each NPE is O(kn). After each move, there is only small change in the floorplan. So there is no need to start shape curve computation from scratch. We can update shape curves incrementally after each move. Run time is about O(k log n).

26 10/7/2015 Initial Solution 12V3V4V...nV n

27 10/7/2015 Annealing Schedule T i =  T i-1 where  =0.85 At each temperature, try k x n moves (k is around 5 to 10) Terminate the annealing process if –either # of accepted moves < 5% –or the temperate is low enough

10/7/ Handling both Rectangular and L- Shaped Blocks D.F. Wong and C.L. Liu, “Floorplan Design for Rectangular and L-Shaped Modules” ICCAD, 1987, pages

29 10/7/2015 Rectangular and L-Shaped Blocks Possible shapes: Note that L-shaped blocks can be produced even if we start with rectangular blocks only. Can even generate non-slicing floorplans.

30 10/7/2015 Basic Idea Similar to the DAC-86 paper by Wong & Liu: –Polish Expression representation. –Simple moves to locally modify floorplan. –Simulated Annealing. Differences from the DAC-86 paper: –5 operators and 4 moves defined to handle the more complex shapes. –Idea of shape curves no longer applicable. –Depend on Simulated Annealing to pick different shapes for blocks probabilistically.

31 10/7/2015 Operators 5 operators: ~, V 1, V 2, H 1, H 2 Completion of A (~A): ~= ~=~= ~=~= A A A A A

32 10/7/2015 Binary Operators V 1, V 2, H 1 and H 2 Need to define what “A op B” means, where A and B are rectangular or L-shaped blocks, op is V 1, V 2, H 1 or H 2. Total # of ways to combine 2 blocks = 5 x 4 x 5 = 100

33 10/7/2015 Example of Combining 2 Blocks Several possible outcomes. Represented as: V1V1 = AB ABABAB or V2V2 = AB A B AB A B V1V1 = AB AB V2V2 = AB AB

34 10/7/2015 Another Example of Combining H1H1 = B H2H2 = B or A A B A A B A B A B Represented as: A B

35 10/7/2015 Moves Write the Polish Expression in the form: b 1 u 1 b 2 u 2... b 2n-1 u 2n-1 where b i ’s are the n blocks, or the n-1 binary operators, and each u i is either ~ or the empty string . The moves: M1: Modify for some i (change to a different shape or a different binary operator). M2: Change u i to ~ or  for some i. M3: Swap 2 blocks b i and b j. M4: Swap b i and b i+1 for some i. (M4 can obtain invalid PE. Checking needed.)

36 10/7/2015 Another Classic Work “Optimal Orientation of Cells in Slicing floorplan Designs” L. Stockmeyer, Information and Control 57(1983), This is an earlier paper than [Wong-Liu ’ 86], dealing with simpler problem - Given slicing structure and a set of module shapes (or shape list) - How to orient these modules such that the total area is smallest? 8x11 7x13 A B C D E A B C D E

37 10/7/2015 Difficulty v 2 v v m 1 m 2 choices m1m1 m2m2

38 10/7/2015 Key Idea Dynamic programming –Compute a set of irredundant solutions at each sub-tree rooted from the list of irredundant solutions for its two child subtrees –Pick the best solution from the list of irredundant solutions at the root

39 10/7/2015 Example of Merging: only keep irredundant solutions

40 10/7/2015 Stockmeyer Algorithm

41 10/7/2015 Stockmeyer Algorithm (Cont’d)

42 10/7/2015 Complexity of the Algorithm n= # of leaves = 2 * # of modules d=depth of the tree Running time= O(nd) Storage = O(n) because, at depth k, asum of the lengths of the lists =O(n) atime to construct these lists =O(n) aconfigurations stored at this node can be release as soon as the node is processed Extension Each module has k possible shapes Running time and storage O(nkd) depth k

43 10/7/2015 Summary: What’s BIG idea? Floorplan problem is definitely NP hard How to represent it compactly is a big deal. Slicing is easier to deal with, so let’s start with it Polish expression is very elegant and easy to make new moves –Need to be unique (NPE) –Bounding curve for area computation when merging two blocks, which can be computed incrementally For a given set of modules and the slicing tree, Stockmeyer’s algorithm can give the optimal solution –But it’s a very ideal situation that doesn’t happen often  –Nice algorithm using dynamic programming