Fall 2003EE 5301 - VLSI Design Automation I 118 EE 5301 – VLSI Design Automation I Kia Bazargan University of Minnesota Part IV: Floorplanning.

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
THERMAL-AWARE BUS-DRIVEN FLOORPLANNING PO-HSUN WU & TSUNG-YI HO Department of Computer Science and Information Engineering, National Cheng Kung University.
Coupling-Aware Length-Ratio- Matching Routing for Capacitor Arrays in Analog Integrated Circuits Kuan-Hsien Ho, Hung-Chih Ou, Yao-Wen Chang and Hui-Fang.
Spie98-1 Evolutionary Algorithms, Simulated Annealing, and Tabu Search: A Comparative Study H. Youssef, S. M. Sait, H. Adiche
Toward Better Wireload Models in the Presence of Obstacles* Chung-Kuan Cheng, Andrew B. Kahng, Bao Liu and Dirk Stroobandt† UC San Diego CSE Dept. †Ghent.
EE 5301 – VLSI Design Automation I
Fuzzy Simulated Evolution for Power and Performance of VLSI Placement Sadiq M. Sait Habib Youssef Junaid A. KhanAimane El-Maleh Department of Computer.
ICS 252 Introduction to Computer Design Routing Fall 2007 Eli Bozorgzadeh Computer Science Department-UCI.
38 th Design Automation Conference, Las Vegas, June 19, 2001 Creating and Exploiting Flexibility in Steiner Trees Elaheh Bozorgzadeh, Ryan Kastner, Majid.
VLSI Layout Algorithms CSE 6404 A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27 X=(AB*CD)+ (A+D)+(A(B+C)) Y = (A(B+C)+AC+ D+A(BC+D)) Dr. Md. Saidur.
Recent Development on Elimination Ordering Group 1.
VLSI Layout Algorithms CSE 6404 A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27 X=(AB*CD)+ (A+D)+(A(B+C)) Y = (A(B+C)+AC+ D+A(BC+D)) Dr. Md. Saidur.
Fixed-outline Floorplanning Through Better Local Search
2004/9/16EE VLSI Design Automation I 85 EE 5301 – VLSI Design Automation I Kia Bazargan University of Minnesota Part III: Partitioning.
ICS 252 Introduction to Computer Design winter 2005 Eli Bozorgzadeh Computer Science Department-UCI.
Fall 2006EE VLSI Design Automation I V-1 EE 5301 – VLSI Design Automation I Kia Bazargan University of Minnesota Part V: Placement.
Floorplanning Professor Lei He
ICS 252 Introduction to Computer Design Lecture 14 Winter 2004 Eli Bozorgzadeh Computer Science Department-UCI.
VLSI Routing. Routing Problem  Given a placement, and a fixed number of metal layers, find a valid pattern of horizontal and vertical wires that connect.
Fuzzy Simulated Evolution for Power and Performance of VLSI Placement Sadiq M. SaitHabib Youssef Junaid A. KhanAimane El-Maleh Department of Computer Engineering.
Fall 2003EE VLSI Design Automation I 37 EE 5301 – VLSI Design Automation I Kia Bazargan University of Minnesota Part II: Algorithms.
ICS 252 Introduction to Computer Design Lecture 15 Winter 2004 Eli Bozorgzadeh Computer Science Department-UCI.
Simulated Annealing 10/7/2005.
Fall 2006EE VLSI Design Automation I VI-1 EE 5301 – VLSI Design Automation I Kia Bazargan University of Minnesota Part VI: Routing.
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.
CSE 242A Integrated Circuit Layout Automation Lecture: Floorplanning Winter 2009 Chung-Kuan Cheng.
Fall 2003EE VLSI Design Automation I 149 EE 5301 – VLSI Design Automation I Kia Bazargan University of Minnesota Part V: Placement.
Floorplanning. Obtained by subdividing a given rectangle into smaller rectangles. Each smaller rectangle corresponds to a module.
VLSI Physical Design: From Graph Partitioning to Timing Closure Chapter 3: Chip Planning © KLMH Lienig 1 Modern Floorplanning Based on B*-Tree and Fast.
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.
General Routing Overview and Channel Routing
Floorplanning Try the online demos at
8/15/ VLSI Physical Design Automation Prof. David Pan Office: ACES Lecture 8. Floorplanning (2)
CSE 242A Integrated Circuit Layout Automation Lecture 5: Placement Winter 2009 Chung-Kuan Cheng.
Introduction to Routing. The Routing Problem Apply after placement Input: –Netlist –Timing budget for, typically, critical nets –Locations of blocks and.
Global Routing.
10/7/ VLSI Physical Design Automation Prof. David Pan Office: ACES Lecture 6. Floorplanning (1)
New Modeling Techniques for the Global Routing Problem Anthony Vannelli Department of Electrical and Computer Engineering University of Waterloo Waterloo,
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
Massachusetts Institute of Technology 1 L14 – Physical Design Spring 2007 Ajay Joshi.
Placement. Physical Design Cycle Partitioning Placement/ Floorplanning Placement/ Floorplanning Routing Break the circuit up into smaller segments Place.
Deferred Decision Making Enabled Fixed- Outline Floorplanner Jackey Z. Yan and Chris Chu DAC 2008.
Non-Slicing Floorplanning Joanna Ho David Lee David Omoto.
Fishbone: A Block-Level Placement and Routing Scheme Fan Mo and Robert K. Brayton EECS, UC Berkeley.
Rectlinear Block Packing Using the O-tree Representation Yingxin Pang Koen Lampaert Mindspeed Technologies Chung-Kuan Cheng University of California, San.
Floorplan Sizing 1. Floorplanning Algorithms Common Goals  To minimize the total length of interconnect, subject to an upper bound on the floorplan area.
Routability-driven Floorplanning With Buffer Planning Chiu Wing Sham Evangeline F. Y. Young Department of Computer Science & Engineering The Chinese University.
By P.-H. Lin, H. Zhang, M.D.F. Wong, and Y.-W. Chang Presented by Lin Liu, Michigan Tech Based on “Thermal-Driven Analog Placement Considering Device Matching”
ISPD 2001, Sonoma County, April 3rd, Consistent Floorplanning with Super Hierarchical Constraints Yukiko KUBO, Shigetoshi NAKATAKE, and Yoji KAJITANI.
1 Twin Binary Sequences: A Non-Redundant Representation for General Non-Slicing Floorplan Evan Young Department of Computer Science and Engineering The.
Routing Topology Algorithms Mustafa Ozdal 1. Introduction How to connect nets with multiple terminals? Net topologies needed before point-to-point routing.
Ramakrishna Lecture#2 CAD for VLSI Ramakrishna
VLSI Floorplanning and Planar Graphs prepared and Instructed by Shmuel Wimer Eng. Faculty, Bar-Ilan University July 2015VLSI Floor Planning and Planar.
مرتضي صاحب الزماني 1 Hierarchical Tree Based Methods A floorplan is said to be hierarchical of order k if it can be obtained by recursively partitioning.
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.
Partial Reconfigurable Designs
VLSI Quadratic Placement
ME 521 Computer Aided Design 15-Optimization
VLSI Physical Design Automation
Sheqin Dong, Song Chen, Xianlong Hong EDA Lab., Tsinghua Univ. Beijing
Topics Logic synthesis. Placement and routing..
ICS 252 Introduction to Computer Design
ICS 252 Introduction to Computer Design
Clock Tree Routing With Obstacles
ICS 252 Introduction to Computer Design
Floorplanning (Adapted from Prof. E. Young’s and Prof. Y
Presentation transcript:

Fall 2003EE VLSI Design Automation I 118 EE 5301 – VLSI Design Automation I Kia Bazargan University of Minnesota Part IV: Floorplanning

Fall 2003EE VLSI Design Automation I 119 References and Copyright Textbooks referred (none required)  [Mic94] G. De Micheli “Synthesis and Optimization of Digital Circuits” McGraw-Hill,  [CLR90] T. H. Cormen, C. E. Leiserson, R. L. Rivest “Introduction to Algorithms” MIT Press,  [Sar96] M. Sarrafzadeh, C. K. Wong “An Introduction to VLSI Physical Design” McGraw-Hill,  [She99] N. Sherwani “Algorithms For VLSI Physical Design Automation” Kluwer Academic Publishers, 3 rd edition, 1999.

Fall 2003EE VLSI Design Automation I 120 References and Copyright (cont.) Slides used: (Modified by Kia when necessary)  [©Sarrafzadeh] © Majid Sarrafzadeh, 2001; Department of Computer Science, UCLA  [©Sherwani] © Naveed A. Sherwani, 1992 (companion slides to [She99])  [©Keutzer] © Kurt Keutzer, Dept. of EECS, UC-Berekeley  [©Gupta] © Rajesh Gupta UC-Irvine  [©Kang] © Steve Kang UIUC

Fall 2003EE VLSI Design Automation I 121 Floorplanning Problem  Given circuit modules (or cells) and their connections, determine the approximate location of circuit elements  Consistent with a hierarchical / building block design methodology  Modules (result of partitioning): oFixed area, generally rectangular oFixed aspect ratio  hard macro (aka fixed-shaped blocks) fixed / floating terminals (pins) Rotation might be allowed / denied oFlexible shape  soft macro (aka soft modules) (w 1,h 1 ) (w N,h N )

Fall 2003EE VLSI Design Automation I 122 Floorplanning (cont.) Objectives:  Minimize area  Determine best shape of soft modules  Minimize total wire length oto make subsequent routing phase easy (short wire length roughly translates into routability)  Additional cost components: oWire congestion (exact routability measure) oWire delays oPower consumption Possible additional constraints:  Fixed location for some modules  Fixed die, or range of die aspect ratio NP-hard (what did you expect? )

Fall 2003EE VLSI Design Automation I 123 Floorplanning: Why Important? Early stage of physical design  Determines the location of large blocks  detailed placement easier (divide and conquer!)  Estimates of area, delay, power  important design decisions  Impact on subsequent design steps (e.g., routing, heat dissipation analysis and optimization) B C G E LF KI J AH D J K L G I E H C B A F D Figs: [©Sherwani]

Fall 2003EE VLSI Design Automation I 124 Floorplan Classes Slicing, recursively defined as:  A module OR  A floorplan that can be partitioned into two slicing floorplans with a horizontal or vertical cut line Non-slicing  Superset of slicing floorplans  Contains the “wheel” shape too [©Sarrafzadeh] Slicing floorplan Corresp. Slicing tree Non-Slicing floorplan

Fall 2003EE VLSI Design Automation I 125 Hierarchical floorplan of order 5  Templates  Floorplan and tree example Non-slicing Floorplan Example [©Sarrafzadeh] L5R

Fall 2003EE VLSI Design Automation I 126 Floorplanning Algorithms Components  “Placeholder” representation oUsually in the form of a tree oSlicing class: Polish expression [Otten] oNon-slicing class: O-tree, Sequence Pair, BSG, etc. oJust defines the relative position of modules  Perturbation oGoing from one floorplan to another oUsually done using Simulated Annealing  Floorplan sizing oDefinition: Given a floorplan tree, choose the best shape for each module to minimize area oSlicing: polynomial, bottom-up algorithm oNon-slicing: NP! Use mathematical programming (exact solution)  Cost function oArea, wire-length,... The rest of theslides deal withslicing floorplans

Fall 2003EE VLSI Design Automation I 127 Area Utilization, Hard and Soft Modules The hierarchy tree and floorplan define “place holders” for modules Area utilization  Depends on how nicely the rigid modules’ shapes are matched  Soft modules can take different shapes to “fill in” empty slots  floorplan sizing m1 m7 m6 m5 m2 m4 m3 m1 m7 m6 m5 m2 m4 m3 m7 m1 m7 Area = 20x22 = 440Area = 20x19 = 380

Fall 2003EE VLSI Design Automation I 128 Floorplan Sizing for Slicing Floorplans Bottom-up process Has to be done per floorplan perturbation Requires O(n) time.  N is the total number of shapes of all the modules V LR [©Sarrafzadeh] H TB bibi aiai yjyj xjxj b i +y j max(a i, x j ) bibi aiai max(b i, y j ) a i + x j yjyj xjxj

Fall 2003EE VLSI Design Automation I x16 Sizing Slicing Floorplans m1 9x15 m7 m6 9x7 m5 8x16 8x11 m2 m4 m3 4x x75x4 8x8 4x8 3x6 4x5 7x5 Simple case:  All modules are hard macros  No rotation allowed  one shape only

Fall 2003EE VLSI Design Automation I 130 Sizing Slicing Floorplans (cont.) What if modules have more than one shape? If area only concern:  Module A has shapes 4x6, 7x8, 5x6, 6x4, 7x4, which ones should we pick?  Module A has shapes 4x6, 5x5, 6x4, which ones should we pick? (what if B is 3x5?!) Dominant points  Shape (x 1, y 1 ) dominates (x 2, y 2 ) if x 1  x 2 and y 1  y 2. AB    p q r  dominates p  dominates q  dominates r

Fall 2003EE VLSI Design Automation I 131 Sizing Slicing Floorplans: Example A A B B a1 a2 a3 4x6 5x56x4 b1 b2 b3 3x4 2x7 4x2 6x77x78x7 b1 a1 b1 a2 b1 a3 7x68x59x4 b2 a1 b2 a2 b2 a3 8x69x5 10x4 b3 a1 b3 a2 b3 a3

Fall 2003EE VLSI Design Automation I 132 Slicing Floorplan Sizing Algorithm Procedure Vertical_Node_Sizing Input: Two sorted lists L = { (a 1, b 1 ),..., (a s,b s ) }, R = { (x 1, y 1 ),..., (x t, y t ) } where a i b j, x i y j for all i < j Output: A sorted list H = { (c 1, d 1 ),..., (c u,d u ) } where u  s + t - 1, c i d j for all i < j begin-1 H :=  i := 1, j := 1, k = 1 while (i  s) and (j  t) do begin-2 (c k, d k ) := (a i + x j, max(b i, y j )) H := H  { (c k, d k ) } k := k + 1 if max(b i, y j ) = b i then i := i + 1 if max(b i, y j ) = y j then j := j + 1 end-2 end-1 [©Sarrafzadeh]

Fall 2003EE VLSI Design Automation I 133 Slicing Floorplan Sizing Input: floorplan tree, modules shapes Start with sorted shapes lists of modules In a bottom-up fashion, perform:  Vertical_Node_Sizing AND Horizontal_Node_Sizing When get to the root node, we have a list of shapes. Select the one that is best in terms of area In a top-down fashion, traverse the floorplan tree and set module locations

Fall 2003EE VLSI Design Automation I 134 Wire Length For hyperedges:  Either of complete graph, MST, or Steiner tree For each edge:  Euclidian distance sqrt( (x 1 -x 2 ) 2 + (y 1 -y 2 ) 2 ). oDirect lines  Manhattan distance |x 1 – x 2 | + |y 1 – y 2 | oManhattan: Only horizontal / vertical lines (c) complete graph (length = 32) (b) minimum spanning tree (length = 11) (a) Steiner tree (length = 13) [©Sherwani]

Fall 2003EE VLSI Design Automation I 135 Polish Expression Tree representation of the floorplan  Left child of a V-cut in the tree represents the left slice in the floorplan  Left child of an H-cut in the tree represents the top slice in the floorplan Polish expression representation  A string of symbols obtained by traversing a binary tree in post-order | | 5 - |

Fall 2003EE VLSI Design Automation I 136 Normalized Polish Expression Problem with Polish expressions?  Multiple representations for some slicing trees oWhen more than one cut in one direction cut a floorplan  Larger solution space  A stochastic algorithm (e.g., Simulated Annealing) will be more biased towards floorplans with multiple representations o(More likely to be visited) | | | 4 | [©Sarrafzadeh]

Fall 2003EE VLSI Design Automation I 137 Normalized Polish Expression (cont.) Solution?  Assign priorities to the cuts  In a top-down tree construction, oPick the right-most cut oPick the lowest cut  Result: no two same operators adjacent in the Polish expression (i.e., no “| |” or “— —”) – | 4 |

Fall 2003EE VLSI Design Automation I 138 Simulated Annealing Idea originated from observations of crystal formations (e.g., in lava)  A crystal is in a low energy state  Materials tend to form crystals (global minimum)  If at the right temperature (i.e., right speed), a molecule will adhere to a crystal formation Very slowly decrease temperature  When very hot, molecules move freely oWhen a molecule gets to a chunk of crystal, it *might* move away due to its high speed  When colder, molecules slow down oThe probability of moving away from a local optimum decreases  When the material “freezes”, all molecules are fixed and the material is in minimum energy state

Fall 2003EE VLSI Design Automation I 139 Simulated Annealing Algorithm Components:  Solution space (e.g., slicing floorplans)  Cost function (e.g., the area of a floorplan) oDetermines how “good” a particular solution is  Perturbation rules (e.g., transforming a floorplan to a new one)  Simulated annealing engine oA variable T, analogous to temperature oAn initial temperature T 0 (e.g., T 0 = 40,000) oA freezing temperature T freez (e.g., T freez =0.1) oA cooling schedule (e.g., T = 0.95 * T)

Fall 2003EE VLSI Design Automation I 140 Simulated Annealing Algorithm Procedure SimulatedAnnealing curSolution = random initial solution T = T 0 // initial temperature while (T > T freez ) do for i=1 to NUM_MOVES_PER_TEMP_STEP do nextSol = perturb (curSolution)  cost = cost(nextSol) – cost(curSolution) if acceptMove (  cost, T) then curSolution = nextSol// accept the move T = coolDown (T ) Procedure acceptMove (  cost, T) if  cost < 0 then return TRUE// always accept a good move else boltz = e -  cost / k T // Boltzmann probability function r = random(0,1)// uniform rand # between 0&1 if r < boltz then return TRUE else return FALSE

Fall 2003EE VLSI Design Automation I 141 Simulated Annealing: Move Acceptance Good moves are always accepted Accepting bad moves:  When T = T 0, bad move acceptance probability  1  When T = T freez, Bad move acceptance probability = 0 Boltzmann probability function?!?  boltz = e -  cost / k T.  k is the Boltzmann constant, chosen so that all moves at the initial temperature are accepted

Fall 2003EE VLSI Design Automation I 142 Simulated Annealing: More Insight... Annealing steps

Fall 2003EE VLSI Design Automation I 143 Simulated Annealing: More Insight...

Fall 2003EE VLSI Design Automation I 144 Wong-Liu Floorplanning Algorithm Uses simulated annealing Normalized Polish expressions represent floorplans Cost function:  cost = area + totalWireLength  Floorplan sizing is used to determine area  After floorplan sizing, the exact location of each module is known, hence wire-length can be calculated Perturbation?....

Fall 2003EE VLSI Design Automation I 145 Wong-Liu Floorplanning Algorithm (cont.) Moves:  OP1: Exchange two operands that have no other operands in between  OP2: Complement a series of operators between two operands  OP3: Exchange adjacent operand and operator if the resulting expression still a normalized Polish exp [©Sarrafzadeh] 12 | 4 – 3 |12 | 3 – 4 | – 4 | | OP1OP1OP2OP2OP3OP3

Fall 2003EE VLSI Design Automation I 146 Other Floorplanning Methods Rectangular dual graph Linear programming (floorplan sizing) Non-slicing methods  Sequence-pair  Bounded slice line grid  O-tree  Corner block list

Fall 2003EE VLSI Design Automation I 147 To Probe Further... Andrew B. Kahng, “Classical Floorplanning Harmful?", Int’l Symposium on Physical Design (ISPD), pp , (survey + future directions) F. Y. Young and D. F. Wong, “Slicing Floorplans With Range Constraint”, Int’l Symposium on Physical Design (ISPD), pp , (extension of Wong-Liu, some modules restrained to some regions) K. Bazargan, S. Kim and M. Sarrafzadeh, “Nostradamus: A Floorplanner of Uncertain Designs”, Int’l Symposium on Physical Design (ISPD), pp , (extension of Wong-Liu, notion of flexibility of a floorplan)

Fall 2003EE VLSI Design Automation I 148 To Probe Further... H. Murata, K. Fujiyoshi, S. Nakatake and Y. Kajitani, “Rectangle-Packing-Based Module Placement", Conference on Computer Aided Design (ICCAD), pp , (“Sequence Pair” non-slicing floorplan representation) X. Hong, G. Huang, Y. Cai, et. al., “Corner Block List: an Effective and Efficient Topological Representation of Non-slicing Floorplan”, Int’l Conference on Computer Aided Design (ICCAD), pp. 8-12, (non-slicing floorplan representation) Yingxin Pang, Chung-Kuan Cheng, Koen Lampaert, Weize Xie, “Rectilinear block packing using O-tree representation", Int’l Symposium on Physical Design (ISPD), pp , (extension of the non-slicing floorplan representation “O-tree” to handle L-shaped modules)