chapter 6 soc encounter

Upload: sumanth-varma

Post on 02-Mar-2018

282 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/26/2019 Chapter 6 Soc Encounter

    1/222

    Cell-Based IC Physical Design and Verification

    - SOC Encounter

    CIC 2006/02

  • 7/26/2019 Chapter 6 Soc Encounter

    2/222

    2

    Class Schedule

    Day1 Design Flow Over View

    Prepare Data

    Getting Started

    Importing Design

    Specify Floorplan

    Power Planning

    Placement Synthesize Clock Tree

    Day2 Timing Analysis

    Trial Route

    Power Analysis

    SRoute

    NanoRoute

    Fill Filler

    Output Data DRC

    LVS

    extraction/nanosim

  • 7/26/2019 Chapter 6 Soc Encounter

    3/222

    3

    Chapter1

    Cell-Based Physical DesignSOC Encounter 4.2

  • 7/26/2019 Chapter 6 Soc Encounter

    4/222

    4

    Cell-Based Design Flow

    synthesis

    Routed

    design

    Add LVS/Nanosim text

    Replace layout

    GDSII

    DRC LVS

    Post layout simulation

    Tape out

    Gate level

    netlist

    VerilogVHDL

    Place & Route

  • 7/26/2019 Chapter 6 Soc Encounter

    5/222

    5

    SOC Encounter P&R flow

    IO,P/G Placement

    Specify floorplan

    Amoeba Placement

    Power Planning

    Timing Analysis

    Clock Tree Synthesis

    Timing Analysis

    Post-CTS Optimization

    Power Analysis

    IO constraints

    Power Route

    SI Driven Route

    Timing/SI Analysis

    Output GDS, Netlist,Spef,DEF

    Pre-CTS Optimization

    Netlist (verilog)

    Timing constraints (sdc)

  • 7/26/2019 Chapter 6 Soc Encounter

    6/222

    6

    IO, P/G Placement

    VDD

    VSS

    IOVDD IOVSS

    I1

    I2

    I3

    I4

    O2

    O1

    O3

    O4

    Corner1 Corner2

    Corner3 Corner4

  • 7/26/2019 Chapter 6 Soc Encounter

    7/222

    7

    Specify Floorplan

    Hight

    Width

  • 7/26/2019 Chapter 6 Soc Encounter

    8/222

    8

    Floorplan

    VDD

    VSS

    IOVDD IOVSS

    I1

    I2

    I3

    I4

    O2

    O1

    O3

    O4

    M2

    M1 M3

  • 7/26/2019 Chapter 6 Soc Encounter

    9/222

    9

    Amoeba Placement

  • 7/26/2019 Chapter 6 Soc Encounter

    10/222

    10

    Power Planning

  • 7/26/2019 Chapter 6 Soc Encounter

    11/222

    11

    Clock Tree Synthesis

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    CLK

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    Q

    D

    CLK

  • 7/26/2019 Chapter 6 Soc Encounter

    12/222

    12

    Power Analysis

  • 7/26/2019 Chapter 6 Soc Encounter

    13/222

  • 7/26/2019 Chapter 6 Soc Encounter

    14/222

    14

    Add IO Filler

  • 7/26/2019 Chapter 6 Soc Encounter

    15/222

    15

    Routing

  • 7/26/2019 Chapter 6 Soc Encounter

    16/222

    16

    Prepare Data

    Library Physical Library (LEF) Timing Library (LIB)

    Capacitance Table

    Celtic Library

    FireIce/Voltage Storm Library

    User Data

    Gate-Level netlist (verilog)

    SDC constraints

    IO constraint

  • 7/26/2019 Chapter 6 Soc Encounter

    17/222

    17

    LEF Format

    -- Process Technology

    Layers Design Rule ParasiticPOLY

    Metal1

    Metal2

    Contact

    Via1

    Net widthNet spacing

    AreaEnclosureWide metalslotAntennaCurrent density

    ResistanceCapacitance

  • 7/26/2019 Chapter 6 Soc Encounter

    18/222

  • 7/26/2019 Chapter 6 Soc Encounter

    19/222

  • 7/26/2019 Chapter 6 Soc Encounter

    20/222

    20

    LEF Format

    -- APR technology : SITE

    The Placement site give the placement grid of a family of

    macros

    a sitea row

  • 7/26/2019 Chapter 6 Soc Encounter

    21/222

    21

    Row Based PR

    VDD

    VSS

    VDD

    VSS

  • 7/26/2019 Chapter 6 Soc Encounter

    22/222

    22

    LEF Format

    -- APR technology :routing pitch , default direction

    metal2 routing pitch

    metal1 routing pitch

    Horizontal

    routing

    Vertical

    routingMetal1

    Metal3

    Metal5

    Metal2

    Metal4

    Metal6

    via

  • 7/26/2019 Chapter 6 Soc Encounter

    23/222

    23

    LEF Format

    -- APR technology : via generate

    To connect wide metal , create a via array toreduce via resistance

    Defines formulas for generating via arrays

    Layer Metal1

    Direction HORIZONTAL

    OVERHANG 0.2

    Layer Metal2

    Direction VERTICALOVERHANG 0.2

    Layer Via1

    RECT 0.14 0.140.140.14

    SPACING 0.56 BY 0.56

    Generated via

    Default via

  • 7/26/2019 Chapter 6 Soc Encounter

    24/222

    24

    LEF Format

    -- APR technology : via stack

    Without via stack With via stack

    Higher density routing

    Easier usage of upper layer

    Must Follow minimum area rule

  • 7/26/2019 Chapter 6 Soc Encounter

    25/222

  • 7/26/2019 Chapter 6 Soc Encounter

    26/222

    26

    LEF Format

    -- APR technology : Double Cut Via

    Metal2

    Double cut Via12

    Metal1

  • 7/26/2019 Chapter 6 Soc Encounter

    27/222

    27

    LEF Format

    -- APR technology : SameNet Spacing

    SPACINGSAMENET Metal1 Metal1 0.23 ;

    SAMENET Metal2 Metal2 0.28 STACK ;

    SAMENET Metal3 Metal3 0.28 ;

    SAMENET VIA12 VIA12 0.26 ;

    SAMENET VIA23 VIA23 0.26 ;

    SAMENET VIA12 VIA23 0.0 STACK ;

    END SPACING

    Metal1

    0.23 same net spacing rule

    Metal1 Metal3

    VIA12 and VIA23

    VIA12 and VIA23 allow stack

  • 7/26/2019 Chapter 6 Soc Encounter

    28/222

  • 7/26/2019 Chapter 6 Soc Encounter

    29/222

    29

    LEF Format

    -- APR technology : Physical Macros cont.

    VDD

    VSS

    BA

    Y

    MACRO ADD1CLASS CORE ;

    FOREIGN ADD1 0.0 0.0 ;ORIGEN 0.0 0.0 ;LEQ ADD ;SIZE 19.8 BY 6.4 ;SYMMETRY x y ;SITE coresite ;PIN A

    DIRECTION INPUT ;PORTLAYER Metal1 ;RECT 19.2 8.2 19.5 10.3 ;

    END

    END APIN B

    ..END BOBS

    END

    END ADD1

  • 7/26/2019 Chapter 6 Soc Encounter

    30/222

  • 7/26/2019 Chapter 6 Soc Encounter

    31/222

    31

    CeltIC Library

    cdB model

    The cdB noise library structure

    SPICE Transistor Model

    Noise Data for Cell 1

    .subckt Transistor Description for Cell 1

    Noise Data for Cell N

    .subckt Transistor Description for Cell N

  • 7/26/2019 Chapter 6 Soc Encounter

    32/222

  • 7/26/2019 Chapter 6 Soc Encounter

    33/222

  • 7/26/2019 Chapter 6 Soc Encounter

    34/222

    34

    FireIce/Voltage Storm Library

    lefdef.layermap

    #type layer_ict lefdef layer_lef

    metal METAL_1 lefdef METAL1

    metal METAL_2 lefdef METAL2

    metal METAL_3 lefdef METAL3metal METAL_4 lefdef METAL4

    via VIA_1 lefdef VIA12

    via VIA_2 lefdef VIA23

    via VIA_3 lefdef VIA34

  • 7/26/2019 Chapter 6 Soc Encounter

    35/222

    35

    gate-level netlist

    If designing a chip , IO pads , power pads and Corner

    pads should be added before the netlist is imported.

    Make sure that there is no assign statement and no *cell* cell name in the netlist.

    Use the synthesis command below to remove assign statement.set_boundary_optimization

    Use the synthesis commands below to remove *cell* cell namedefine_name_rules name_rulemap {{\\*cell\\* cell}}change_nameshierarchyoutput name_rule

    http://%2Acell/*http://%2Acell/*http://%2Acell/*http://%2Acell/*
  • 7/26/2019 Chapter 6 Soc Encounter

    36/222

  • 7/26/2019 Chapter 6 Soc Encounter

    37/222

  • 7/26/2019 Chapter 6 Soc Encounter

    38/222

    38

    SDC constraint

    -- create_generated_clock

    create_generated_clock [-add]

    [-master_clock][-name clock_name]

    [-source source_pin]

    [-multiply_by mult]

    [-divide_by div][-duty_cycle percent]

    [-neg]

    [-edges edge_list]

    [-edge_shift edge_shift_list]clock_root_list

    create_generated_clockname CLK2source [get_ports I_CLK]divide_by 2 [get_pins DF/QN]

    QND

    TopI_CLK

    div_clk

  • 7/26/2019 Chapter 6 Soc Encounter

    39/222

  • 7/26/2019 Chapter 6 Soc Encounter

    40/222

  • 7/26/2019 Chapter 6 Soc Encounter

    41/222

  • 7/26/2019 Chapter 6 Soc Encounter

    42/222

  • 7/26/2019 Chapter 6 Soc Encounter

    43/222

  • 7/26/2019 Chapter 6 Soc Encounter

    44/222

  • 7/26/2019 Chapter 6 Soc Encounter

    45/222

  • 7/26/2019 Chapter 6 Soc Encounter

    46/222

  • 7/26/2019 Chapter 6 Soc Encounter

    47/222

  • 7/26/2019 Chapter 6 Soc Encounter

    48/222

    48

    Static Timing Analysis

    31

    3

    1

    21

    32

    AT=2

    AT=5

    RAT=10

    31

    3

    1

    21

    32

    AT=2

    AT=5

    RAT=10

    AT=7RAT=7

    AT=9RAT=8

    AT=6RAT=5

    AT=2RAT=5

    AT=5RAT=4

    AT=11

    RAT=10

    Path-based:

    2+2+3 = 7 (OK)2+3+1+3 = 9 (OK)2+3+3+2 = 10 (OK)5+1+1+3 = 10 (OK)5+1+3+2 = 11 (Fail)

    5+1+2 = 8 (OK)

    Block-based:

    Critical path is determinedas collection of gates withthe same, negative slack:In our case, we see one

    critical path with slack = -1

  • 7/26/2019 Chapter 6 Soc Encounter

    49/222

  • 7/26/2019 Chapter 6 Soc Encounter

    50/222

  • 7/26/2019 Chapter 6 Soc Encounter

    51/222

  • 7/26/2019 Chapter 6 Soc Encounter

    52/222

    52

    Static Timing Analysis

    Reg to PO

    Tarrival = Tclk1+ TDFF1(clk->Q)+TPATH Trequire = Tcycle- TPO(output delay) Tslack= Trequire- Tarrival

    Setup time

  • 7/26/2019 Chapter 6 Soc Encounter

    53/222

  • 7/26/2019 Chapter 6 Soc Encounter

    54/222

  • 7/26/2019 Chapter 6 Soc Encounter

    55/222

  • 7/26/2019 Chapter 6 Soc Encounter

    56/222

  • 7/26/2019 Chapter 6 Soc Encounter

    57/222

  • 7/26/2019 Chapter 6 Soc Encounter

    58/222

    58

    IO constraint

    Version: 1

    MicronPerUserUnit: value

    Pin: pinName side |corner

    Pad: padInstanceName side|corner [cellName]

    Offset: length

    Skip: length

    Spacing: lengthKeepclear: side offset1 offset2

    Create an I/O assignment file manualy using the following template:

  • 7/26/2019 Chapter 6 Soc Encounter

    59/222

    59

    IO constraintcont.

    Version: 1

    Pad: CORNER0 NW PCORNERDGZPad: PAD_CLK N

    Pad: PAD_HALT N

    Pad: CORNER1 NE PCORNERDGZ

    Pad: PAD_X1 WPad: PAD_X2 W

    Pad: CORNER2 SW PCORNERDGZ

    Pad: PAD_IOVDD1 S PVDD2DGZ

    Pad: PAD_IOVSS1 S PVSS2DGZ

    Pad: CORNER3 SE PCORNERDGZ

    Pad: PAD_VDD1 E PVDD1DGZ

    Pad: PAD_VSS1 E PVSS2DGZ

    PA

    D_CLK

    PA

    D_HALT

    P

    AD_IOVDD1

    PAD_IOVSS1

  • 7/26/2019 Chapter 6 Soc Encounter

    60/222

    60

    SSO Consideration

    SSO

    Simultaneously Switch OutputsSSN The noise produced by SSO buffers

    DI maximum number of copies for one specific kind of I/O pad

    switching from high to low simultaneously without makingground voltage level higher than 0.8 volt for one ground pad

    DF Drive Factor, DF = 1/DI

    SDF

    Sum of Drive Factor

  • 7/26/2019 Chapter 6 Soc Encounter

    61/222

  • 7/26/2019 Chapter 6 Soc Encounter

    62/222

  • 7/26/2019 Chapter 6 Soc Encounter

    63/222

  • 7/26/2019 Chapter 6 Soc Encounter

    64/222

  • 7/26/2019 Chapter 6 Soc Encounter

    65/222

  • 7/26/2019 Chapter 6 Soc Encounter

    66/222

  • 7/26/2019 Chapter 6 Soc Encounter

    67/222

  • 7/26/2019 Chapter 6 Soc Encounter

    68/222

    68

    Design Views

    FloorplanView

    displays the hierarchical module and blockguides,connection flight lines and floorplan objects

    Amoeba View display the outline of modules after placement

    Placement View display the detailed placements of cells, blocks.

  • 7/26/2019 Chapter 6 Soc Encounter

    69/222

    69

    Display Control

    Select Bar

  • 7/26/2019 Chapter 6 Soc Encounter

    70/222

    70

    Common Used Bindkeys

    Key Action

    q Edit attribute

    f Fits display

    z Zoom in

    Z Zoom out

    Arrows pans design area in thedirection of the arrow

    Escape Cancel

    K Removes all rulers

    Key Action

    space Select Next

    e popup Edit

    T editTrim

    0-9 toggle layer[0-9] visibility

    h/H hierarchy up/down

    x clear Drc

    Looking for more bindkey:Design->Preference, Binding Key

  • 7/26/2019 Chapter 6 Soc Encounter

    71/222

  • 7/26/2019 Chapter 6 Soc Encounter

    72/222

    Import Design -- Power

  • 7/26/2019 Chapter 6 Soc Encounter

    73/222

    73

    Import Design -- Power

    Specify the names of Power Nets and Ground Nets

    Import Design IPO/CTS

  • 7/26/2019 Chapter 6 Soc Encounter

    74/222

    74

    Import Design IPO/CTS

  • 7/26/2019 Chapter 6 Soc Encounter

    75/222

    Import Design -- Power

  • 7/26/2019 Chapter 6 Soc Encounter

    76/222

    76

    Import Design Power

  • 7/26/2019 Chapter 6 Soc Encounter

    77/222

    Specify Floorplan

  • 7/26/2019 Chapter 6 Soc Encounter

    78/222

    78

    Specify Floorplan

    FloorplanSpecify Floorplan

    Specify Floorplan Doube back rows

  • 7/26/2019 Chapter 6 Soc Encounter

    79/222

    79

    Spec y oo p a oube bac ows

    Double-back rows:Row Spacing > 0

    Row Spacing = 0

  • 7/26/2019 Chapter 6 Soc Encounter

    80/222

    Place Blocks

  • 7/26/2019 Chapter 6 Soc Encounter

    81/222

    81

    FloorplanPlace Blocks/ModulesPlace

    automatic place blocks ( blackboxesand partitions) and hard macros at thetop-level design.

    Block halo

    Specifies the minimum amount ofspace around blocks that is preservedfor routing.

  • 7/26/2019 Chapter 6 Soc Encounter

    82/222

  • 7/26/2019 Chapter 6 Soc Encounter

    83/222

  • 7/26/2019 Chapter 6 Soc Encounter

    84/222

  • 7/26/2019 Chapter 6 Soc Encounter

    85/222

    85

    Block Placement

    Preserve enough power pad

    Create power rings around blockFollow default routing direction rule

    Reserve a rounded core row area for placer

    Default direction

    block

  • 7/26/2019 Chapter 6 Soc Encounter

    86/222

  • 7/26/2019 Chapter 6 Soc Encounter

    87/222

    Power Planning: Wire Group

  • 7/26/2019 Chapter 6 Soc Encounter

    88/222

    88

    Use wire group

    no interleavingnumber of bits = 2

    Use wire group

    interleavingnumber of bits = 2

    Power Planning: Block Ring

  • 7/26/2019 Chapter 6 Soc Encounter

    89/222

    89

  • 7/26/2019 Chapter 6 Soc Encounter

    90/222

  • 7/26/2019 Chapter 6 Soc Encounter

    91/222

    Power Planning: Add Stripes

  • 7/26/2019 Chapter 6 Soc Encounter

    92/222

    92

  • 7/26/2019 Chapter 6 Soc Encounter

    93/222

  • 7/26/2019 Chapter 6 Soc Encounter

    94/222

  • 7/26/2019 Chapter 6 Soc Encounter

    95/222

    Edit Route cont.

  • 7/26/2019 Chapter 6 Soc Encounter

    96/222

    96

    Trim wire

    Fix wire wider

    than max width

  • 7/26/2019 Chapter 6 Soc Encounter

    97/222

  • 7/26/2019 Chapter 6 Soc Encounter

    98/222

  • 7/26/2019 Chapter 6 Soc Encounter

    99/222

  • 7/26/2019 Chapter 6 Soc Encounter

    100/222

  • 7/26/2019 Chapter 6 Soc Encounter

    101/222

    Difference Floorplan

    Difference Performance

  • 7/26/2019 Chapter 6 Soc Encounter

    102/222

    102

    Difference Performance

    Wire Load After Placement

  • 7/26/2019 Chapter 6 Soc Encounter

    103/222

    103

    Logical wire load after placement

  • 7/26/2019 Chapter 6 Soc Encounter

    104/222

  • 7/26/2019 Chapter 6 Soc Encounter

    105/222

    Add Tiehi/Tielo cell

  • 7/26/2019 Chapter 6 Soc Encounter

    106/222

    106

    Tiehi/Tielo cell connect tiehi/tielo net to supply voltage or

    ground with resisterTiehi/Tielo cell is added for ESD protection.

    Set add tiehi/tielo cell mode:

    encounter>setTieHiLoMode maxFanOut #num maxDistance #num

    PlaceTieHiLoAdd TieHiLo

  • 7/26/2019 Chapter 6 Soc Encounter

    107/222

  • 7/26/2019 Chapter 6 Soc Encounter

    108/222

    Synthesize Clock Tree

  • 7/26/2019 Chapter 6 Soc Encounter

    109/222

    109

    Create Clock Tree Spec

    clock spec

    Specify Clock Tree Modify

    Synthesis Clock Tree netlistsynthesis report

    clock nets

    routing guideDisplay Clock Tree

  • 7/26/2019 Chapter 6 Soc Encounter

    110/222

  • 7/26/2019 Chapter 6 Soc Encounter

    111/222

    CTS spec.

  • 7/26/2019 Chapter 6 Soc Encounter

    112/222

    112

    A CTS spec. contain the following information.

    Timing constraint file (optional) Naming attributes (optional)

    Macro model data (optional)

    Clock grouping data (optional)

    Attributes used by NanoRoute routing solution (optional)

    Requirement for manual CTS or automatic CTS

    CTS spec.

    --Naming Attributes Section

  • 7/26/2019 Chapter 6 Soc Encounter

    113/222

    113

    TimingConstraintFilefilename

    define a timing constraint file for use during CTS

    NameDelimiter delimiter

    name delimiter used when inserting buffers and updating clockroot and net names.

    NameDelimiter # create names clk##L3#I2

    default clk__L3_I2

    UseSingleDelim YES|NO

    YES clk_L3_I2

    NO clk__L3_I2 (default)

  • 7/26/2019 Chapter 6 Soc Encounter

    114/222

  • 7/26/2019 Chapter 6 Soc Encounter

    115/222

    CTS Spec.

    --Manually Define Clock Tree Topology

  • 7/26/2019 Chapter 6 Soc Encounter

    116/222

    116

    ClockNetName netName

    LevelNumber number Specify the clock tree level number

    LevelSpec levelNumber numberOfBuffers bufferType levelNumber

    Specify the level number in the clock tree

    numberOfBuffer

    the total number of buffers CTS should allow on the specified level

    Example:LevelSpec 1 2 CLKBUFX2

    LevelSpec 2 2 CLKBUFX2

    End

    CTS Spec.

    -- Automatic Gated CTS Section

  • 7/26/2019 Chapter 6 Soc Encounter

    117/222

    117

    AutoCTSRootPin clockRootPinName

    MaxDelay number{ns|ps}MinDelay number{ns|ps}

    SinkMaxTran number{ns|ps}

    maximum input transition time for sinks(clock pins)BufMaxTran number{ns|ps}

    maximum input transition time for buffers (defalut 400)

    MaxSkew number{ns|ps}

    CTS Spec.

    -- Automatic Gated CTS Section cont.

  • 7/26/2019 Chapter 6 Soc Encounter

    118/222

    118

    NoGating {rising|falling|NO}

    rising : stops tracing through a gate(include buffers and inverters) and

    treats the gate as a rising-edge-triggered flip-flop clock pin. falling: stops tracing through a gate(include buffers and inverters) and

    treats the gate as a falling-edge-triggered flip-flop clock pin.

    No: Allows CTS to trace through clock gating logic. (default)

    AddDriverCell driver_cell_name

    Place a driver cell at the cloest possiblelocation to the clock port location .

  • 7/26/2019 Chapter 6 Soc Encounter

    119/222

  • 7/26/2019 Chapter 6 Soc Encounter

    120/222

  • 7/26/2019 Chapter 6 Soc Encounter

    121/222

  • 7/26/2019 Chapter 6 Soc Encounter

    122/222

  • 7/26/2019 Chapter 6 Soc Encounter

    123/222

  • 7/26/2019 Chapter 6 Soc Encounter

    124/222

  • 7/26/2019 Chapter 6 Soc Encounter

    125/222

  • 7/26/2019 Chapter 6 Soc Encounter

    126/222

  • 7/26/2019 Chapter 6 Soc Encounter

    127/222

  • 7/26/2019 Chapter 6 Soc Encounter

    128/222

  • 7/26/2019 Chapter 6 Soc Encounter

    129/222

  • 7/26/2019 Chapter 6 Soc Encounter

    130/222

  • 7/26/2019 Chapter 6 Soc Encounter

    131/222

  • 7/26/2019 Chapter 6 Soc Encounter

    132/222

  • 7/26/2019 Chapter 6 Soc Encounter

    133/222

  • 7/26/2019 Chapter 6 Soc Encounter

    134/222

  • 7/26/2019 Chapter 6 Soc Encounter

    135/222

  • 7/26/2019 Chapter 6 Soc Encounter

    136/222

  • 7/26/2019 Chapter 6 Soc Encounter

    137/222

  • 7/26/2019 Chapter 6 Soc Encounter

    138/222

  • 7/26/2019 Chapter 6 Soc Encounter

    139/222

  • 7/26/2019 Chapter 6 Soc Encounter

    140/222

  • 7/26/2019 Chapter 6 Soc Encounter

    141/222

  • 7/26/2019 Chapter 6 Soc Encounter

    142/222

    Display IR Drop

  • 7/26/2019 Chapter 6 Soc Encounter

    143/222

    143

  • 7/26/2019 Chapter 6 Soc Encounter

    144/222

  • 7/26/2019 Chapter 6 Soc Encounter

    145/222

  • 7/26/2019 Chapter 6 Soc Encounter

    146/222

  • 7/26/2019 Chapter 6 Soc Encounter

    147/222

  • 7/26/2019 Chapter 6 Soc Encounter

    148/222

  • 7/26/2019 Chapter 6 Soc Encounter

    149/222

  • 7/26/2019 Chapter 6 Soc Encounter

    150/222

  • 7/26/2019 Chapter 6 Soc Encounter

    151/222

    Crosstalk

    Crosstalk problem are getting more serious in 0.25um andbelow for:

  • 7/26/2019 Chapter 6 Soc Encounter

    152/222

    152

    below for:

    Smaller pitches Greater height/width ratio Higher design frequency

  • 7/26/2019 Chapter 6 Soc Encounter

    153/222

  • 7/26/2019 Chapter 6 Soc Encounter

    154/222

    CeltIC Crosstalk Analysis

    SIRun CeltIC Crosstalk Analysis

  • 7/26/2019 Chapter 6 Soc Encounter

    155/222

    155

  • 7/26/2019 Chapter 6 Soc Encounter

    156/222

    Antenna Effect

    In a chip manufacturing process, Metal is initially deposited

  • 7/26/2019 Chapter 6 Soc Encounter

    157/222

    157

    so it covers the entire chip.Then, the unneeded portions of the metal are removed by

    etching, typically in plasma(charged particles).

    The exposed metal collect charge from plasma and formvoltage potential.

    If the voltage potential across the gate oxide becomes large

    enough, the current can damage the gate oxide.

    Antenna Ratio

    Plasmametal2 metal2

    Plasma

  • 7/26/2019 Chapter 6 Soc Encounter

    158/222

    158

    + + + + + +

    gate oxidepoly

    metal1

    via1

    Antenna Ratio =Area of process antennas on a node

    Area of gates to the node

    via2 + + + + + + +

  • 7/26/2019 Chapter 6 Soc Encounter

    159/222

  • 7/26/2019 Chapter 6 Soc Encounter

    160/222

  • 7/26/2019 Chapter 6 Soc Encounter

    161/222

  • 7/26/2019 Chapter 6 Soc Encounter

    162/222

    Add bonding pads flow (stagger IO pads only)

    A placed and routed

    design in encounterrouted.def

    routed.def

    Export DEF

    (In encounter)

  • 7/26/2019 Chapter 6 Soc Encounter

    163/222

    163

    bondPads.ecobondPads.eco

    bondPads.cmdbondPads.cmd

    addbonding.pl routed.def

    (In unix terminal)

    source bondPads.cmd

    (In encounter terminal)

    finish

    addbonding.pladdbonding.pl

    ioPad.listioPad.list

    Output Data

    DesignSaveGDS

    DesignSave->Netlist

  • 7/26/2019 Chapter 6 Soc Encounter

    164/222

    164

    Export GDS for DRC,LVS,LPE,and tape out.

    Export Netlist for LVS and simulation.

    Export DEF for reordered scan chain.

    DesignSave->DEF

  • 7/26/2019 Chapter 6 Soc Encounter

    165/222

  • 7/26/2019 Chapter 6 Soc Encounter

    166/222

    Post-Layout Verification Overview

    Post-Layout Verification do the following things : DRC ( Design Rule Check )

  • 7/26/2019 Chapter 6 Soc Encounter

    167/222

    167

    ERC (Electrical Rule Check )

    LVS (Layout versus Schematic )

    LPE/PRE (Layout Parasitic Extraction / Parasitic Resistance

    Extraction) and Post-Layout Simulation.

  • 7/26/2019 Chapter 6 Soc Encounter

    168/222

  • 7/26/2019 Chapter 6 Soc Encounter

    169/222

    DRC flow

    Prepare Layout stream in gds2

  • 7/26/2019 Chapter 6 Soc Encounter

    170/222

    170

    add power pad text

    stream out gds2

    Prepare command file

    run DRC

    View DRC error (DRC summary/RVE)

    Prepare Layout

    Stream In design

    S I d 2

  • 7/26/2019 Chapter 6 Soc Encounter

    171/222

    171

    Add power Text

    Stream Out

    DFII

    Library

    GDSIIGDSII

    Stream In core gds2

    Stream In IO gds2

    LEF in RAM lef

  • 7/26/2019 Chapter 6 Soc Encounter

    172/222

    Prepare Layout: Add Power Text

    Add power text for LVS and Nanosim

    Example: For TSMC18/artisan library

  • 7/26/2019 Chapter 6 Soc Encounter

    173/222

    173

    Add text DVDD for IO power pad

    Add text DVSS for IO ground pad

    Add text VDD for core power pad

    Add text VSS for core ground pad

  • 7/26/2019 Chapter 6 Soc Encounter

    174/222

  • 7/26/2019 Chapter 6 Soc Encounter

    175/222

  • 7/26/2019 Chapter 6 Soc Encounter

    176/222

  • 7/26/2019 Chapter 6 Soc Encounter

    177/222

    Using Calibre RVE

    Add in .cdsinit

  • 7/26/2019 Chapter 6 Soc Encounter

    178/222

    178

    setSkillPath(. ~/ /usr/memtor/Calibre_ss/cur/shared/pkgs/icb/tools/queryskl)

    load(calibre.skl)

    Using Calibre RVE

  • 7/26/2019 Chapter 6 Soc Encounter

    179/222

    179

  • 7/26/2019 Chapter 6 Soc Encounter

    180/222

  • 7/26/2019 Chapter 6 Soc Encounter

    181/222

    Initial Correspondence Points

    Initial correspondence points establish a starting place forlayout and schematic comparison.

    Create initial correspondence node pairs by

  • 7/26/2019 Chapter 6 Soc Encounter

    182/222

    182

    Create initial correspondence node pairs by adding text strings on layout database.

    all pins in the top of schematic netlist will be treated as an initial

    corresponding node if calibre finds a text string in layout whichmatches the node name in schematic.

    a

    b.

    .

    .

    . . .

    VDD

    a

    b. . .

    initial correspondingnode pairs

    global pin : VDD and GND

    Black-Box LVS

    Calibre black-box LVS

    One type of hierarchical LVS.

  • 7/26/2019 Chapter 6 Soc Encounter

    183/222

    183

    One type of hierarchical LVS. Black-box LVS treats every library cell as a black box.

    Black-box LVS checks only the interconnections between librarycells in your design, but not cell inside.

    You need not know the detail layout of every library cells.

    Reduce CPU time.

  • 7/26/2019 Chapter 6 Soc Encounter

    184/222

    LVS flow

    Prepare Layout

    The same as DRC Prepare Layout

  • 7/26/2019 Chapter 6 Soc Encounter

    185/222

    185

    p yPrepare Netlist v2lvs

    Prepare calibre command file run calibre LVS

    View LVS error (LVS summary/RVE)

    Prepare Netlist for Calibre LVS

    Prepare Netlist

    Verilog

    CHIP.v

    Verilog

    CHIP.vumc18lvs v

    umc18lvs.v

  • 7/26/2019 Chapter 6 Soc Encounter

    186/222

    186

    v2lvsv CHIP.vl umc18lvs.vo source.spis umc18lvs.spis1 VDDs0GND

    If a macro DRAM64x16 is used

    v2lvsv CHIP.vl umc18lvs.vl DRAM64x16.vo source.spisumc18lvs.spis DRAM64x16.spis1 VDDs0 GND

    CHIP.spiCHIP.spi

    v2lvs

    umc18lvs.v

    umc18lvs.spiumc18lvs.spi

  • 7/26/2019 Chapter 6 Soc Encounter

    187/222

  • 7/26/2019 Chapter 6 Soc Encounter

    188/222

    Black Box related file

    Pseudo spice file.GLOBAL VDD VSS

    .SUBCKT AN2D1 Z A1 A2 VDD GND.ENDS

  • 7/26/2019 Chapter 6 Soc Encounter

    189/222

    189

    Pseudo verilog file

    module AN2D1 (Z, A1, A2);output Z;

    input A1;

    input A2;

    endmodule

    Prepare command file for Calibre LVS

    Edit Calibre LVS runset

    LAYOUT PATH CHI P. cal i br e. gds

    LAYOUT PI MARY CHI PLAYOUT SYSTEM GDSI I

  • 7/26/2019 Chapter 6 Soc Encounter

    190/222

    190

    SOURCE PATH CHI P. spi SOURCE PRI MARY CHI P

    I NCLUDE / cal i br e/ LVS/ Cal i br e- l vs- cur

    Edit Calibre LVS rule file

    LVS BOX PVSSCLVS BOX PVSSRLVS BOX DRAM64x4s

    Submit Calibre LVS

    calibre lvs spice layout.spi hierauto

    umc18LVS.cal > lvs.log

  • 7/26/2019 Chapter 6 Soc Encounter

    191/222

    191

    layout verilog

    source.spilayout.spi

    v2lvsextract

  • 7/26/2019 Chapter 6 Soc Encounter

    192/222

    Check Calibre LVS SummaryOVERALL COMPAISON RESULTS

    OVERALL COMPARISON RESULTS

  • 7/26/2019 Chapter 6 Soc Encounter

    193/222

    193

    # ################### _ _

    # # # * *

    # # # CORRECT # |

    # # # # \___/

    # ###################

    Check Calibre LVS Summary

    CELL SUMMARY

    *************************************************

    CELL SUMMARY

    *************************************************

  • 7/26/2019 Chapter 6 Soc Encounter

    194/222

    194

    Result Layout Source

    ----------- ----------- --------------

    CORRECT CHIP CHIP

  • 7/26/2019 Chapter 6 Soc Encounter

    195/222

    Check Calibre LVS Summary

    Initial Correspondence Points

    o Initial Correspondence Points:

    Nets: DVDD VDD DGND GND I_X[2] I_X[3] I_X[4]I X[5] I X[6] I X[7] I X[8] I X[9] I X[10] I X[11]

  • 7/26/2019 Chapter 6 Soc Encounter

    196/222

    196

    I_X[5] I_X[6] I_X[7] I_X[8] I_X[9] I_X[10] I_X[11]O_SCAN_OUT O_Z[0] O_Z[1] O_Z[2] O_Z[3] I_HALT

    I_RESET_ I_DoDCT I_RamBistE I_CLK I_SCAN_INI_SCAN_EN I_X[0] O_Z[4] I_X[1] O_Z[5] O_Z[6]O_Z[7] O_Z[8] O_Z[9] O_Z[10] O_Z[11]

    Check Calibre LVS Log

    TEXT OBJECT FOR CONNECTIVITY EXTRACTION

    PORTS

    Extraction Errors and Warnings for cell CHIP

  • 7/26/2019 Chapter 6 Soc Encounter

    197/222

    197

  • 7/26/2019 Chapter 6 Soc Encounter

    198/222

    Check Calibre LVS LogPORTS

    --------------------------------------------------------------------------------

    PORTS

    --------------------------------------------------------------------------------

    O_Z[0] (523.447,31.68) 105 CHIP O_Z[1] (598.068,31.68) 105 CHIP

    ( ) ( )

  • 7/26/2019 Chapter 6 Soc Encounter

    199/222

    199

    O_Z[2] (821.931,31.68) 105 CHIP O_Z[3] (896.553,31.68) 105 CHIP

    O_Z[4] (971.175,31.68) 105 CHIP O_Z[5] (1164.455,372.964) 105 CHIP

    Check Calibre LVS Log

    Extraction Errors and Warnings for cell CHIP

    Extraction Errors and Warnings for cell "CHIP"----------------------------------------------

    WARNING: Short circuit - Different names on one net:Net Id: 18

    (1) "GND" l i (330 301 216 95) l 102 "M2 TEXT"

  • 7/26/2019 Chapter 6 Soc Encounter

    200/222

    200

    (1) name "GND" at location (330.301,216.95) on layer 102 "M2_TEXT"(2) name "GND" at location (673.2,29.1) on layer 101 "M1_TEXT"(3) name "VDD" at location (748.1,31.5) on layer 101 "M1_TEXT"(4) name "VDD" at location (208.93,274.56) on layer 101 "M1_TEXT"The name "VDD" was assigned to the net.

  • 7/26/2019 Chapter 6 Soc Encounter

    201/222

  • 7/26/2019 Chapter 6 Soc Encounter

    202/222

    What Introduce After Place&Route?

    Interconnection wiresparasitic resistance.M1 parasitic resistanceM2

    VIA

  • 7/26/2019 Chapter 6 Soc Encounter

    203/222

    203

    M2 parasitic resistance

    VIA parasitic resistance

    vdd!

    gnd!

    vdd!

    gnd!

    M1

    Pre-Layout And Post-Layout Design

    A pre-layout design (before P&R) and a post-layout design(after P&R)

    pre-layout

  • 7/26/2019 Chapter 6 Soc Encounter

    204/222

    204

    post-layout

    Why Post-Layout Simulation?

    clock skew

  • 7/26/2019 Chapter 6 Soc Encounter

    205/222

    205

    . . . .

    clkdata

    . . .. . .

    critical path delay

    data

    critical path delay

  • 7/26/2019 Chapter 6 Soc Encounter

    206/222

    Transistor-level Post-layout Simulation

    layout

    netlist/parasiticextraction Calibre LPE/PRE

  • 7/26/2019 Chapter 6 Soc Encounter

    207/222

    207

    SPICE netlist

    Post-layout

    simulation

    simulation

    pattern

    simulationresult

    Nanosim

  • 7/26/2019 Chapter 6 Soc Encounter

    208/222

    Prepare for Post-Layout Simulation

    Apply for a CIC account

    http://www.cic.org.tw.

    fill in your personal data and your request. Install identdprogram

  • 7/26/2019 Chapter 6 Soc Encounter

    209/222

    209

    this program is used to identify yourself when you log into CICsaccount from remote machine.

    Put your DB file to CICs account

    Replace Layout / LPE

    Qentry

    M {LPE}

    tech {UMC18 | TSMC18 | TSMC25 | TSMC35}

    f GDSII

    T Top_cell_names Ram_spce_filename

    t {ra1sd | ra1sh | ra2sd | ra2sh | rf2sh |

  • 7/26/2019 Chapter 6 Soc Encounter

    210/222

    210

    { | | | | |

    t18ra1sh | t18ra2sh | t18rf1sh | t18rf2sh | t18rodsh|

    18ra1sh_1 | 18ra1sh_2 | 18ra2sh}

    c {UMC18 | TSMC18 | TSMC25 | TSMC35}i {UMC18 | TSMC18 | TSMC25 | TSMC35}

    o Netlist_file_name

    Example:

    Qentry M LPE tech UMC18 f CHIP.gds T CHIPs RAM1.spec t 18ra2sh s RAM2.spec t 18ra1sh_1

    s RAM3.spec t 18ra1sh_2 c UMC18 i UMC18 o CHIP.netlist

    Use Qstat to check the status of your job.

    The result is stored in result_# directory.

  • 7/26/2019 Chapter 6 Soc Encounter

    211/222

    Running Nanosim

    QentryM {NANOSIM}n {CHIP.io}

    nspice CHIP.netlist spice.headernvec CHIP.vec

    m Top_cell_name{CHIP f }

  • 7/26/2019 Chapter 6 Soc Encounter

    212/222

    212

    c {CHIP.cfg}z {CHIP.tech.z}

    o Output_file_nameout fsdb

    t Total_simulation_time

    Example:

    QentryM NANOSIMnspice CHIP.netlist spice.headernvecCHIP.vec m CHIPc CHIP.cfgz CHIP.tech.zo UMC18t 100

    Use Qstat to check the status of your job.The result is stored in result_# directory.

    Spice Header File

    Spice Header FileModify PVT

    .lib 'l18u18v.012' L18U_BJD .lib 'l18u18v.012' L18U18V_TT

  • 7/26/2019 Chapter 6 Soc Encounter

    213/222

    213

    .lib 'l18u33v_g2.011' l18u33v_tt

    *epic tech="voltage 3.3

    *epic tech="temperature 100"

  • 7/26/2019 Chapter 6 Soc Encounter

    214/222

    Generate Nanosim Simulation Pattern

    t ype nsvtsi gnal CLOCK, START, I N[ 7: 0]; cl ock st ar t i n[ 7: 0]

    Input simulation pattern --- nsvtformat

  • 7/26/2019 Chapter 6 Soc Encounter

    215/222

    215

    r adi x 1 1 44i o i i i i

    per i od 25hi gh 3. 3l ow 0. 0

    0 0 xx1 0 xx

    0 0 xx. . . . .

  • 7/26/2019 Chapter 6 Soc Encounter

    216/222

    Nanosim Configuration File

    bus_not at i on [ : ]pr i nt _node_l ogi c ADRS[ 0]pr i nt _node_l ogi c CLK

    pr i nt _node_l ogi c DATA[ 0]. . . . . .r epor t _node_power VDD

    t d d DGND

    ExampleNanosim_configuration file

  • 7/26/2019 Chapter 6 Soc Encounter

    217/222

    217

    set _node_gnd DGNDset _node_gnd GNDset _node_v DVDD 3. 3set _node_v VDD 1. 8

    ADRS[ 0]

    ADRS[ 1]. . . . . .CLKDATA[ 0]. . . . . .

    nodename file

  • 7/26/2019 Chapter 6 Soc Encounter

    218/222

    Load Simulation Result --- nWave

  • 7/26/2019 Chapter 6 Soc Encounter

    219/222

    219

    Select Signals --- nWave

    Signals Get Signals ...

  • 7/26/2019 Chapter 6 Soc Encounter

    220/222

    220

    Check Simulation Result --- nWave

  • 7/26/2019 Chapter 6 Soc Encounter

    221/222

    221

    Power Analysis Result

    The power analysis result is stored in Nanosim simulationlog (xxx.log) file

    . . . . . .Cur r ent i nf or mat i on cal cul at ed over t he i nt er val s:

    0 00000e+00 - 1 00010e+03 ns

  • 7/26/2019 Chapter 6 Soc Encounter

    222/222

    222

    0. 00000e+00 1. 00010e+03 ns

    Node: VDDAver age cur r ent : - 3. 53355e+05 uARMS cur r ent : 3. 53388e+05 uA

    Cur r ent peak #1 : - 4. 54061e+05 uA at 6. 78400e+02 ns

    Cur r ent peak #2 : - 4. 34973e+05 uA at 4. 00000e- 01 nsCur r ent peak #3 : - 3. 88048e+05 uA at 2. 59000e+01 nsCur r ent peak #4 : - 3. 87280e+05 uA at 1. 27500e+02 nsCur r ent peak #5 : - 3. 84302e+05 uA at 5. 77800e+02 ns

    . . . . . .