Placement 1 Outline Goal What is Placement? Why Placement?

Slides:



Advertisements
Similar presentations
Informed search algorithms
Advertisements

Simulated Annealing Premchand Akella. Agenda Motivation The algorithm Its applications Examples Conclusion.
Applying Machine Learning to Circuit Design David Hettlinger Amy Kerr Todd Neller.
100 Placement Assign logic blocks to specific chip locations Seek to minimize routing distance, congestion CLB IOB.
Local search algorithms
Local search algorithms
ISQED’2015: D. Seemuth, A. Davoodi, K. Morrow 1 Automatic Die Placement and Flexible I/O Assignment in 2.5D IC Design Daniel P. Seemuth Prof. Azadeh Davoodi.
1 Chapter 5 Advanced Search. 2 Chapter 5 Contents l Constraint satisfaction problems l Heuristic repair l The eight queens problem l Combinatorial optimization.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 20: April 13, 2009 Placement II (Simulated Annealing)
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
MAE 552 – Heuristic Optimization Lecture 6 February 6, 2002.
Routing 1 Outline –What is Routing? –Why Routing? –Routing Algorithms Overview –Global Routing –Detail Routing –Shortest Path Algorithms Goal –Understand.
Reconfigurable Computing (EN2911X, Fall07)
Physical Design Outline –What is Physical Design –Design Methods –Design Styles –Analysis and Verification Goal –Understand physical design topics.
Simulated Annealing 10/7/2005.
Review Best-first search uses an evaluation function f(n) to select the next node for expansion. Greedy best-first search uses f(n) = h(n). Greedy best.
1 Simulated Annealing Terrance O ’ Regan. 2 Outline Motivation The algorithm Its applications Examples Conclusion.
Simulated Annealing Van Laarhoven, Aarts Version 1, October 2000.
EDA (CS286.5b) Day 7 Placement (Simulated Annealing) Assignment #1 due Friday.
CSE 144 Project Part 2. Overview Multiple rows Routing channel between rows Components of identical height but various width Goal: Implement a placement.
Partitioning 1 Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem.
Routing 2 Outline –Maze Routing –Line Probe Routing –Channel Routing Goal –Understand maze routing –Understand line probe routing.
Partitioning Outline –What is Partitioning –Partitioning Example –Partitioning Theory –Partitioning Algorithms Goal –Understand partitioning problem –Understand.
Chip Planning 1. Introduction Chip Planning:  Deals with large modules with −known areas −fixed/changeable shapes −(possibly fixed locations for some.
Introduction to Simulated Annealing 22c:145 Simulated Annealing  Motivated by the physical annealing process  Material is heated and slowly cooled.
ECE 506 Reconfigurable Computing Lecture 7 FPGA Placement.
By Rohit Ray ESE 251.  Most minimization (maximization) strategies work to find the nearest local minimum  Trapped at local minimums (maxima)  Standard.
ECE 506 Reconfigurable Computing Lecture 8 FPGA Placement.
CSE 242A Integrated Circuit Layout Automation Lecture 5: Placement Winter 2009 Chung-Kuan Cheng.
Placement by Simulated Annealing. Simulated Annealing  Simulates annealing process for placement  Initial placement −Random positions  Perturb by block.
1 IE 607 Heuristic Optimization Simulated Annealing.
Simulated Annealing.
Local Search Algorithms This lecture topic Chapter Next lecture topic Chapter 5 (Please read lecture topic material before and after each lecture.
Regularity-Constrained Floorplanning for Multi-Core Processors Xi Chen and Jiang Hu (Department of ECE Texas A&M University), Ning Xu (College of CST Wuhan.
1 Chapter 5 Advanced Search. 2 Chapter 5 Contents l Constraint satisfaction problems l Heuristic repair l The eight queens problem l Combinatorial optimization.
Massachusetts Institute of Technology 1 L14 – Physical Design Spring 2007 Ajay Joshi.
Simulated Annealing.
Placement. Physical Design Cycle Partitioning Placement/ Floorplanning Placement/ Floorplanning Routing Break the circuit up into smaller segments Place.
Congestion Estimation and Localization in FPGAs: A Visual Tool for Interconnect Prediction David Yeager Darius Chiu Guy Lemieux The University of British.
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
Modern VLSI Design 3e: Chapter 10 Copyright  1998, 2002 Prentice Hall PTR Topics n CAD systems. n Simulation. n Placement and routing. n Layout analysis.
Iterative Improvement Algorithm 2012/03/20. Outline Local Search Algorithms Hill-Climbing Search Simulated Annealing Search Local Beam Search Genetic.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 10: February 6, 2002 Placement (Simulated Annealing…)
1 CS612 Algorithms for Electronic Design Automation CS 612 – Lecture 1 Course Overview Mustafa Ozdal Computer Engineering Department, Bilkent University.
Local search algorithms In many optimization problems, the state space is the space of all possible complete solutions We have an objective function that.
Optimization Problems
FPGA CAD 10-MAR-2003.
Ramakrishna Lecture#2 CAD for VLSI Ramakrishna
An Introduction to Simulated Annealing Kevin Cannons November 24, 2005.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 10: February 16, 2011 Placement II (Simulated Annealing)
Lecture 6 – Local Search Dr. Muhammad Adnan Hashmi 1 24 February 2016.
Local Search Algorithms and Optimization Problems
The Annealing Algorithm Revisited L.P.P.P. van Ginneken DigiPen Institute of Technology.
CS137 Electronic Design Automation Day 9: February 25, 2004 Placement II André DeHon, Michael Wrighton.
CALTECH CS137 Winter DeHon 1 CS137: Electronic Design Automation Day 8: January 27, 2006 Cellular Placement.
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.
Local search algorithms In many optimization problems, the path to the goal is irrelevant; the goal state itself is the solution State space = set of "complete"
Optimization Problems
Partial Reconfigurable Designs
Simulated Annealing Chapter
Simulated Annealing Premchand Akella.
Heuristic Optimization Methods
Local Search Algorithms
Optimization Problems
CSE 589 Applied Algorithms Spring 1999
Topics Logic synthesis. Placement and routing..
ESE535: Electronic Design Automation
Xin-She Yang, Nature-Inspired Optimization Algorithms, Elsevier, 2014
Local Search Algorithms
Reconfigurable Computing (EN2911X, Fall07)
Presentation transcript:

Placement 1 Outline Goal What is Placement? Why Placement? Placement Algorithms Goal Understand placement problem Understand placement algorithms

What is Placement? Determination of component locations Goal cells in standard cells ICs on PC board pins on ICs gates in gate array modules in chip floorplan Goal minimize chip/board area minimize routing area minimize unused area minimize wiring length minimize length of critical paths evenly distribute power dissipation minimize crosstalk A B C E D A B C D E

Why Placement? Hand placement impractical Multi-goal optimization 1k-1000k cells in standard cell array Multi-goal optimization placement area routing area delay power symmetry - analog circuits Generation of routing specification placement algorithms generate information for router routing channels in slicing structure

Objective Functions Minimize placement cost according to function want fast but reasonably accurate metrics area total area taken by components and estimated wiring wire length (!= delay) minimum spanning tree Steiner tree half-perimeter of bounding box wiring congestion track density along channels cutset size density: avg. 2.2 peak/avg 1.82 1 2 4 3 1

Cluster Growth Placement Add components to initial placement select components strongly connected to placed ones place near strongly connected components Algorithm seedComponents = select components for seed currentPlacement = PLACE(seedComponents, currentPlacement) while all components not placed do selectedComponent = SELECT(currentPlacement) currentPlacement = PLACE(selectedComponent, currentPlacement) endloop results not that good often used for initial starting position for other algorithms O(n2) complexity for n components Unplaced Components Placed Components

Simulated Annealing Problem Solution: Simulated Annealing “greedy” approaches only accept “downhill” moves that improve cost function can get stuck in local minima far from global minimum Solution: Simulated Annealing jump out of local minima analogy to real annealing heat allows atoms to jump out of local minima cool slowly so atoms jump enough to get close to global minimum

Simulated Annealing Randomly move components “Cool” system score decreases => accept move score increases => accept move with some probability common function: e-deltaS/t probability decreases over time “Cool” system initial “temperature” t high enough to randomize system decrease temperature - the “annealing schedule” do a bunch of moves between temperature changes

Simulated Annealing Algorithm t = t0 currentPlacement = randomInitialPlacement currentScore = SCORE(currentPlacement) until freezing point is reached do until equilibrium at current t is reached do selectedComponents = SELECT(atRandom) trialPlacement = MOVE(selectedComponents, atRandom) trialScore = SCORE(trialPlacement) deltaS = trialScore - currentScore if deltaS < 0 then currentScore = trialScore else r = uniformrandom(0,1) if r < e-deltaS/t then currentScore = trialScore currentPlacement = trialPlacement endif endloop t = a*t

Move Functions for Placement Pair Swap cells may be of different size results in cell overlap penalize in cost function final postprocess to remove overlaps Single Cell often causes cell overlap more general Cluster move connected components avoids a lot of unnecessary moves

Simulated Annealing Control Annealing Schedule cool fast to minimize CPU time cool slowly to get close to global optimum maintain equilibrium at each temperature exponentially slowly to get global optimum usually a = 0.95 a = e-0.7t is closer to optimal at each temperature do “enough” moves to reach equilibrium stop when nothing moves Cost Function weighted sum of objectives score = w1*WireLength + w2*ChipArea + w3*CellOverlapArea + w4*ChipAspectRatio change weights to emphasize different goals “good” weights found by trial-and-error can also change weights as annealing runs

Simulated Annealing Improvements Minimizing Move Rejection at high temperature nearly all moves are accepted system is randomized at low temperature nearly all moves are rejected most CPU time is wasted Approaches for Placement range limiters - limit distance of moves far away moves unlikely at lower temperatures only generate acceptable moves moves that improve cost function partitioning example: move cells with positive gain must keep around lots of information cost per move is higher, but less wasted effort

Simulated Annealing Issues Advantages general-purpose optimization approach finds global optimum easily trade speed for quality can incorporate many cost functions can incorporate complex move functions take advantage of problem structure Disadvantages constraints complicate move and cost functions e.g. preplaced blocks, fixed wire lengths CPU hog Implementations Timberwolf, Cadence, Avant! - standard cell placement ACACIA - analog circuit transistor placement