View
214
Download
0
Category
Preview:
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.
Recommended