CAD Algorithms. Placement and Floorplanning

Similar documents
Introduction. A very important step in physical design cycle. It is the process of arranging a set of modules on the layout surface.

Estimation of Wirelength

L14 - Placement and Routing

Introduction VLSI PHYSICAL DESIGN AUTOMATION

Basic Idea. The routing problem is typically solved using a twostep

Term Paper for EE 680 Computer Aided Design of Digital Systems I Timber Wolf Algorithm for Placement. Imran M. Rizvi John Antony K.

ECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms

Genetic Placement: Genie Algorithm Way Sern Shong ECE556 Final Project Fall 2004

Graph Models for Global Routing: Grid Graph

ICS 252 Introduction to Computer Design

Place and Route for FPGAs

Very Large Scale Integration (VLSI)

CAD Algorithms. Circuit Partitioning

Placement Algorithm for FPGA Circuits

Unit 7: Maze (Area) and Global Routing

VLSI Physical Design: From Graph Partitioning to Timing Closure

VLSI Physical Design: From Graph Partitioning to Timing Closure

Chapter 5 Global Routing

An Introduction to FPGA Placement. Yonghong Xu Supervisor: Dr. Khalid

BACKEND DESIGN. Circuit Partitioning

Physical Design Implementation for 3D IC Methodology and Tools. Dave Noice Vassilios Gerousis

CAD Flow for FPGAs Introduction

EE582 Physical Design Automation of VLSI Circuits and Systems

Unification of Partitioning, Placement and Floorplanning. Saurabh N. Adya, Shubhyant Chaturvedi, Jarrod A. Roy, David A. Papa, and Igor L.

Problem Formulation. Specialized algorithms are required for clock (and power nets) due to strict specifications for routing such nets.

OpenAccess In 3D IC Physical Design

Floorplan and Power/Ground Network Co-Synthesis for Fast Design Convergence

Georgia Institute of Technology College of Engineering School of Electrical and Computer Engineering

ICS 252 Introduction to Computer Design

Routing. Robust Channel Router. Figures taken from S. Gerez, Algorithms for VLSI Design Automation, Wiley, 1998

TCG-Based Multi-Bend Bus Driven Floorplanning

VLSI Physical Design: From Graph Partitioning to Timing Closure

Genetic Algorithm for Circuit Partitioning

Unit 5A: Circuit Partitioning

CS612 Algorithms for Electronic Design Automation. Global Routing

ECE260B CSE241A Winter Routing

Floorplan Management: Incremental Placement for Gate Sizing and Buffer Insertion

Animation of VLSI CAD Algorithms A Case Study

Genetic Algorithm for FPGA Placement

Partitioning. Course contents: Readings. Kernighang-Lin partitioning heuristic Fiduccia-Mattheyses heuristic. Chapter 7.5.

Floorplan considering interconnection between different clock domains

GENETIC ALGORITHM BASED FPGA PLACEMENT ON GPU SUNDAR SRINIVASAN SENTHILKUMAR T. R.

Reference. Wayne Wolf, FPGA-Based System Design Pearson Education, N Krishna Prakash,, Amrita School of Engineering

Niyati Shah Department of ECE University of Toronto

OPTIMIZATION OF TRANSISTOR-LEVEL FLOORPLANS FOR FIELD-PROGRAMMABLE GATE ARRAYS. Ryan Fung. Supervisor: Jonathan Rose. April 2002

Digital VLSI Design. Lecture 7: Placement

CHAPTER 1 INTRODUCTION. equipment. Almost every digital appliance, like computer, camera, music player or

Chapter 5: ASICs Vs. PLDs

A Framework for Systematic Evaluation and Exploration of Design Rules

3-D INTEGRATED CIRCUITS (3-D ICs) are emerging

Introduction of ISPD18 Contest Problem

Planning for Local Net Congestion in Global Routing

Placement ABOUT THIS CHAPTER 11.1 INTRODUCTION CHAPTER. Chris Chu Iowa State University, Ames, Iowa

EN2911X: Reconfigurable Computing Lecture 13: Design Flow: Physical Synthesis (5)

Toward More Efficient Annealing-Based Placement for Heterogeneous FPGAs. Yingxuan Liu

Non-Rectangular Shaping and Sizing of Soft Modules for Floorplan Design Improvement

Constraint-Driven Floorplanning based on Genetic Algorithm

Iterative-Constructive Standard Cell Placer for High Speed and Low Power

AN 567: Quartus II Design Separation Flow

PARALLEL GENETIC ALGORITHMS IMPLEMENTED ON TRANSPUTERS

Parallel Simulated Annealing for VLSI Cell Placement Problem

A Study of Through-Silicon-Via Impact on the 3D Stacked IC Layout

ECE260B CSE241A Winter Placement

Multilayer Routing on Multichip Modules

A Path Based Algorithm for Timing Driven. Logic Replication in FPGA

Physical Design of Digital Integrated Circuits (EN0291 S40) Sherief Reda Division of Engineering, Brown University Fall 2006

Mincut Placement with FM Partitioning featuring Terminal Propagation. Brett Wilson Lowe Dantzler

Constructive floorplanning with a yield objective

ARCHITECTURE AND CAD FOR DEEP-SUBMICRON FPGAs

Full Custom Layout Optimization Using Minimum distance rule, Jogs and Depletion sharing

Layout Problem Optimization in VLSI Circuits Using Genetic Algorithm

Chapter 6 Detailed Routing

Sequential/Parallel Global Routing Algorithms for VLSI Standard. Cells

Thermal-Aware 3D IC Physical Design and Architecture Exploration

An Enhanced Congestion-Driven Floorplanner

UNIT 4 INTEGRATED CIRCUIT DESIGN METHODOLOGY E5163

Optimized Pin Assignment for Lower Routing Congestion After Floorplanning Phase

THE GROWING market for wireless technologies has

IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS 1

Electronic Design Automation Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Multi-Million Gate FPGA Physical Design Challenges

Automatic Cell Layout in the 7nm Era

Reducing Power in an FPGA via Computer-Aided Design

Laboratory 6. - Using Encounter for Automatic Place and Route. By Mulong Li, 2013

On Improving Recursive Bipartitioning-Based Placement

Circuit Placement: 2000-Caldwell,Kahng,Markov; 2002-Kennings,Markov; 2006-Kennings,Vorwerk

EE680 Project Report Final 05/05/2010 Zhou Zhao USC ID:

(Lec 14) Placement & Partitioning: Part III

EE878 Special Topics in VLSI. Computer Arithmetic for Digital Signal Processing

Encoding Techniques in Genetic Algorithms

Routability-Driven Bump Assignment for Chip-Package Co-Design

Parallel Implementation of VLSI Gate Placement in CUDA

Optimization Techniques for Design Space Exploration

Sungmin Bae, Hyung-Ock Kim, Jungyun Choi, and Jaehong Park. Design Technology Infrastructure Design Center System-LSI Business Division

Retiming & Pipelining over Global Interconnects

EE115C Digital Electronic Circuits. Tutorial 4: Schematic-driven Layout (Virtuoso XL)

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Digital Computer Arithmetic ECE 666

Scheduling on Parallel Systems. - Sathish Vadhiyar

EE 466/586 VLSI Design. Partha Pande School of EECS Washington State University

FastPlace 2.0: An Efficient Analytical Placer for Mixed- Mode Designs

Transcription:

CAD Algorithms Placement Mohammad Tehranipoor ECE Department 4 November 2008 1 Placement and Floorplanning Layout maps the structural representation of circuit into a physical representation Physical representation: Geometric coordinates for all the circuit elements and the wiring that interconnects the elements A circuit is represented by: list of circuit elements list of signals (nets) indicating terminals to be connected together 4 November 2008 2 1

Important Features Layout has two important functions: Positioning of components (Placement) Interconnecting the components (Routing) Placement and Routing are interdependent A fully auto place-n-route (PNR) system should be able to perform task simultaneously. Each problem is so complex. At most, iterative approach is practical. 4 November 2008 3 Placement Problem Placement is a key step in physical design cycle. Definitions: Position of component is its physical location and an orientation. Pins on components define locations where circuitry within component connects the interconnect between components. Subset of pins that are to be electrically connected form a net. Internal Circuitry Component Pins 4 November 2008 4 2

Placement Problem Depending on the IC design style Placement has different goals: Placement can affect Router Placement should concentrate on minimizing the length of interconnection or area Delays and design performance greatly depend on placement 4 November 2008 5 Input/Output of Placement Input: Set of fixed blocks Number and location of terminals for each block Netlist Block s dimensions Output Exact location of blocks Location of pins assigned to each component 4 November 2008 6 3

Placement at Various Levels System Level: Place all the PCBs together so that The area occupied is minimum. Heat is dissipated properly. Board Level: All the chips must be placed within a fixed area of the PCB. All blocks are fixed and rectangular/square in shape. Some chips may be pre-placed Minimize routing layers Heat dissipation Chip Level: Limited number of layers Minimum area Performance 4 November 2008 7 Objectives Normally we are given the maximum chip area Placement should define locations such that All elements get connected (routability) Routing area is minimized Routability and Performance are the measures of good Placement Routability: Depends on number of factors such as Router being used. Minimum routing area can only be estimated Performance: Depends on wirelengths. 4 November 2008 8 4

Objectives of a Good Placement Minimize area (total wiring area) Ensure routability Avoid signal interference Distribute heat Maximize performance 4 November 2008 9 Poor Placement Consumes large areas Results in performance degradation Results in difficult and sometimes impossible tasks (Routing) An ill-placed layout cannot be improved by high quality routing. 4 November 2008 10 5

Placement Methodology Goals: Time, Performance, Placement Minimize Wirelength, Maximize Routability Assume d s = total wirelength estimated for each net d i = N d = total estimated wirelength of the layout allnets Objective: Place such that N d is to be minimized 4 November 2008 11 Placement Problem Formulation Given an electrical circuit consisting of fixed blocks and a netlist interconnecting terminals on the periphery of these blocks Let B 1, B 2,,B n be the blocks to be placed. Each B i, 1 i n, has h i and w i. Let N = {N 1, N 2,,N m } be the set of nets. Let Q = {Q 1, Q 2,, Q k } be the rectangular empty areas allocated for routing between the blocks. Let L i denote the estimated length of net N i, 1 i m. 4 November 2008 12 6

Cont. Construct a layout indicating the positions of each block such that: No two rectangles overlap Placement is routable The total area of bounding box is minimized The total estimated wirelength is minimized In the case of high performance circuits The length of longest net is also minimized. This problem is known as the performance driven placement problem. The algorithm must ensure that the known critical paths lengths are shorter than a predefined value. Placement problem is NP-complete. 4 November 2008 13 Topological Congestion The layout area and routability of the layout are approximated by topological congestion. Less Congestion 4 November 2008 14 7

Wirelength The actual wiring paths are not known at the time of placement. Minimum spanning tree representations are the most commonly used structures to connect a net in the placement phase. MST is also used in Global routing phase. Optimal wiring paths for a net can be obtained using Rectilinear Steiner Tree. RST is used in detailed routing phase. 4 November 2008 15 Design Style Specific Placement Different design styles impose different restrictions on the layout and have different objectives in placement problems. Full Custom: No restriction on how the blocks can be placed. No two blocks overlap. Minimize the total layout area. The irregularity of block shapes is the main cause of unused areas (dead space). Minimize the unused areas. The objective of minimizing the layout area sometimes conflicts with the objective of minimizing the maximum length of a net. In high performance circuit design, additional constraints on net length are considered. 4 November 2008 16 8

Design Style Specific Placement Standard Cells: Simpler than the full custom placement problem Cells have same height. Cells are placed in rows. Minimizing area is equivalent to minimizing the summation of channel heights and minimizing the width of the widest row. All rows usually have equal widths. This may not be the case when using large standard cells. Total area: Required area for cells Required area for channels With advent of over-the-cell routing, the channels in the standard cells have almost disappeared (channel-less standard cell designs). Same for metal layers 4 November 2008 17 Design Style Specific Placement Gate Array: We already have Logic prefabricated Limited routing area Placement tries to find mappings for circuit elements that ensures routability in limited space Minimizing routing area is not as important as ensuring routability by minimizing congestion 4 November 2008 18 9

Placement Algorithms Partitioning-Based Algorithms Simulation-Based Algorithms Simulated Annealing Genetic Algorithm Performance-Driven Placement Algorithm 4 November 2008 19 Partitioning-Based Algorithms Breuer s Algorithms: The main idea for Breuer s algorithm is to reduce the number of nets being cut when the circuit is partitioned. Given E={e 1,e 2,,e n } a set of elements S={s 1,s 2,,s m } a set of signals (nets) L={l 1,l 2,,l p }, p n a set of locations Assign each element to unique location such that something is minimized. 4 November 2008 20 10

Min-cut Placement Various objective functions have been developed for this method. Total net-cut (Min-cut) objective function Min-max cut value objective function Sequential cut line objective function 4 November 2008 21 Min-cut Objective Function Let a layout be divided into smaller blocks using horizontal/vertical lines. For each line i, let C i be the # of wires cut by line i Placement procedures that minimize the value of v(i) are called Min-cut Placement Algorithms. 4 November 2008 22 11

Min-max Cut Value Objective Function In case of standard cells and gate arrays, the channel width depends on the number of nets that are routed through the channel. The more the number of nets the larger is the channel width. The objective function is to reduce the number of nets cut by the cut line across the channel. This will reduce the congestion in channels. 4 November 2008 23 Sequential Cut Line Objective Function It is very difficult to compute the minimum net cuts. Find cut lines c 1, c 2, c 3, c n in sequential manner such that: min(v(c n )) subject to min(v(c n-1 )) subject to.. min(v(c 1 )) 4 November 2008 24 12

Placement Procedures Cut Oriented Min-Cut Placement Quadrature Placement Bisection Placement Slice/Bisection Placement 4 November 2008 25 Min-cut Placement Partitioning is represented as a tree: 4 November 2008 26 13

Cut Oriented Min-Cut Placement Alg 1 3 2 4 This partitioning procedure is sequential and easy to implement. It does not provide good results. 4 November 2008 27 Quadrature Placement QP is the most popular algorithm. Bisect layout by a vertical line {B 1, B 2 } Cut two blocks by horizontal line {B 1 B 2 B 3 B 4 } Cut 4 blocks by V-line Stop when each element is placed 2a 1a 2a 2b 1b 2b 4 November 2008 28 14

Bisection Placement Procedure Divide Block into columns (rows) and then into rows (columns) This method is usually used for standard cell placement. 4a 3 4b 2a 1 2b 4 November 2008 29 Bisection Placement Procedure Not as effective as Quadrature technique Good for standard cell layout Does not guarantee the minimization of the maximum net cut per channel 4 November 2008 30 15

Slice Bisection Placement Given n elements Divide n elements into sets of k and n-k elements Repeat procedure to divide remaining n-k elements into sets of size k and n-2k Continue till all rows (columns) are formed Assign locations to elements in each row by vertical (horizontal) bisection. This method is most suitable for circuits which have a high degree of interconnection at the periphery. 6a 5 6b 1 2 3 4 November 2008 31 Group migration Group migration method can be used in the partitioning process to minimize the cut size. 4 November 2008 32 16

Simulated Annealing 4 November 2008 33 Simulated Annealing Based Placement begin: T = T start placement = init_placement; while (T > T end ) do { while (! equilibrium) do { perturb; delta = new_cost cost; if (delta < 0) accept; else if (random (0, 1) < e (-delta/t) ) accept; else reject ; } T = cool_down (T); } end 4 November 2008 34 17

TimberWolf 3.2 TimberWolf is a standard cell placement algorithm based on Simulated Annealing. TimberWolf is one of the most successful placement algorithm. In this algorithm, the parameters and functions are taken as follows: Fixed schedule T start = 4,000,000 // Initial temperature T end = 0.1 // Final temperature Cool_down = alpha (T) x T alpha (T) = 0.8 0.95 0.8 4 November 2008 35 TimberWolf 3.2 (Cont.) Perturb Displace a block to a new location Swap two blocks Change orientation of a block Cost function Cost = α wire length + β block overlap + γ row length overshoot 4 November 2008 36 18

Automatic Schedule Quality of placement depends on: Perturb Cost function Cooling schedule Runtime of SA placement depends on: Annealing (cooling) schedule Quality Vs Runtime: Non-linear/complex relationship 4 November 2008 37 Perturb Displace the current solution as little as possible Swaps, moves and reorients are widely used Affecting too many blocks will not work Temperature dependant Range limiters At High T, use the entire device As T lowers, use a smaller window of the device for swap/move targets 4 November 2008 38 19

Tweak Zones Cost function Components, weights Perturb Range limiters, moves/swaps etc Equilibrium T end 4 November 2008 39 Genetic Algorithm 4 November 2008 40 20

Genetic Algorithm Initial set of placement configurations is called Population, which can be generated randomly. The individuals in the population represent a feasible placement. SCORE is same as fitness. It can be wirelength. Three operations: Crossover Mutation Selection 4 November 2008 41 Genetic Algorithm begin no_pop = SIZE-POP; no_offspring = no_pop X k; pop = CONSTRUCT-POP(no-pop); for (i = 1 to no_pop) do SCORE(pop(i)) for (i = 1 to no_generation) do for (j = 1 to no_offspring) do (x,y) = CHOOSE-PARENT(pop) offspring(j) = GENERATE(x,y); SCORE(offspring(j)); pop = SELECT(pop, offspring, no_pop); for (j = 1 to no_pop) do MUTATE(pop(j)); Return highest scoring configuration in population end. 4 November 2008 42 21

Performance Driven Placement The delay at chip level plays an important role in determining performance of the chip. As the number of blocks in a chip increases, the size of the chip decreases but may result in longer interconnections between the blocks (performance degradation). The placement algorithms for high performance chips have to generate placements which will allow routers to route nets within the timing requirements. Also called path-based approach. The critical path length must be within its timing constraint. 4 November 2008 43 22