L14 Placement and Routing

download L14 Placement and Routing

of 40

Transcript of L14 Placement and Routing

  • 7/31/2019 L14 Placement and Routing

    1/40

    Massachusetts Institute of Technology

    1

    L14 Physical Design

    6.375 Spring 2007

    Ajay Joshi

  • 7/31/2019 L14 Placement and Routing

    2/40

    6.375 S rin 2007 L14 2

    RTL design flow

    RTLSynthesis

    HDL

    netlist

    Logicoptimization

    netlist

    Library/modulegenerators

    physicaldesign

    layout

    manualdesign

    a

    b

    s

    q0

    1

    d

    clk

    a

    b

    s

    q0

    1

    d

    clk

  • 7/31/2019 L14 Placement and Routing

    3/40

    6.375 S rin 2007 L14 3

    Physical design overall flow

    Placement

    Cost Estimation

    Routing RegionDefinition

    Global Routing

    Compaction/clean-up

    Detailed Routing

    Cost Estimation

    Write Layout Database

    Floorplanning

    Partitioning

    Improvement

    Cost EstimationImprovement

    Improvement

  • 7/31/2019 L14 Placement and Routing

    4/40

    6.375 S rin 2007 L14 4

    PartitioningDecompose a large complex system into

    smaller subsystemsDecompose hierarchically until eachsubsystem is of manageable size

    Design each subsystem separately to speedup the processMinimize connection between twosubsystems to reduce interdependency

  • 7/31/2019 L14 Placement and Routing

    5/40

    6.375 S rin 2007 L14 5

    Partitioning at different levels*

    * Sherwani 92

  • 7/31/2019 L14 Placement and Routing

    6/40

    6.375 S rin 2007 L14 6

    Partitioning example*

    * Sherwani 92

  • 7/31/2019 L14 Placement and Routing

    7/406.375 S rin 2007 L14 7

    Partitioning problemObjective:

    Minimize interconnections between partitionsMinimize delay due to partitioning

    Constraints

    Number of terminals in each subsystem (Count (V i)

  • 7/31/2019 L14 Placement and Routing

    8/406.375 S rin 2007 L14 8

    Kernighan-Lin algorithmInput: Graph representation of the circuit

    Output: Two subsets of equal sizesBisecting algorithm :

    Initial bisection

    Vertex pairs which gives the largest decrease incutsize are exchangedExchanged vertices are lockedIf no improvement is possible and some vertices

    are still unlocked then vertices which give smallestincrease are exchanged

  • 7/31/2019 L14 Placement and Routing

    9/406.375 S rin 2007 L14 9

    K-L algorithm example*

    * Sherwani 92

  • 7/31/2019 L14 Placement and Routing

    10/406.375 S rin 2007 L14 10

    Partitioning methodsTop-down partitioning

    Iterative improvementSpectral basedClustering methodsNetwork flow basedAnalytical basedMulti-level

    Bottom-up clustering

    Unit delay modelGeneral delay modelSequential circuits with retiming

  • 7/31/2019 L14 Placement and Routing

    11/406.375 S rin 2007 L14 11

    Physical design overall flow

    Placement

    Cost Estimation

    Routing RegionDefinition

    Global Routing

    Compaction/clean-up

    Detailed RoutingCost Estimation

    Write Layout Database

    Floorplanning

    Partitioning

    Improvement

    Cost EstimationImprovement

    Improvement

  • 7/31/2019 L14 Placement and Routing

    12/406.375 S rin 2007 L14 12

    FloorplanningOutput from partitioning used for

    floorplanningInputs:

    Blocks with well-defined shapes and areaBlocks with approximated area and no particularshapeNetlist specifying block connections

    Outputs:

    Locations for all blocks

  • 7/31/2019 L14 Placement and Routing

    13/406.375 S rin 2007 L14 13

    Floorplanning problem*Objectives

    Minimize areaReduce wirelengthMaximize routabilityDetermine shapes

    of flexible blocksConstraints

    Shape of each blockArea of each block

    Pin locations foreach blockAspect ratio

    * Sung Kyu Lim

  • 7/31/2019 L14 Placement and Routing

    14/406.375 S rin 2007 L14 14

    Slicing floorplan sizing*General case: all modules are soft macros

    Phase 1: bottom-upInput floorplan tree, modules shapesStart with a sorted shapes list of modulesPerform vertical_node_sizing andhorizontal_node_sizingOn reaching the root node, we have a list ofshapes, select the one that is best in terms of area

    Phase 2: top-downTraverse the floorplan tree and set modulelocations

    * Sung Kyu Lim

  • 7/31/2019 L14 Placement and Routing

    15/406.375 S rin 2007 L14 15

    Sizing example*

    * Sun K u Lim

  • 7/31/2019 L14 Placement and Routing

    16/406.375 S rin 2007 L14 16

    Floorplanning AlgorithmsStockmeyer algorithm

    Simulated annealingLinear programmingSequence-pair based floorplanning

  • 7/31/2019 L14 Placement and Routing

    17/406.375 S rin 2007 L14 17

    Floorplanning - Encounter

  • 7/31/2019 L14 Placement and Routing

    18/406.375 S rin 2007 L14 18

    Physical design overall flow

    Placement

    Cost Estimation

    Routing RegionDefinition

    Global Routing

    Compaction/clean-up

    Detailed RoutingCost Estimation

    Write Layout Database

    Floorplanning

    Partitioning

    Improvement

    Cost EstimationImprovement

    Improvement

  • 7/31/2019 L14 Placement and Routing

    19/406.375 S rin 2007 L14 19

    PlacementThe process of arranging circuit components

    on a layout surfaceInputs : Set of fixed modules, netlistOutput : Best position for each module based

    on various cost functionsCost functions include wirelength, wireroutability, hotspots, performance, I/O pads

  • 7/31/2019 L14 Placement and Routing

    20/406.375 S rin 2007 L14 20

    Good placement vs Bad placement*

    * S. Devadas

    Good placementNo congestionShorter wiresLess metal levelsSmaller delayLower power dissipation

    Bad placementCongestionLonger wire lengthsMore metal levelsLonger delayHigher power dissipation

  • 7/31/2019 L14 Placement and Routing

    21/406.375 S rin 2007 L14 21

    Simulated annealing algorithmGlobal optimization technique

    Cooling schedule is adoptedAn action performed at each new temperatureEstimate the cost associated with an action

    If new cost < old cost accept the actionIf new cost > old cost then accept the actionwith probability p

    Probability p depends on a temperatureschedule Higher p at higher temperature

  • 7/31/2019 L14 Placement and Routing

    22/406.375 S rin 2007 L14 22

    Annealing curve

    * Sherwani 92

  • 7/31/2019 L14 Placement and Routing

    23/406.375 S rin 2007 L14 23

    Placement using simulated annealingUse initial placement results e.g. random

    placementTwo stage process*

    Stage 1Modules moved between different rows and same rowModule overlaps allowedStage two begins when temperature falls below a certainvalue

    Stage 2

    Module overlaps removedAnnealing continued, but interchange adjacent modulesin the same row

    * Sechen DAC86

  • 7/31/2019 L14 Placement and Routing

    24/406.375 S rin 2007 L14 24

    Placement methodsConstructive methods

    Cluster growth algorithmForce-directed methodAlgorithm by GotoMin-cut based algorithm

    Iterative improvement methodsPairwise exchangeSimulated annealing Timberwolf

    Genetic algorithmAnalytical methods

    Gordian, Gordian-L

  • 7/31/2019 L14 Placement and Routing

    25/406.375 S rin 2007 L14 25

    Placement - Encounter

  • 7/31/2019 L14 Placement and Routing

    26/406.375 S rin 2007 L14 26

    Optimized placement - Encounter

  • 7/31/2019 L14 Placement and Routing

    27/406.375 S rin 2007 L14 27

    Physical design overall flow

    Placement

    Cost Estimation

    Routing RegionDefinition

    Global Routing

    Compaction/clean-up

    Detailed RoutingCost Estimation

    Write Layout Database

    Floorplanning

    Partitioning

    Improvement

    Cost EstimationImprovement

    Improvement

  • 7/31/2019 L14 Placement and Routing

    28/406.375 S rin 2007 L14 28

    RoutingConnect the various standard cells using

    wiresInput:

    Cell locations, netlist

    Output:Geometric layout of each net connecting variousstandard cells

    Two-step process

    Global routingDetailed routing

  • 7/31/2019 L14 Placement and Routing

    29/406.375 S rin 2007 L14 29

    Global routing vs detailed routing*

    * Sung Kyu Lim

  • 7/31/2019 L14 Placement and Routing

    30/406.375 S rin 2007 L14 30

    Routing problem formulationObjective

    100% connectivity of a systemMinimize areaMinimize wirelength

    ConstraintsNumber of routing layersDesign rulesTiming (delay)

    CrosstalkProcess variations

  • 7/31/2019 L14 Placement and Routing

    31/40

    6.375 S rin 2007 L14 31

    Maze routing - example

    * Sung Kyu Lim

  • 7/31/2019 L14 Placement and Routing

    32/40

    6.375 S rin 2007 L14 32

    Maze routingMainly for single-layer routing

    StrengthsFinds a connection between two terminals if itexists

    WeaknessLarge memory required as dense layoutSlow

    Application global routing, detailed routing

  • 7/31/2019 L14 Placement and Routing

    33/40

    6.375 S rin 2007 L14 33

    Routing algorithmsGlobal routing

    Maze routingCong/Preas algorithm Spanning tree algorithmSteiner tree algorithm

    Detailed routing2-L Channel routing: Basic left-edge algorithmY-K algorithm

  • 7/31/2019 L14 Placement and Routing

    34/40

    6.375 S rin 2007 L14 34

    Detailed routing - Encounter

  • 7/31/2019 L14 Placement and Routing

    35/40

    6.375 S rin 2007 L14 35

    Critical path - Encounter

  • 7/31/2019 L14 Placement and Routing

    36/40

    6.375 S rin 2007 L14 36

    Specialized routing

    * Sherwani 92

  • 7/31/2019 L14 Placement and Routing

    37/40

    6.375 S rin 2007 L14 37

    Clock distribution - Encounter

  • 7/31/2019 L14 Placement and Routing

    38/40

    6.375 S rin 2007 L14 38

    Power routing*

    *6.884 Spring 2005

  • 7/31/2019 L14 Placement and Routing

    39/40

    6.375 S rin 2007 L14 39

    Power distribution issues

    Noise in power supplyIR drop (static)L di/dt (transient)

    ElectromigrationSolution: decoupling capacitance, wirematerial

    Kaveh Shakeri

  • 7/31/2019 L14 Placement and Routing

    40/40

    SummaryLooked at the physical design flow

    Involved several stepsPartitioningFloorplanningPlacementRouting

    Each step can be formulated as anoptimization problem

    Need to go through 2 or more iterations ineach step to generate an optimized solution