11
CTS Lab 4 – Multi-corner balancing

CTS Lab 4 (Multicorner).pdf

Embed Size (px)

Citation preview

  • CTS Lab 4 Multi-corner balancing

  • Each timing corner has two half-corners: Early : setup capture, hold launch Late : setup launch, hold capture Corresponds to late early in some SDC commands

    CTS primary half-corner Typically the late half of the first defined setup corner Used for clustering and initial balancing analysis

    All half-corners Considered for skew fixing i.e. detailed buffer size, place

    adjustment to close on skew targets

    Timing corners

    2 2013 Cadence Design Systems, Inc. Cadence confidential. Internal use only.

    Each timing corner has two half-corners: Early : setup capture, hold launch Late : setup launch, hold capture Corresponds to late early in some SDC commands

    CTS primary half-corner Typically the late half of the first defined setup corner Used for clustering and initial balancing analysis

    All half-corners Considered for skew fixing i.e. detailed buffer size, place

    adjustment to close on skew targets

  • log_on

    db_restore../CTSLAB1/SAMPLE/crypto_dma_raid_pse_top.pre.azdb

    # Spread cells out to improve routability

    set_option cts_cell_density 0.5

    # Tighten global slew target. Actually this is probably notrequired as cts_compute_fastest_drivers_and_slews_for_clustering has picked 75ps.

    set_option cts_target_slew 0.080

    set_option cts_target_nonleaf_slew 0.080

    # Enable multi-corner balancing

    config_icts -skew global_multicorner -cg_opt off *

    Configuration script example 1/3(No need to run this in the lab)

    3 2013 Cadence Design Systems, Inc. Cadence confidential. Internal use only.

    log_on

    db_restore../CTSLAB1/SAMPLE/crypto_dma_raid_pse_top.pre.azdb

    # Spread cells out to improve routability

    set_option cts_cell_density 0.5

    # Tighten global slew target. Actually this is probably notrequired as cts_compute_fastest_drivers_and_slews_for_clustering has picked 75ps.

    set_option cts_target_slew 0.080

    set_option cts_target_nonleaf_slew 0.080

    # Enable multi-corner balancing

    config_icts -skew global_multicorner -cg_opt off *

  • # Set the primary half corner skew target and set target forhold corner.

    foreach sg [get_skew_groups *] {

    set_property cts.target.skew.max:setup.early $sg ignore

    set_property cts.target.skew.max:setup.late $sg 0.090

    set_property cts.target.skew.min:hold.early $sg 0.050

    set_property cts.target.skew.min:hold.late $sg ignore

    }

    Configuration script example 2/3

    4 2013 Cadence Design Systems, Inc. Cadence confidential. Internal use only.

    # Set the primary half corner skew target and set target forhold corner.

    foreach sg [get_skew_groups *] {

    set_property cts.target.skew.max:setup.early $sg ignore

    set_property cts.target.skew.max:setup.late $sg 0.090

    set_property cts.target.skew.min:hold.early $sg 0.050

    set_property cts.target.skew.min:hold.late $sg ignore

    }

  • # --- Advanced options ---

    # Compute fastest buffer size and slew for use over all corners

    set_option cts_compute_fastest_drivers_and_slews_for_clusteringmulti_corner

    # Do not permit large wire delay variations skews on individualnets

    set_optioncts_clustering_net_skew_limit_as_proportion_of_skew_target 0.5

    # Spread cells out instead of lumping them together

    set_option cts_add_wire_delay_in_detailed_balancer true

    # Always place cells in the centre of their fanout bounding box(helps reduce wire delay variations in individual clusters)

    set_option cts_put_driver_in_centre_of_fanout_bounding_box true

    # Run CTS (no datapath optimization)

    icts -timing ignore

    Configuration script example 3/3

    5 2013 Cadence Design Systems, Inc. Cadence confidential. Internal use only.

    # --- Advanced options ---

    # Compute fastest buffer size and slew for use over all corners

    set_option cts_compute_fastest_drivers_and_slews_for_clusteringmulti_corner

    # Do not permit large wire delay variations skews on individualnets

    set_optioncts_clustering_net_skew_limit_as_proportion_of_skew_target 0.5

    # Spread cells out instead of lumping them together

    set_option cts_add_wire_delay_in_detailed_balancer true

    # Always place cells in the centre of their fanout bounding box(helps reduce wire delay variations in individual clusters)

    set_option cts_put_driver_in_centre_of_fanout_bounding_box true

    # Run CTS (no datapath optimization)

    icts -timing ignore

    These settingstypically required onharder 28nmdesigns.

  • Start CCOpt session and load visualization files:hostname$ cd CTSLAB4hostname$ ccoptccopt% load_visualization SAMPLE/sc_skew.viz.gzccopt% load_visualization SAMPLE/mc_skew.viz.gz

    Sample report files:SAMPLE/sc_skew.rpt SAMPLE/sc_trees.rptSAMPLE/mc_skew.rpt SAMPLE/mc_trees.rpt

    SAMPLE/mc_full.log

    Preparation

    6 2013 Cadence Design Systems, Inc. Cadence confidential. Internal use only.

    Start CCOpt session and load visualization files:hostname$ cd CTSLAB4hostname$ ccoptccopt% load_visualization SAMPLE/sc_skew.viz.gzccopt% load_visualization SAMPLE/mc_skew.viz.gz

    Sample report files:SAMPLE/sc_skew.rpt SAMPLE/sc_trees.rptSAMPLE/mc_skew.rpt SAMPLE/mc_trees.rpt

    SAMPLE/mc_full.log

  • Examine the multi-corner CTS log, examples: Clock tree balancer configuration for

    skew_group:clk_fast/func_mode ... Skew group summary at end of CTS ...

    Examine and compare the single corner and multi-cornerreports and skew visualizations SAMPLE/*.rpt, SAMPLE/*.viz.gz Note the insertion delay histogram in SAMPLE/mc_skew.rpt

    (generated with report_skew_groups -histograms)

    Change timing corner and half-corner using controls at topright of the skew visualization

    Activities

    7 2013 Cadence Design Systems, Inc. Cadence confidential. Internal use only.

    Examine the multi-corner CTS log, examples: Clock tree balancer configuration for

    skew_group:clk_fast/func_mode ... Skew group summary at end of CTS ...

    Examine and compare the single corner and multi-cornerreports and skew visualizations SAMPLE/*.rpt, SAMPLE/*.viz.gz Note the insertion delay histogram in SAMPLE/mc_skew.rpt

    (generated with report_skew_groups -histograms)

    Change timing corner and half-corner using controls at topright of the skew visualization

  • Insertion delay variation visualization

    8 2013 Cadence Design Systems, Inc. Cadence confidential. Internal use only.

  • Insertion delay variation visualization

    9 2013 Cadence Design Systems, Inc. Cadence confidential. Internal use only.

  • Multi-corner balancing configuration Insertion delay variation in skew clock tree visualization Default AZTCL script written by ccoptDesign cts

    configures for multi-corner balancing CTS automatically infers skew targets for corners which are not set

    Only applicable to plain CTS With CCOpt objective is not to balance but to meet multi-corner

    multi-mode timing constraints

    More advanced options can improve multi-cornerrobustness Deal with scaling mismatch between wire and cell delays Deployable both in full CCOpt and plain CTS Although options shown in earlier script this is beyond scope of this

    training R&D activities

    Summary

    10 2013 Cadence Design Systems, Inc. Cadence confidential. Internal use only.

    Multi-corner balancing configuration Insertion delay variation in skew clock tree visualization Default AZTCL script written by ccoptDesign cts

    configures for multi-corner balancing CTS automatically infers skew targets for corners which are not set

    Only applicable to plain CTS With CCOpt objective is not to balance but to meet multi-corner

    multi-mode timing constraints

    More advanced options can improve multi-cornerrobustness Deal with scaling mismatch between wire and cell delays Deployable both in full CCOpt and plain CTS Although options shown in earlier script this is beyond scope of this

    training R&D activities

  • 11 2013 Cadence Design Systems, Inc. Cadence confidential. Internal use only.