Zroute Technical Tutorial v2 03 024524

Embed Size (px)

Citation preview

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    1/66

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    2/66

    CONFIDENTIAL INFORMATION

    non-disclosure agreement between you or your employer andSynopsys. Information disclosed in this presentation shall be

    .

    LEGAL NOTICEInformation contained in this presentation reflects Synopsysplans as of the date of this presentation. Such plans are subject tocom letion and are sub ect to chan e. Products shall be offered

    and purchased only pursuant to an authorized quote andpurchase order. Synopsys is not obligated to develop the

    21-

    materials.

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    3/66

    Agenda

    Z

    Z

    Basic Zroute Flow Overview

    Multi-Threaded Routing

    E

    E

    Summary

    Note that the a endix has additional details about ettin started

    31-

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    4/66

    Introducing ZrouteArchitected From The Ground Up For New Challenges

    State-of-the-art routingtechnology

    I omp eromp erI omp eromp erConcurrent DFM optimizations

    2

    rou erou erou erou e

    Multi-threaded throughout3

    41-

    -- ,, ,,

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    5/66

    1. State-of-the-Art Routing Technology

    Dynamic Maze GridRealistic Connectivity

    Virtual Wire

    DynamicGrid

    Advanced Design Rules Polygon ManagerY

    ZX

    SSW

    0.6S

    0.6S

    51-

    ,,

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    6/66

    2. Concurrent DFM Optimizations

    Redundant ViasSoft Rulesld

    Yie

    S T

    Antennas Wire Spreading/Widening

    SpacingS T

    Metal 1

    Gate

    Via1Metal 2

    Metal 1Via1

    61-

    ,,

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    7/66

    3. Multi-Threaded Throughout

    ScalabilityAll Routing Steps

    Global Routing

    Track AssignmentX Speedup

    Larger CapacityTransparent

    # of cores

    MemoryNative

    Ready to go-

    # of cores

    71-

    ,,

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    8/66

    10X Speed-Up On Mainstream Hardware

    3.5X Faster3.5X Faster SingleSingle- -threadedthreadedxx

    pee uppee up uu -- rea e on ua orerea e on ua ore

    10X Speed Up10X Speed Up

    achieved a 10x boost in performancewhen we used it with a quad-core platform.

    81-

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    9/66

    10X Speed-Up On Mainstream Hardware

    33--4X4X 3X3XMulti-threaded

    91-

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    10/66

    Fewer Wires, Fewer Total Number of Vias

    1010--15%15%11--2%2%Wire Length # of Total Vias

    40nm, 60K

    40nm, 225K

    65nm, 845K

    45nm, 374K

    65nm, 845K

    45nm, 170K

    65nm, 545K

    65nm, 593K

    65nm, 545K

    65nm, 593K

    80nm, 2777K

    65nm, 356K

    0 1 2 3

    65nm, 356K

    0 10 20

    90nm, 2313K

    101-

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    11/66

    Fewer Non-Optimized Single Vias

    3030--50%50%Remaining Non-Optimized Single Vias

    40nm, 93K

    40nm, 225K

    45nm, 374K

    40nm, 60K

    65nm, 1000K

    45nm, 170K

    0 10 20 30 40 50 60 70

    65nm, 68K

    111-

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    12/66

    Fewer Jogs and Notches,

    Improved LithographyLitho-Friendly Routing

    No Scenic Routes

    Fewer Jogs

    Fewer Notches

    70% fewer narrow jogs30% fewer notches

    121-

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    13/66

    Zroute Results on Customer Designs

    Technology # of Cells Utilization Runtime Wire Length Contacts

    90 870 59 3.3 6% 3%65 67 85 1.5 2% 9%

    .

    65 1000 75 2 0% 2%

    45 50 63 9 6% 19%.

    45 93 80 1.3 4% 5%

    45 170 72 3.8 1% 25%

    .45 374 61 3 4% 17.8%

    3X3X

    131-

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    14/66

    Zroute Is GA in IC Compiler B-2008.09!

    A-2007.12-SP5-1

    A-2007.12-SP5-1

    Multiple on-going-

    Multiple on-going-

    1000+1000+Multiple planned

    test chips at 32nmMultiple planned

    test chips at 32nmhitshits

    141-

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    15/66

    Zroute Users Tell The Story

    2-3.4X faster single-threaded3X scalability with 4 threads ...

    70% fewer narrow jogs,30% fewer notches ...

    tapes out home networking deviceusin new Zroute technolo

    9/22/08

    achieved a 10X boost in performance

    9/15/08

    routing runtimes cut significantly by

    - .5/27/08

    151-

    - 5/19/08

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    16/66

    Zroute Technology SummaryArchitected From The Ground Up For New Challenges

    AvailableAvailable

    State of the art technologyPart of IC CompilerPart of IC CompilerBB--2008.092008.09

    Concurrent DFM optimizations2CoCo--exists with current routerexists with current router

    I omp eromp erI omp eromp er

    Multi-threaded throughout3

    Single license for 4 coresSingle license for 4 cores

    rou erou erou erou e

    161-

    -- ,, ,,

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    17/66

    Agenda

    ZZ

    Basic Zroute Flow Overview

    Multi-Threaded Routing

    EE

    Summary

    171-

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    18/66

    Currently Supported Design Rules

    All 65nm and above design rules

    Most 45/40nm rules

    Common Platform and TSMC 45/40nm design rules

    Selected IDMs 45nm rules

    OO

    Zroute supports only design rules defined in the

    yway tec no ogy eClassic router parameters used to implement design

    181-

    rules must be migrated to the technology file

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    19/66

    Zroute Input and Output

    Same inputs as classic router

    Milkyway design library

    Technology file

    Standard cell and macro cell FRAM view

    Route guides, layer constraints, nondefault rules

    Power nets routed with power and ground prerouter

    Output - routing data generated in the Milkyway

    CEL viewopen_mw_cel, save_mw_cel

    S

    191-

    Sreport_design physical

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    20/66

    Basic Zroute Flow

    SetSet ZrouteZroute as Targeted Routeras Targeted Router

    PostPost- -CTS CellCTS Cell

    set_route_mode_options zroute true

    SetSet ZrouteZroute OptionsOptions Includes translating classic router parametersinto Zroute options

    Route ClocksRoute Clocks Integrated clock global router (ICGR) withroute_zrt_group

    Route SignalsRoute Signals

    PostroutePostroute O timizationsO timizations

    route_opt initial_route_only

    route_opt skip_initial_routeroute o t incremental

    Chip FinishingChip Finishing

    _

    201-signoff_optsignoff_opt

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    21/66

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    22/66

    More on report_route_opt_strategy

    Classic Router*********************************************************

    Zroute*********************************************************

    route_opt strategy for the design:

    Fix Hold Mode : route_base

    Search-Repair loops : 15

    route_opt strategy for the design:

    Fix Hold Mode : route_base

    Search-Repair loops : 10

    ECO Search-Repair loops : 5

    Optimize Wire/Via Search-Repair loops : 5

    Optimize Wire/Via CPU limit : -1

    ECO Search-Repair loops : 4

    Optimize Wire/Via Search-Repair loops : N/A

    Optimize Wire/Via CPU limit : N/A

    Route Violation threshold : 3000

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

    Route Violation threshold : 3000

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

    De au era ons are an or rou e- aseroute_optZroute conver es uicker

    221-

    Zroute is more intelligent, stopping on nonconvergence

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    23/66

    Zroute Versus Classic Router Commands

    Commands do not match 1:1 due to differentrouting architecture

    Zroute Classic routerroute_zrt_global route_global

    _ _ _

    route_zrt_detailroute_zrt_detail incremental true

    route_detailroute_search_repair

    _ _ _

    route_zrt_auto route_auto

    route_zrt_eco* route_eco

    insert_zrt_redundant_vias insert_redundant_viasn/a optimize_wire_via

    extract zrt hier antenna property extract hier antenna property

    231-

    _

    *Zroute must use ECO route if there are opens!

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    24/66

    Zroute Options

    Zroute option setup commandsset route zrt common o tions

    set_route_zrt_global_optionsset_route_zrt_track_options

    set_route_zrt_detail_options

    Commands to report Zroute optionsreport_route_zrt_*_options

    Commands to query Zroute option values

    get_route_zrt_*_options -name option_nameAll options are persistent (saved with design)

    241-

    * common|detail|global|track

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    25/66

    Intelligent DRC Convergence

    For each iteration after the initial iteration, Zrouteanalyzes the DRC distribution

    Different areas can use different partition size and aspectratio (nonuniform partitions)

    ZZInitial iterations use simple methods to fix most violations

    Subse uent iterations use more advanced methods

    Zroute can weight violation types differently foreach iteration

    After iteration 30, costs are not changed

    Zroute detects nonconvergence of DRC and stops

    251-

    iterations

    You do not have to limit iterations to improve runtime

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    26/66

    Center Line Connectivity

    Classic router depends on center line connectivityZroute does notCC

    to meet DRCs

    261-Center line is not connected Center line is connected

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    27/66

    Dont Do

    Dont run verify_route on Zroute designClassic router has a different connectivity model (center lineconnection which affects o en re ortin and DRC calculationsUse verify_zrt_route to verify Zroute resultsUse verify_drc (65nm or above), signoff_drc (B-2008.09 or laterreleases), or Hercules to independently verify the router result

    Dont use report_antenna_ratio to report antenna

    violations, use verify_zrt_route antenna trueDont run classic router AFTER Zroute

    You will get the following error if you try to do this:

    commands after Zroute commands. (RT-302)Can run classic router before Zroute

    For exam le, usin route rou for clocks

    271-

    _

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    28/66

    verify_zrt_route : Summary

    verify_zrt_route outputs summary at the endI op on s a se, summary repor s no c ec e

    Use -report_all_open_nets true to list all opensSS

    Verify Summary:

    Total number of nets = 229823, of which 0 are not extracted

    Total number of open nets = 0, of which 0 are frozen

    Total number of excluded ports =

    0 ports of 0 unplaced cells connected to 0 nets

    -open_net

    0 ports without pins of 0 cells connected to 0 nets

    0 ports of 0 cover cells connected to 0 non-pg nets

    Total num of DRCs = 5

    Total num of antenna violations = 0

    -drc

    -antenna

    281-

    Total num of voltage-area violations = not checked-voltage_area

    # | no antenna rules defined | not checked

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    29/66

    Switching to Zroute in the GUI

    Select Zroute Mode check box or useset route mode o tions zroute true_ _ _

    291-

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    30/66

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    31/66

    Has Design Been Routed by Zroute?

    set_route_mode_options zroute true onlyshows user intent

    Tells commands that use embedded routing to useZroute as the router D

    To query if Zroute has been run on a design, use_ _ _

    Yes:Message: Design is routed using Zroute.

    Returns: trueNo:

    M

    311-

    M .Returns: false

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    32/66

    Agenda

    ZZ

    Basic Zroute Flow Overview

    Multi-Threaded Routing

    EE

    Summary

    321-

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    33/66

    Multi-Threaded Routing Throughout

    Designed from ground up as a multi-threaded routerMost route engines run multi-threaded tasksG

    Need multi-CPU or multi-core machines to run

    Number of threads total number of cores

    DDMulti-threading: Multiple CPUs performing parallel algorithmson the same machine using a single process memory

    Distributed: Partition design and send each partition to aseparate CPU with separate memory image of routing task

    T

    331-

    T -set_route_zrt_common_options max_number_of_threads 2

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    34/66

    Measuring Multi-Threaded Routing

    Speed-up should be measured by using wall-clock time,not total CPU time (Example is 8 threads)

    [GR: Done] Elapsed real time: 0:09:11

    [GR: Done] Elapsed cpu time: sys=0:01:21 usr=0:41:02 total= 0:42:23[Track Assign: Done] Elapsed real time: 0:05:57[Track Assign: Done] Elapsed cpu time: sys=0:00:50 usr=0:38:30 total= 0:39:21[DR Done] Elapsed real time: 0:17:50

    [DR Done] Elapsed cpu time: sys=0:00:01 usr=2:21:07 total= 2:21:09

    In general, memory should be compared by using asingle process

    Total Memory = main process memory + child processmemory, easier just to turn off child process for router T

    341-

    Tset_app_var physopt_enable_router_process false

    Example: Runtime Improvement

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    35/66

    Example: Runtime Improvement90nm, 2.3M Instances, 578 Macros

    QoR

    Memory reduction21.6GB vs. 16.9GB2

    7.0

    8.0

    classic

    Zroute

    2.1XClassic versus Zroute

    2 .

    Wire length improvement

    1.8%3.04.0

    5.0

    6.0

    e: H

    ours

    1.

    1.7XVia reduction

    11.6%0.0

    1.0

    2.0Runti

    Redundant via rateimprovement72.7% vs 93%

    rou e_au o n ser _re u n an v as ver y_rou e

    Single CPU/Thread

    351-

    Example: Multi Threading Speed Up

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    36/66

    Example: Multi-Threading Speed-Up90nm, 2.3M Instances, 578 Macros

    Comparing Threadability of Commands

    200.0

    .

    5.2X

    150.0

    nutes

    1

    2

    2.8X

    50.0

    100.0

    Runtime: Mi

    84.7X

    0.0

    361-

    _ _ _

    *Run on 4 dual-core CPUs

    Example: Multi Threading Speed up

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    37/66

    Example: Multi-Threading Speed-up90nm, 2.3M Instances, 578 Macros

    140.0

    Comparing Threadability Insideroute_zrt_auto

    120.0

    6.9X

    80.0

    .

    nutes

    1

    2

    5.1X

    40.0

    60.0

    Runtime: Mi

    83.3X

    0.0

    20.0

    371-

    global track detail

    *Run on 4 dual-core CPUs

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    38/66

    Agenda

    ZZ

    Basic Zroute Flow Overview

    Multi-Threaded Routing

    EE

    Summary

    381-

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    39/66

    Parameter Translator Example

    See the parameter translator guide (SolvNet 024478)for more info

    un c ass c rou er scr p up o po n o runn ng c ass c rou er

    ##Translate parameterstranslate_zrt_parameters

    Parameters translated into Zroute o tions =========================================

    Translated ignoreNotchDRC of droute 0 to set_route_zrt_detail_options-ignore_drc {{same_net_metal_space false}}

    Translated runTimingMode of trackAssign 1 to set_route_zrt_track_options-timing_driven true

    Parameters not translated=========================

    .

    (ZRT-410)Warning: droute parameter accessPolyPin is not supported by Zroute.

    (ZRT-409)Warning: droute parameter dropVia1InsideM1Pin cannot be translated

    391-

    rou e op on. -Warning: droute parameter M1FloatingSpaceForViaOffLimit is supported by

    Zroute only in Milkyway technology file . (ZRT-411)

    Wi h Z E l

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    40/66

    route_opt With Zroute Example

    ##Assume clocks are already routed

    ##Set signal integrity optionsse _s _op ons - e a_ e ay rue

    -route_xtalk_prevention true \

    -route_xtalk_prevention_threshold 0.25

    Ena e Zroute ns e route_optset_route_mode_options -zroute true

    ##Turn on multi-threadingset_route_zrt_common_opt ons -max_num er_o _t rea s

    ##Add specific Zroute options as needed#set_route_zrt_*_options

    ##Run initial routingroute_opt initial_route_only

    401-

    Perform postroute optimizationsroute_opt skip_initial_route

    t t t SI d Ti i D i

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    41/66

    route_zrt_auto : SI and Timing Driven

    ##Set signal integrity optionsset_route_zrt_common_options -threshold_noise_ratio 0.25set_route_zrt_global_options -crosstalk_driven true

    _ _ _ _ _

    ##Tell tool to use Zrouteset_route_mode_options zroute true

    ##Add specific Zroute options as needed#set_route_zrt_xxx_options

    set_route_zrt_global_options -timing_driven true

    set_route_zrt_track_options -timing_driven trueset_route_zrt_detail_options -timing_driven true route_opt

    ##Route designroute_zrt_auto -max_detail_route_iterations 10

    _ _

    defaults

    411-

    verify_zrt_route

    report_design -physical

    ICGR Fl With Z t E l

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    42/66

    ICGR Flow With Zroute Example

    ##Set clock tree referencesset_clock_tree_references

    ##Set clock net routing rulesset_clock_tree_options -routing_rule XYZ layer_list upper_layers

    ##Turn on ICGR inside CTOset_app_var cto_2007_12 true

    set_delay_calculation -clock_arnoldi

    ##2008.09 Flowset_delay_calculation clock_arnoldi

    ##Run CTS and CTOclock_opt only_cts no_clock_route

    ##Route clocks using the previous ICGR global route

    clock_opt only_cts \cts_effort high no_clock_route

    route_zrt_group all_clock_nets -reuse_existing_global_route true

    Prior to B-2008.09-SP3 useset_route_zrt_global_options -incremental true

    421-

    route_zrt_group all_clock_netsset_route_zrt_global_options -incremental false

    Note: In B-2008.09-SP3, the global options are hiddenand work, but will be removed for the C-2009.06 release.

    A t Fi i g ith L H i g

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    43/66

    Antenna Fixing with Layer Hopping

    Concurrent ow y e au t##Load design antenna rules (stored in design library)source antenna rules.tcl _

    ##Run initial routingroute_opt initial_route_only

    ##Perform postroute optimizationsroute_opt skip_initial_route

    ##Verif routin antenna checkin on b default

    verify_zrt_route

    Zroute scripts should explicitly turn off antenna

    fixing and checking if not neededset_route_zrt_detail_options -antenna falseverify_zrt_route antenna false

    431-

    Classic router scripts tended to turn antennas on

    sequentially

    insert zrt redundant vias list only

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    44/66

    insert_zrt_redundant_vias list_only

    Redundant via optimization will attempt to replace the following vias:

    VIA12 -> VIA12_2x1(r) VIA12_2x1 VIA12_1x2(r) VIA12_1x2- _ _ _ _

    VIA23 -> VIA23_1x2 VIA23_1x2(r) VIA23_2x1 VIA23_2x1(r)VIA23(r) -> VIA23_1x2 VIA23_1x2(r) VIA23_2x1 VIA23_2x1(r)......

    _ _ _-from_via { VIA12 VIA23 VIA34 VIA45 VIA56 VIA12_OPTI VIA23_OPTI VIA34_OPTI \

    VIA45_OPTI VIA56_OPTI VIA12_OPTI_SQ VIA23_OPTI_SQ VIA34_OPTI_SQ VIA45_OPTI_SQ \VIA56_OPTI_SQ VIA67 VIA78 } \

    -to_via { VIA12 VIA23 VIA34 VIA45 VIA56 VIA12 VIA23 VIA34 \ VIA56 VIA67 VIA78 } \

    -to_via_x_size { 2 2 2 2 2 2 2 2 \2 2 2 2 2 2 \2 2 2 } \

    - _ _ _

    1 1 1 1 1 1 \1 1 1 } \

    441-

    Prioritizing Double and Single VIA for DFM

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    45/66

    Prioritizing Double and Single VIA for DFMHidden 2008.09-SP2

    - -

    Some vias may be better for DFM, while others are

    - . -SP4

    b

    Use define_zrt_redundant_vias -to_via_weights {}

    Weight is 1 to 10

    Higher weight via will be tried firstEqual weights, Zroute will prioritize based on routability

    451-

    Insert Redundant Vias

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    46/66

    Insert Redundant Vias

    ##Define redundant via sets (optional)

    Initial Release FlowNot persistent, set

    in any script in_ _ _

    ##Route designset_route_mode_options zroute true

    wredundant vias

    _ _ _

    ##Insert double vias before timing optinsert_zrt_redundant_vias

    ##Perform postroute optimizationsroute_opt skip_initial_route

    insert_zrt_redundant_vias

    ##Report double-via rate per layer

    461-

    repor _ es gn -p ys ca

    Insert Redundant Vias

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    47/66

    Insert Redundant Vias

    ##Define redundant via sets (optional)

    Concurrent Flow

    _ _ _

    ##Reserve room for redundant viasset_route_zrt_common_options \

    - concurrent_redundant_via_mode reserve_space

    ##Enable postroute redundant via insertion

    set_route_zrt_common_options \

    Ena ena e pos rou epos rou eredundant viaredundant via

    insertion at end of insertion at end of routin hasesroutin hases-post_detail_route_redundant_via_insertion medium

    ##Route designset_route_mode_options zroute true RedundantRedundant viasviasroute_opt initial_route_only

    ##Perform postroute optimizationsroute_opt skip_initial_route

    will be insertedwill be insertedat end of at end of routing phasesrouting phases

    471-

    ##Report redundant via rate per layer

    report_design -physical

    Automatic Redundant Via Insertion

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    48/66

    Automatic Redundant Via Insertion

    Automatically inserts DVs at end of detail route oreco route. Hidden 2007.12-SP5-2Unhidden 2008.09-SP2Set a ter nsert ng s so t at rate rema ns

    nearly constant through rest of flowWW , rou e_op wre-double the vias on routing changed nets

    Extraction and timing effects are seen before and after route_opt

    route_opt optimizations are based on these effects

    set_route_zrt_common_options-post_detail_route_redundant_via_insertion{ off | low | medium | hi h }

    481-Include define_zrt_redundant_vias , if used, inany script the automatic option may apply in

    Soft Concurrent Double Via

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    49/66

    Soft Concurrent Double Via

    Soft rules to increase DV rateReserves space for later DV to be inserted

    Hidden 2007.12-SP5-2Unhidden 2008.09-SP4

    set_route_zrt_common_options- concurrent_redundant_via_mode

    off reserve s ace_

    -concurrent_redundant_via_effort_level

    { low | medium | high }

    -eco_route_concurrent_redundant_via_mode{ off | reserve_space }

    -eco_route_concurrent_redundant_via_effort_level

    { low | medium | high }

    Separate controls available for normal and ecorouting

    491-

    Run insert_zrt_redundant_vias later to insert

    Agenda

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    50/66

    Agenda

    ZZ

    Basic Zroute Flow Overview

    Multi-Threaded Routing

    EE

    Summary

    501-

    Summary

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    51/66

    Summary

    Zroute is IC Compilers brand new, super-fast,DFM-friendly router

    FF - -

    Concurrent DRC, antenna rules, wire and via optimizationConcurrent redundant via insertion for higher yieldSoft rule support for lithography-friendly routingSignal-integrity-driven and timing-driven detail routingSimplified flow for ease-of-use

    Zroute is available in version B-2008.09 to all

    Co-exists with the classic IC Compiler router S

    511-

    S

    More info: https://solvnet.synopsys.com/zroute

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    52/66

    Predictable Success

    521-

    Appendix

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    53/66

    ppe d

    More Details Getting Started With ZrouteTechnology File and Parameter Translation

    Script Conversion

    This section provides addition details about getting startedwith Zroute for even more complete materials, see thecustomer training materials available from your Synopsys

    .

    531-

    Technology File Details

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    54/66

    gy

    All vias that you want Zroute to use (non-pinaccess) must be defined as default viasContactCode "VIA23" {

    isDefaultContact = 1

    }

    All routing rules must be in the technology file for

    Rules implemented as parametersM1FloatingParaLenForViaOffLimit

    M1FloatingSpaceForViaOffLimit

    Move to technology file for both classic router and Zroute=

    541-

    fatWireViaKeepoutMaxSpacingThreshold = S1

    Default Vias and Via Regions

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    55/66

    g

    Zroute depends on the same via regions as theclassic router to access pins

    Blockage, pin, via (BPV) extraction is the same

    If a particular via type needed to access pin and viare ion does not exist

    Redo BPV with the contact specified as a default via

    For non-pin access, Zroute uses only vias definedas defaultClassic router uses both default vias and vias that were

    Ideally they would be the same set but for historicreasons in the classic router they might not be

    551-

    Z -

    Translation Example: ignoreNotchDRC

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    56/66

    Most classic router scripts set the following option:se _rou e_op ons -same_ne _no c c ec _an _ x

    When translated you see:Translated ignoreNotchDRC of droute 0 to

    set_route_zrt_detail_options -ignore_drc{{same_net_metal_space false}}

    By default, Zroute fixes notch and gapset_route_zrt_detail_options -ignore_drc {}

    In o er wor s, e rans a on a ove an e au are e same

    Therefore, no need to set this option in translated scripts

    561-

    Translation Example: runTimingMode

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    57/66

    Classic router is controlled by parameters that are

    The translate_zrt_parameters command finds

    No need to translate because timing is set by usingZroute options or route_opt

    Other parameters, such as crosstalk prevention,are similar

    571-

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    58/66

    Parameter Translator Verification

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    59/66

    set_route_mode_options -zroute true

    ##Add specific Zroute options as needed based on translation

    #set_route_zrt_detail_options

    ##No antenna fixing and non-timing-driven routingset_route_zrt_detail_options -antenna false

    se _rou e_zr _g o a _op ons - m ng_ r ven a se -cross a _ r ven a se

    set_route_zrt_track_options -timing_driven false -crosstalk_driven false

    set_route_zrt_detail_options -timing_driven false

    ##Run Zroute

    route_zrt_auto

    Do not use

    verify_zrt_route antenna falsereport_design physical classic router verify_route !

    591-

    ##Independent DRC

    verify_drc ;# 65nm or above, or signoff_drc (2008.09), or Hercules

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    60/66

    Script Changes

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    61/66

    You should modify classic router scripts to beZroute focused for final implementation scripts,ns ea o epen ng on parame er rans a on

    Quick script conversion is good for proof-of-concept onlyCCplaces in script to enable features, or when needed for routing convergence

    RRZroute options you have set

    Commands mi ht be reordered, deleted, or added

    due to Zroute behaviorRefer to the IC Compiler Recommended Methodology with

    611-More details in subsequent sections

    Common Missteps When Starting Zroute

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    62/66

    Using verify_route to check results

    TT

    Commands might have equivalence, but often notneeded since Zroute is more concurrent and simplifiedCommands used because of deficiencies in classicrouter or flow

    Correct order has chan edMeasuring Router QoR

    If optimize wire via is run in classic router _ _

    Routing QoR is similar, but runtime is much better inZroute (~3-5x)

    I

    621-

    I _ _ Route QoR is much improved, routing runtime should still

    be faster in Zroute (~2x)

    Script Changes

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    63/66

    You should modify classic router scripts to beZroute focused for final implementation scripts,ns ea o epen ng on parame er rans a on

    Quick script conversion is good for proof-of-concept onlyCCplaces in script to enable features, or when needed for routing convergence

    RRZroute options you have set

    Commands mi ht be reordered, deleted, or added

    due to Zroute behaviorRefer to the IC Compiler recommended methodology with

    631-More details in subsequent sections

    Script Conversion Tip Search and Repair

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    64/66

    Dont blindly convert every route_search_repair rou e_zr _ e a ncremen a rue

    Often classic router needed search and repair

    Antenna fixing

    Off-grid pinsZroute converges faster and stops when it detectsnonconvergence

    Classic router used several iterations of search andrepair, spread through scripts, to help control runtime

    641-

    Script Conversion Tip Redundant Vias

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    65/66

    Initially classic router could not automatically

    Some customers created complex scripts to query viasfrom the databaseforeach via [get_via_masters *] {

    }

    Try to use Zroute default firstFinds available vias and discards nonoptimal viasRR

    Use the list_only option to customizeS

    651-

    S

    Script Conversion Tip Wire Spreading

  • 8/8/2019 Zroute Technical Tutorial v2 03 024524

    66/66

    Do not use spread_zrt_wires just after initial

    Some classic router scripts do thisSSslower Zroute has stronger crosstalk avoidance and timing-

    Pre-spreading should not be needed and can producesuboptimal results

    661-