bpv impact on zroute qor (1)

49
BPV Impact on Zroute QoR Router CAE January, 2013

Upload: imran-basha

Post on 02-Oct-2015

58 views

Category:

Documents


7 download

DESCRIPTION

BPV Impact on Zroute QoR (1)

TRANSCRIPT

  • Synopsys 2013 1

    BPV Impact on Zroute QoR

    Router CAE

    January, 2013

  • Synopsys 2013 2

    CONFIDENTIAL INFORMATION

    The following material is being disclosed to you pursuant to a non-disclosure agreement between you or your employer and Synopsys. Information disclosed in this presentation may be used only as permitted under such an agreement.

    LEGAL NOTICE

    Information contained in this presentation reflects Synopsys plans as of the date of this presentation. Such plans are subject to completion and are subject to change. Products may be offered and purchased only pursuant to an authorized quote and purchase order.

  • Synopsys 2013 3

    Agenda

    BPV Fundamentals

    Design rule resource

    Case studies:

    Open nets

    Runtime speedup by multiple isDefaultContact

    M1 violations when accessing pins

    Fat spacing found over macro

    Fat spacing NOT found over macro

    NDR spacing

  • Synopsys 2013 4

    BPV Impact on Design Stage

    Data

    Preparation

    (FRAM)

    Placement Routing

  • Synopsys 2013 5

    Library Data Preparation

    MW Library

    CEL FRAM lib_1, lib_2, lib_3

    GDSII or LEF

    Stream File

  • Synopsys 2013 6

    Library Data Preparation (Milkyway)

    Create library with

    Library > Create

    Import layout cell with

    Cell Library > Stream In

    Identify P/G ports with

    dbSetCellPortTypes

    Smash cell with

    Cell Library > Smash

    Extract blockage, pins & vias with

    Cell Library > Blockage, Pin & Via

    Set PR boundary with

    Cell Library > Set PR Boundary

    Define wire tracks with

    Wire Tracks >

    Define Unit Tile Wire Tracks

    Specify Multiple-Height PR Boundary

    Cell Library > Multi Height Cell

    Import Logic Model DB

    update_mw_port_by_db

    End cell library data preparation Technology

    File

    GDSII or LEF

    Stream File

    Cell Type

    Definition

    Layer File

    (Optional)

    DB File

    If needed

    Note B

    Note C

    Note D

    Note E

    Note F

    Note A

  • Synopsys 2013 7

    Library Data Preparation (cont.)

    Note A Import LEF with Cell Library > LEF-In(read_lef)

    Note B This is normally for macros

    Note C Extract macro with Cell > Make Macro abstract (geNewMakeMacro)

    Note D Set PR boundary for standard cell only

    Note E Set Multiple-Height PR boundary for standard cell only

    Note F Define wire tracks for standard cell only

  • Synopsys 2013 8

    What is BPV?

    BPV Blockage, Pins, and Vias

    Reduce Milkyway database to contain only relevant information for place-and-route application tools

    FRAM view is extracted from CEL view

    CEL view FRAM view Top routing

    GDSII or LEF

    Stream File

  • Synopsys 2013 9

    Placement

    Why is BPV important?

    BPV extraction will impact routers behavior

    Selecting different options will result in different FRAM views

    A proper FRAM view ensures routing to be completed correctly, whereas an improper FRAM view may cause unexpected problems during routing, such as:

    False DRC errors near the boundary of standard cells or macros

    Long run time due to fixing of excessive DRC violations

    Data

    Preparation

    (FRAM)

    Routing

  • Synopsys 2013 10

    Blockage Layers

    Route Guides / Zero min-spacing Route Guide

    User added in the CEL view or created automatically by BPV in the FRAM view on layer 190.

    It can prohibit routing (signal or pre-routes in both) on named layers in a specific area.

    Real metal blockage layer

    Metal layers in the FRAM view, either extracted for all non-pin geometries on the metal layers defined in the Layer sections

    of the technology file, or converted from the system metal

    blockages in the CEL view (LEF obstructions, or OBS).

    All design rules defined in technology file must be checked by classic router and Zroute.

  • Synopsys 2013 11

    Blockage Layers (cont.)

    System metal blockage layer

    User added in the CEL view or created automatically by BPV in the FRAM view, on system layer 218, 219, and others.

    It can be used in covering up routing area.

    Classic router and Zroute always treat system metal blockages as thin wire.

    System via blockage layer

    User added in the CEL view, on system layer 224, 225, and so forth.

    It can be used in covering-up via landing area.

  • Synopsys 2013 12

    Blockage Layers (cont.)

    Real metal blockage layer

    System metal blockage layer

  • Synopsys 2013 13

    Blockage Extraction Example (CEL)

    The pad cell has three metal2 pins - PIN_A, PIN_B, and PIN_C, on the top boundary.

    PIN_A and PIN_C are fat pins. PIN_B is thin pin. There are three pieces of metal2 OBS (non-pin polygons) below PIN_B.

  • Synopsys 2013 14

    Blockage Extraction Example (FRAM)

    The MakeMacro Command options used in this scenario are:

    Preserve All Metal Blockage: 0

    Treat All Blockage as Thin Wire: 0

    Routing Blockage Output Layer: Metal Blockage

    Other options: Treat metal 2 block As Thin, block all

    The MakeMacro command creates real metal2 blockage but shrinks it (fat_spacing min_spacing) from boundary because of the Treat metal2 block As Thin option. The MakeMacro command creates system metal2 blockage to block all areas except the pins.

  • Synopsys 2013 15

    Blockage Extraction Example (FRAM)

    The spacing of PIN_B and system metal2 blockage is different from PIN_B and real metal2 blockage because the system metal blockage is

    always treated as thin. Therefore, one is thin to thin, the other one is thin

    to fat.

    Real metal2 blockage:

    shrink by (fat_spacing min_spacing) System metal2 blockage: block all

    Thin spacing: thin to thin

    Fat spacing: thin to fat

  • Synopsys 2013 16

    Blockage Extraction Example (FRAM)

    The MakeMacro Command options used in this scenario are:

    Preserve All Metal Blockage: 0

    Treat All Blockage as Thin Wire: 1

    Routing Blockage Output Layer: Metal Blockage

    Other options: block all

    Metal2 pins are trimmed around by minSpacing. MakeMacro only created real metal2 blockage to block all the other areas.

    No metal2 system metal blockage layer

    Real metal2 blockage: block all

  • Synopsys 2013 17

    Blockage merge / block all / block core

    A B

    A B Merge X Y

    Macro/Pad cell

    A B Block All

    routing blockage

    Block Core

    with Margin A B

    routing blockage

  • Synopsys 2013 18

    Pins (Macro vs Stdcell)

    Identify pins by text in GDSII

    Extract pins for routing

    For Macro / Pad type

    Access edge

    Access direction

    For Standard Cell type

    VIA region

    Macro / Pad type Standard cell type

  • Synopsys 2013 19

    VIA Region

    BPV will look for any possible area (without considering tracks) to generate a region (in

    red color) for VIA landing

    VIA region has to minimize DRC violations with neighboring geometry

    Standard cell type

  • Synopsys 2013 20

    Via Region Global Route

    Global routing divides the whole routing area into small global routing cells (GRC).

    Real via and virtual wire (G-links) are created at this stage.

    Global route also follows NDR

    During global route, router will not consider via region at this stage.

    Global Route

    Track Assign

    Detail Route

  • Synopsys 2013 21

    Via Region Global Route (cont.)

    Via created by GR G-links

    created by

    GR

  • Synopsys 2013 22

    Via Region Track Assign

    Global route is followed by track assignment, where the location and level of

    each routes GRC crossing is assigned.

    During track assign, router will select the primary isDefault contact of vias in the

    technology file and put it on the track in the

    via region area of the pins.

    Most overlap removal is also done at this stage

    No DRC check is performed here

    Global Route

    Track Assign

    Detail Route

  • Synopsys 2013 23

    Via Region - Track Assign (cont.)

  • Synopsys 2013 24

    Via Region Detail Route

    Detail route follows, as the detail router only has to complete the interconnect

    details within each GRC to completely

    implement the route plan.

    Information contained in the via region serves as guidance for detail route.

    During detail route, the router will try to replace or rotate the vias, if DRC violations

    exist on the pins.

    Global Route

    Track Assign

    Detail Route

  • Synopsys 2013 25

    Via Region Detail Route (cont.)

    At track assign stage

    At detail route stage

  • Synopsys 2013 26

    Case Study (1)

  • Synopsys 2013 27

    Thousands of Open Nets Issue:

    There is no error or warning message during route_global, route_track, and

    route_detail and only a few DRC violations are

    left after route_detail.

    At the beginning of the following route_search_repair, the router reports

    thousands of open nets and stops further processing:

    WARNING: Net [U_TOP_/U_SUB/n1] is broken into 2 parts, reconnect!

    .. WARNING: Net [U_TOP_/U_SUB/U_TNT/n28] is broken into 9 parts, reconnect!

    There are 45287 open signal nets!

    Re-connect 45287 open nets!

    **** ERROR:Too many broken nets. Cannot continue!

    route_global

    route_track

    route_detail

    route_search_

    repair

    Why are these open nets are not properly connected at previous routing stages such as the global route stage?

  • Synopsys 2013 28

    Thousands of Open Nets

    Investigation:

    Many M1 pins did not have VIA1 to complete the net connection

    In the standard cells FRAM view, the M1 pin viaRegion is as follows:

    VIA3 used for M1

    pin connection?

    ------- attributes -------

    OBJECT TYPE : PIN [ID #x805]

    PIN NAME : SI

    LAYER : M1 (31)

    . VIA-REGIONS OF THE PORT :

    via [3]: 1 rects, via [3]rotated: 1 rects,

    In the top-level design, [3] is the VIA3 contactCode defined in TF. The router used VIA3 for the M1 pin access because the standard

    cell's viaRegion is misleading.

  • Synopsys 2013 29

    Thousands of Open Nets

    Investigation: (Continued)

    In the log file there are multiple warning messages about the inconsistency

    between the top-level design and the

    standard cell libraries: Warning: Reference Library Inconsistent With Main Library

    Reference Library: /remote/testcase/lib/mw/std_lib (MWLIBP-300)

    Warning: Inconsistent Data for Contact Code 3

    Main Library (MW_TOP) | Reference Library (std_lib)

    Cut Layer VIA3 (70, 70) | VIA1 (70, 70)

    Lower Layer M3 (0, 30) | M1 (0, 30)

    Upper Layer M4 (0, 30) | M2 (0, 30) (MWLIBP-324)

    Warning: Reference Library Inconsistent With Main Library

    Reference Library: /remote/testcase/lib/mw/std_lib (MWLIBP-300)

    Warning: Inconsistent Data for Contact Code 11

    Main Library (MW_TOP) | Reference Library (std_lib)

    Cut Layer VIA1 (70, 70) | VIA8 (300, 300)

    Lower Layer M1 (0, 30) | M8 (70, 0)

    Upper Layer M2 (0, 30) | M9 (70, 0) (MWLIBP-324)

    Usually this is caused by an inconsistent technology file used with the top-level design and the standard cell library.

    ------- attributes -------

    OBJECT TYPE : PIN [ID #x805]

    PIN NAME : SI

    LAYER : M1 (31)

    . VIA-REGIONS OF THE PORT :

    via [3]: 1 rects, via [3]rotated: 1 rects,

  • Synopsys 2013 30

    Thousands of Open Nets

    Solution:

    Make sure the technology file is consistent for both the top-level

    design and the standard cell library.

    Re-create the FRAM view for all standard cells by using blockage, pin,

    via (BPV) extraction and make sure

    the new viaRegions have consistent

    contactCodes with the top-level design

    Technical details are documented in SolvNet article 024604

    Inconsistent Contact Codes Between Design and Standard Cell Reference Library

    ------- attributes -------

    OBJECT TYPE : PIN [ID #x805]

    PIN NAME : SI

    LAYER : M1 (31)

    . VIA-REGIONS OF THE PORT :

    via [xx]: 1 rects, via [xx]rotated: 1 rects,

  • Synopsys 2013 31

    How about Zroute?

    Same problem as classic router:

    Many M1 pins did not have VIA1 to

    complete the net connection

    VIA3 used for M1

    pin connection?

    Different log message: Total number of nets = 1234567

    595 open nets, of which 0 are frozen

    Total number of excluded ports = .......

    12 ports without pins of 0 ports of 0 cover cells connected to Total number of DRCs = Total number of antenna violations = . Total number of voltage-area violations = ...

  • Synopsys 2013 32

    How about Zroute? (Continued)

    Log after route_zrt_detail:

    Total number of nets = 1234567

    595 open nets, of which 0 are frozen

    Total number of excluded ports = .......

    .

    Log after route_zrt_eco open_net_driven true: Total number of nets = 1234567

    359 open nets, of which 0 are frozen

    Total number of excluded ports = .......

    .

    The open nets NEVER get reconnected by multiple runs of route_zrt_eco

    route_zrt_global

    route_zrt_track

    route_zrt_detail

    route_zrt_eco

    (open_net_driven)

    Solution:

    Re-run BPV

  • Synopsys 2013 33

    Case Study (2)

  • Synopsys 2013 34

    Speed Up Routing Time: Pin Access With Multiple

    Default Contact Codes

    There are 3 on-grid pin-access candidates on this L-shaped M1 pin.

    Assumption that only is free from DRC violations if just one default contact code is available in the technology file:

    M1

    M2

    1

    2 3

    ContactCode "VIA12_HV" {

    contactCodeNumber = 2

    cutLayer = "VIA1"

    isDefaultContact = 1

    }

    3

  • Synopsys 2013 35

    Speed Up Routing Time: Pin Access With Multiple

    Default Contact Codes

    Additional default contact codes with upper and lower metal enclosures can provide one more pin-access solution at

    ContactCode "VIA12_HV" {

    contactCodeNumber = 2

    cutLayer = "VIA1"

    isDefaultContact = 1

    }

    1

    2

    M1

    M2

    3

    1

    ContactCode "VIA12_VV" {

    contactCodeNumber = 27

    cutLayer = "VIA1"

    isDefaultContact = 1

    }

  • Synopsys 2013 36

    Speed Up Routing Time: Pin Access With Multiple

    Default Contact Codes

    Steps to achieve this:

    1. Create an additional contact code, for example, VIA12_VV in the technology file and add isDefaultContact = 1 in this new ContactCode section.

    2. Update the new technology file to the standard cell libraries and top-level design.

    3. Re-create the standard cell FRAM views by using BPV:

    BPV automatically picks up all VIA1 default contact codes and creates VIA1 viaRegions with multiple default contact codes, for example

    4. Route the top-level design.

    ------- attributes -------

    OBJECT TYPE : PIN [ID #x805]

    PIN NAME : SI

    LAYER : M1 (31)

    . VIA-REGIONS OF THE PORT :

    via [2]: 1 rects, via [2]rotated: 1 rects, via [27]: 1 rects,

  • Synopsys 2013 37

    Speed Up Routing Time: Pin Access With Multiple

    Default Contact Codes

    M1 DRC violations are the most difficult to fix in many designs. Additional solutions on M1 pin reduces signal route runtime.

    Design

    (#Instances)

    Runtime %

    Single (hour) Multiple (hour)

    Design 1

    (4500K)

    Classic: 45 Classic: 33 26%

    ZRT: 15.25 ZRT: 3.59 74%

    Design 2

    (3700K)

    Classic: 40 Classic: 33 17%

    ZRT: 10.94 ZRT: 3.39 69%

    Design 3

    (1200K)

    Classic: 14 Classic: 11 21%

    ZRT: 7 ZRT: 4 42%

    Design 4

    (890K)

    Classic: 8.5 Classic: 6 29%

    ZRT: 2.5 ZRT: 1.5 40%

  • Synopsys 2013 38

    Case Study (3)

  • Synopsys 2013 39

    Difficult M1 minEdgeLength Violations

    Issue:

    I have multiple isDefault contacts defined in the TF but router still has difficulty fixing DRC violations, especially minEdgeLength ones.

    The VIA1 seems to be locked on the wire-track where DRC fixing is limited.

    Case 1 Case 2

  • Synopsys 2013 40

    Difficult M1 minEdgeLength Violations

    Solutions: Preserve M1 pins

    To prevent excessive DRC violations at metal1 pins, you can force the router to place via1 inside m1 pin and preserve M1 pin shape

    set_route_zrt_common_options connect_within_pins \ {{m1 via_standard_cell_pins}}

    Restrictively use only when the width of ALL M1 pins is greater than VIA1; otherwise, long runtime with DRC divergence occurs

    VIA1 placed completely

    inside M1 pin

    Dont use the options when M1 pins width smaller than VIA1s size

    Case 1 Case 2

  • Synopsys 2013 41

    Case Study (4)

  • Synopsys 2013 42

    fat

    rectangles

    in the

    macro

    signal

    wires in top

    cell

    Fat diff-net spacing found around macros

    Issue:

    The top design was signoff proven; why did the Synopsys router still report

    many diff-net spacing violations?

    Technical background:

    The top design was migrated from third-party tool by read_def

    The ref libraries are done by read_lef

    The fat spacing errors occur where signal wires were routed across macros

    In competitors router, it requires minSpacing only

    Caused by default BPV after LEF-in the macro

  • Synopsys 2013 43

    Fat diff-net spacing found around macros

    Solution:

    verify_zrt_route

    Re-BPV for macros

    (Treat All Blockage as Thin Wire)

    fat

    rectangles

    in the

    macro

    signal

    wires in top

    cell

  • Synopsys 2013 44

    Case Study (5)

  • Synopsys 2013 45

    fat

    rectangles

    in the

    macro

    signal

    wires in top

    cell

    Fat diff-net spacing NOT found around macros

    Issue:

    In my design, any fat-spacing violations are found around macros ONLY by

    signoff. Why these fat-spacing

    violations are not found by router?

    Technical background:

    The ref libraries are done either by LEF-in or GDS-in flow.

    The fat spacing errors occur where signal wires were routed across macros

    The fat metal attribute seems to be missing in these macros FRAM

    Check if ZRT-023 appears in the log:

    Warning: BPV on 17 macros were done with "treat blockage as thin". (ZRT-023)

  • Synopsys 2013 46

    Fat diff-net spacing NOT found around macros

    Root cause:

    The fat metal attribute is overwritten by BPVs Treat All Blockage as Thin Wire

    Router will only check minSpacing on all metals inside the macros FRAM

    verify_zrt_route

    Re-BPV for macros Do NOT use Treat All Blockage

    as Thin Wire

    Solution:

    fat

    rectangles

    in the

    macro

    signal

    wires in top

    cell

  • Synopsys 2013 47

    Case Study (6)

  • Synopsys 2013 48

    DEF-flow: Many spacing violations near PG nets

    NDR spacing violation

    2x minSpacing

    PG wires

    Issue:

    Many NDR spacing violations near PG nets are reported after DEF-in of a fully routed design from third party tool.

    Technical background:

    Third party tools have an option to ignore NDR spacing between NDR

    nets and PG.

    Power and ground wires are alternative shielding shapes

    Solutions:

    set_route_zrt_detail_options \

    -ignore_var_spacing_to_pg true

    minSpacing?

  • Synopsys 2013 49

    Predictable Success