Uploaded by siqi liu

eetop.cn analyze timing correlation

advertisement
Analyzing IC Compiler II and
PrimeTime Timing Correlation
Version 2016.03, June 2016
Copyright Notice and Proprietary Information
© [Year] Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc.
and may only be used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All
other use, reproduction, modification, or distribution of the Synopsys software or the associated documentation is
strictly prohibited.
Destination Control Statement
All technical data contained in this publication is subject to the export control laws of the United States of America.
Disclosure to nationals of other countries contrary to United States law is prohibited. It is the reader's responsibility to
determine the applicable regulations and to comply with them.
Disclaimer
SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH
REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Trademarks
Synopsys company and certain product names are trademarks of Synopsys, as set forth at
http://www.synopsys.com/Company/Pages/Trademarks.aspx.
All other product or company names may be trademarks of their respective owners.
Third-Party Links
Any links to third-party websites included in this document are for your convenience only. Synopsys does not endorse
and is not responsible for such websites and their practices, including privacy practices, availability, and content.
Synopsys, Inc.
690 E. Middlefield Road
Mountain View, CA 94043
www.synopsys.com
ii
Contents
Introduction ................................................................................................................................ 4
Analyzing Timing Correlation ..................................................................................................... 5
Overriding IC Compiler II Application Options ........................................................................ 6
Disabling the Timer Consistency Settings .............................................................................. 7
Providing Additional Information for the PrimeTime Run ........................................................ 8
Saving and Reusing PrimeTime Sessions .............................................................................. 8
Analyzing Correlation for Specific Scenarios .......................................................................... 9
Generating a Verbose Correlation Report .............................................................................. 9
Generating Files for the PrimeTime Run .............................................................................. 11
Allocating Compute Resources ............................................................................................ 11
Ensuring Accurate Correlation Results ..................................................................................... 13
Resolving Moved or Missing .db Files .................................................................................. 13
Appendix .................................................................................................................................. 15
Output Directory Structure .................................................................................................... 15
iii
Introduction
You can analyze the timing correlation between the IC Compiler II and PrimeTime tool
by using the analyze_timing_correlation command in the IC Compiler II tool.
The analyze_timing_correlation command performs the following tasks:
1. For the current IC Compiler II settings, generates the design files necessary to run
the PrimeTime tool for each scenario.
2. Invoke the PrimeTime tool from the IC Compiler II tool, and generates a series
endpoint timing reports for minimum and maximum delay for all scenarios.
3. Generates the corresponding IC Compiler I endpoint timing reports for minimum and
maximum delay for all scenarios.
4. Compares the endpoint timing of those reports and calculates a set of correlation
metrics.
The tool compares the worst maximum and minimum delay slack between PrimeTime
(the golden or base timing report) and worst equivalent endpoint slack from the IC
Compiler II timing report across 200,000 timing endpoints per scenario.
Based on the following criteria, an endpoint is considered to be correlating within
tolerance, or not:
|π‘†π‘™π‘Žπ‘π‘˜π‘π‘‘ − π‘†π‘™π‘Žπ‘π‘˜π‘–π‘π‘2 |
≤ 3%
π‘ƒπ‘Žπ‘‘β„Ž πΏπ‘’π‘›π‘”π‘‘β„Žπ‘π‘‘
The expectation is that 95% or more of the 200,000 endpoints that have a path length of
at least 3ps in each scenario are correlated for both maximum and minimum delay.
If less than 95% of the endpoints are within these criteria at the 3% threshold, the
scenario is not considered to be well correlated and further investigation is
recommended.
The following is a portion of an example output of the analyze_timing_correlation
command, which shows the slack correlation metrics:
Correlation Metric: slack
-------------------------------------------Correlation Metric
-------------------------------------------All Endpoints
Violating Endpoints
Absolute Slack Difference on Average
Absolute Slack Difference Standard Deviation
-------------------------Value
-------------------------96.186% at 3.00% Threshold
78.000% at 3.00% Threshold
-20.994 ps
32.156 ps
---------- ------ ------- --- ---------Context metric
WNStable,
TNS NVE Unique NVE
In this correlation
--------------- --------- ---------- of timing endpoints that are considered to be
ο‚· The first
row shows
the percentage
correlated
at the -1.252
specified
correlation
PT_auto
-24.817
442 threshold
329 (3%)
ο‚· The second row shows the same calculation when considering only endpoints that
-1.197value
-10.595
121 PrimeTime
8
have aNT_auto
negative slack
in either
or IC Compiler II
Difference -0.056 -14.222 321
321
4
ο‚·
The third and fourth rows are the mean and standard deviation of slack differences
across all endpoints. The slack difference is |π‘†π‘™π‘Žπ‘π‘˜π‘π‘‘ − π‘†π‘™π‘Žπ‘π‘˜π‘–π‘π‘2 |
The following portion of an example report shows the timing QoR as reported in
PrimeTime and IC Compiler II tools.
---------- ------ ------- --- ---------Context
WNS
TNS
NVE Unique NVE
---------- ------ ------- --- ---------PT_auto
-1.252 -24.817 442
329
ICC2_auto -1.197 -10.595 121
8
Difference -0.056 -14.222 321
321
In this table, the column named Unique NVE (number of violation endpoint) shows how
many violating endpoints exist exclusively in either the PrimeTime or IC Compiler II tool.
According to this table, the design has 8 endpoints that were seen as non-violating and
321 endpoints that were seen as over-violating in the IC Compiler II tool, as compared
with the PrimeTime signoff timing analysis, which suggests that the IC Compiler II tool is
more pessimistic.
As more than 95% of all endpoints are within threshold, this scenario is considered to be
well correlated.
Analyzing Timing Correlation
Before you run the analyze_timing_correlation command, ensure that you follow
the recommended guidelines described in the IC Compiler II Timing Correlation
Methodology Kit Application Note.
With the analyze_timing_correlation command, you must specify
ο‚·
A working directory for correlation analysis by using the –work_dir option.
The working directory contains the intermediate files such as design netlist,
constraints, parasitics, and Tcl scripts generated for running the PrimeTime tool, and
also the timing reports generated for correlation analysis. For more information of the
directory structure of the working directory, see Output Directory Structure.
By default the tool does not overwrite any existing files in the working directory.
However, you can force the tool to overwrite any existing files by using the
-overwrite_work_dir option. You can also force the tool to remove all files in the
working directory at the end of the analyze_timing_correlation command by
using the -clear_work_dir option.
ο‚·
The path to the PrimeTime executable by using the –pt_exec_path option.
Specify the path to the PrimeTime version that you use for signoff analysis.
5
The following example analyzes the correlation using the default threshold of 3%:
icc2_shell> analyze_timing_correlation –work_dir Corr \
–pt_exec_path /SNPS_TOOLS/linux64/bin/pt_shell
After you run the initial correlation analysis with the default pass rate threshold of 3%,
you can rerun correlation analysis with a different pass rate threshold value and reuse
the initial correlation data as shown in the following example:
icc2_shell> analyze_timing_correlation –work_dir Corr -overwrite_work_dir \
–pt_exec_path /SNPS_TOOLS/linux64/bin/pt_shell
icc2_shell> analyze_timing_correlation –work_dir Corr –pass_rate_threshold 2
–pt_exec_path /SNPS_TOOLS/linux64/bin/pt_shell
In this case, the second run of the analyze_timing_correlation command generates
a correlation report for the specified threshold without regenerating either the IC
Compiler II or PrimeTime timing reports.
However, if you need secondary reports with a different timing environment, such as with
and without crosstalk as shown in the following example, the subsequent call to the
analyze_timing_correlation command removes the reports in the work directory,
recreates the PrimeTime configuration, reruns the PrimeTime tool, and generate new
reports from both tools.
icc2_shell> analyze_timing_correlation –work_dir Corr -overwrite_work_dir \
–pt_exec_path /SNPS_TOOLS/linux64/bin/pt_shell \
–si_enable_analysis false
icc2_shell> analyze_timing_correlation –work_dir Corr \
–pt_exec_path /SNPS_TOOLS/linux64/bin/pt_shell \
–si_enable_analysis true
Here, the contents of the working directory (./Corr) is overwritten regardless of whether
the –overwrite_work_dir option is specified or not.
Overriding IC Compiler II Application Options
By default, the value of the following four IC Compiler II application options are
converted to their equivalent PrimeTime application variables and specified for the
PrimeTime run:
ο‚·
time.delay_calculation_style
ο‚·
time.si_enable_analysis
ο‚·
time.waveform_analysis_mode
ο‚·
time.enable_ccs_rcv_cap
To analyze correlation with different values than what you use for IC Compiler II timing
analysis, you can do one of the following:
6
ο‚·
Change the application options directly before you run the
analyze_timing_correlation command.
ο‚·
Specify one or more of the following options of the analyze_timing_correlation
command:
-delay_calculation_style zero_interconnect|auto
-si_enable_analysis true|false
-waveform_analysis_mode disabled|full_design
-enable_ccs_rcv_cap true|false
If you do not specify these options, the tool uses the current setting specified by the
corresponding application option. If you use the -delay_calculation_style
zero_interconnect option setting, the tool ignores the settings of the
-si_enable_analysis and –waveform_analysis_mode options. However, it does
not ignore the setting of the –enable_ccs_rcv_cap option. It is recommended that
you use the -enable_ccs_rcv_cap true option setting (or its equivalent app
option) for correlation analysis.
The benefit of using these options of the analyze_ analyze_timing_correlation
command to specify the settings for correlation analysis is that the tool
1. Modifies the corresponding application option settings to the specified values
2. Generates the required timing reports
3. Returns the application options to their original settings
The following example shows this behavior:
icc2_shell> get_app_option_value –name time.si_enable_analysis
false
icc2_shell> analyze_timing_correlation –work_dir Corr -overwrite_work_dir \
–save_pt_session –pt_exec_path /SNPS_TOOLS/linux64/bin/pt_shell \
–si_enable_analysis true
icc2_shell> get_app_option_value –name time.si_enable_analysis
false
The benefit of using the application options to specify the settings for correlation analysis
is that when you run multiple analyze_timing_correlation commands back-to-back,
such as when looping through scenarios manually, the application options remain
unchanged between each run of the command.
Disabling the Timer Consistency Settings
By default, the analyze_timing_correlation command invokes the
check_consistency_settings command to ensure that the environment for the timer
is consistent between the IC Compiler tool and the PrimeTime tool.
7
The consistent setttings include enabling some nondefault features in the PrimeTime
tool to match the default behavior in the corresponding feature in the IC Compiler II tool,
and disabling some default features in PrimeTime that do not exist in the IC Compiler II
tool. Using consistent settings allows for measurement of the best correlation currently
achievable.
To see the correlation with sign-off-centric PrimeTime settings, you can disable the use
of the consistency setting by specifying the -disable_compatibility_settings
option with the analyze_timing_correlation command. Using this option prevents
the tool from modifying the correlation related IC Compiler II and PrimeTime settings and
the two tools remain in their user-specified configurations.
Consistency setting
L-2016.03-SPx IC Compiler II
K-2015.12 PrimeTime
New latch modeling
Default behavior and cannot
be disabled
Enabled for correlation,
which is not the default
Crosstalk aggressor timing
windows
Not supported
Disabled for correlation,
which is also the default
The table above shows the two most common settings that are different between the
user-specified configuration of the IC Compiler II tool and the PrimeTime tool.
Providing Additional Information for the PrimeTime Run
By default, the tool generates the files necessary to run the PrimeTime tool. However,
you can specify additional or alternate information to use as follows:
ο‚·
To specify a script that should be sourced before linking the design in the PrimeTime
tool, use the -pt_pre_link_script option.
ο‚·
To specify a script that should be sourced after linking the design in the PrimeTime
tool, use the -pt_post_link_script option.
ο‚·
To specify a script that should be used to generate the PrimeTime reports, instead of
using the script that the tool generates, use the -pt_user_script option. When you
use this option, the tool ignores the -pt_pre_link_script and
-pt_post_link_script option settings.
ο‚·
To specify additional search paths to use when linking the design in the PrimeTime
tool, use the -pt_search_paths option.
Saving and Reusing PrimeTime Sessions
You can save the PrimeTime session so that it can be used in a subsequent run of the
analyze_timing_correlation command by using the –save_pt_session option.
The tool saves the PrimeTime sessions in the working directory.
To reuse a previously saved PrimeTime session, use the -use_pt_save_session
option with the analyze_timing_correlation command.
8
The PrimeTime save sessions must exist under the work_dir/saved_sessions/
subdirectory with the following name style :
<module_name>_<scenario_name>_<pt_tool_version>_auto.pt_save_session
For example
leon3mp_Func::Hot_RCworst_K-2015.06_auto.pt_save_session
Analyzing Correlation for Specific Scenarios
By default, the analyze_timing_correlation command analyzes and generates a
correlation report for every scenario in the design. However, you can limit it to specific
scenarios by using the –scenarios option. When you use this option, the tool generates
the files needed to run the PrimeTime tool for all scenarios in the design. However, it
generates the timing data and performs the correlation analysis only for the specified
scenarios.
For example, assume that your design has five active setup scenarios names Scen1,
Scen2, Scen3, Scen4, and Scen5. To analyze correlation for only the scenarios named
Scen1, Scen2, Scen3, and Scen4, use the following command:
icc2_shell> analyze_timing_correlation –scenarios {Scen1 Scen2 Scen3 Scen4} \
–work_dir Corr -overwrite_work_dir –clear_work_dir
For this example, the tool generates the files necessary to run the PrimeTime tool for all
five scenarios. However, it generates the PrimeTime timing data and performs the
correlation analysis only for the four specified scenarios.
The single analyze_timing_correlation command usage in this example is
equivalent to the following set of commands:
icc2_shell> analyze_timing_correlation –work_dir Corr –scenario Scen1 \
–overwrite_work_dir
icc2_shell> analyze_timing_correlation –work_dir Corr –scenario Scen2
icc2_shell> analyze_timing_correlation –work_dir Corr –scenario Scen3
icc2_shell> analyze_timing_correlation –work_dir Corr –scenario Scen4 \
–clear_work_dir
Generating a Verbose Correlation Report
To generate a more detailed correlation report, use the –verbose option with the
analyze_timing_correlation command.
The verbose report has four categories of endpoints, which are as follows:
ο‚·
All Endpoints, which includes all timing endpoints regardless of their slack or path
length value.
ο‚·
Threshold Endpoints, which includes only the timing endpoints for which the
absolute difference in their slack divided by the PrimeTime path length is greater
or equal to the Pass rate threshold (3%)
ο‚·
Violating and Non-Violating
9
ο‚·
Violating Only
The following is a portion of an example report that shows correlation metrics for two
categories of endpoints, violating and nonviolating endpoints and violating endpoints
only.
Correlation Metric: slack
-------------------- ------------------------ ------------All Endpoints
3.0% Threshold Endpoints All Endpoints
-------------------- ------------------------ ------------Correlation%
96.186
0.437
Total Ep Count
1135
29756
Differing Ep Count
1135
29626
Absolute Average %
4.107
0.946
Absolute Stddev %
2.816
1.112
Relative Average ps
-88.063
-20.994
Relative Stddev ps
86.575
32.156
-------------------- ------------------------ ------------Violating Endpoints 3.0% Threshold Endpoints All Endpoints
-------------------- ------------------------ ------------Correlation%
78.000
0.000
Total Ep Count
99
450
Differing Ep Count
99
450
Absolute Average %
8.953
3.248
Absolute Stddev %
7.460
4.672
Relative Average ps
-128.772
-59.103
Relative Stddev ps
226.383
113.690
This portion of the example report gives the values for a set of metrics that are
measured considering:
ο‚·
The endpoints in the category that meet the specified threshold, which is 3% for this
example. These values are in the second column.
ο‚·
All endpoints in the category, regardless of whether the endpoint meets the threshold
criteria or not. These values are in the third column.
The following table provides the definitions of these different metrics in this portion of the
example report.
Metric
Definition
Correlation
Percentage of considered endpoints that meet or exceed the
correlation criteria at the specified threshold
Total_Ep_Count
Number of endpoints considered for correlation (endpoints will
be dropped if they exceed the threshold criteria)
Differing_Ep_Count
Number of endpoints whose slack difference between the two
reports exceeds 0ps
Absolute_Average_%
The average of all percentage differences exceeding 0ps
across all considered endpoints.
10
Absolute_Stdev_%
The standard deviation of percentage differences exceeding 0
ps across all considered endpoints.
Relative_Average_ps
The average of the absolute slack difference between reports
across all considered endpoints in picoseconds.
Relative_Stdev_ps
The standard deviation of slack differences from the mean
slack difference, across all considered endpoints, in
picoseconds
The verbose report also contains information on the top five least correlated endpoints
ordered by the slack difference (in picoseconds). Negative differences indicate optimism
in IC Compiler II and positive differences indicate pessimism in IC Compiler II, as
compared with PrimeTime. The length value shown is the path length as calculated by
endpoint arrival time minus startpoint launch time.
Violating Endpoints
------------------Endpoint slack Correlation
--------- ------ ------------- ------------- -------------- -------------- ---------------------------------Diff (ps) Diff % PT_auto Slack NT_auto Slack PT_auto Length NT_auto Length Endpoint
--------- ------ ------------- ------------- -------------- -------------- ----------------------------------847.400
32.41
-0.3505
+0.4969
1.7920
2.5898 u_m/u_m_pd/pci0/pr_reg_AD__0_/D
-797.700
38.01
-0.9669
-0.1692
1.3292
2.0705 u_m/u_m_pd/pci0/pr_reg_AD__20_/D
-785.800
32.79
-0.5423
+0.2435
1.6355
2.3715 u_m/u_m_pd/pci0/pr_reg_AD__18_/D
-581.300
22.54
-0.0979
+0.4834
1.9978
2.5785 u_m/u_m_pd/sdc/r_reg_HRDATA__30_/D
-561.800
26.24
-0.6727
-0.1109
1.6069
2.1129 u_m/u_m_pd/pci0/pr_reg_AD__15_/D
Generating Files for the PrimeTime Run
To generate the design files required for the PrimeTime run, but not generate timing data
or perform the correlation analysis, use the -script_only option.
Then the analyze_timing_correlation command exits after creating the design files
for the PrimeTime run. You can use these files and run the PrimeTime tool stand-alone
as shown in the following example:
% pt_shell –f work_dir/pt_scripts/BLK1_SCN1.tcl
Allocating Compute Resources
When the analyze_timing_correlation command launches the PrimeTime tool, it
allocates the same cores to the PrimeTime run as you have allocated to the IC Compiler
II run with the set_host_options -max_core command.
11
As shown in the following graph, the IC Compiler II tool sits idle when the PrimeTime tool
is running. This means that no more than the cores allocated for the IC Compiler II run
are used, and these cores are fully utilized.
CPU usage (4 Core) of analyze_timing_correlation
500
% CPU
400
300
200
100
0
Runtime
ICC2
PT
Usually, the PrimeTime tool requires less memory than the IC Compiler II tool. However,
because both tools are simultaneously active during correlation analysis, it requires
twice the memory that the IC Compiler II tool requires for performing timing analysis on
the design, as shown in the following graph.
Memory Consumed
Memory consumption of analyze_timing_correlation
Runtime
ICC2
PT
Total
As the analyze_timing_correlation command does not use more cores than were
allocated in IC Compiler II tool, there is no need to increase the number of cores when
running this command. There is however a need to increase the amount of memory
allocated to IC Compiler II tool when running this command.
The recommendation would be to increase the memory allocation by 60% to ensure that
the command does not exceed the allocation.
12
Ensuring Accurate Correlation Results
If you correlation results are bad, before you proceed to identify possible correlation
issues, you need to ensure that the correlation analysis results are accurate.
To achieve accurate correlation results, you need to ensure that the PrimeTime timing
data is generated correctly. If the PrimeTime timing data is not generated from a fully
linked and constrained design that is comparable to the IC Compiler II design, the
correlation results will not be accurate.
The following are possible issues that could prevent accurate correlation results:
ο‚·
ο‚·
ο‚·
ο‚·
ο‚·
ο‚·
ο‚·
Incompatible IC Compiler II and PrimeTime settings.
If the tool identifies IC Compiler II settings that are not recommended for correlation
consistency, it issues a CORR-812 error message.
Unresolved references when linking the design in the PrimeTime tool
If there are unresolved references during linking, the PrimeTime tool issues LNK-003
information messages.
Failure to fully annotate the IC Compiler II parasitics onto the netlist in the PrimeTime
tool
Mismatches in the PrimeTime save-session versions , when the –save_pt_session
and -use_pt_save_session options are used with the
analyze_timing_correlation command
Failure to annotate the constraints in the PrimeTime tool.
For example, some IC Compiler II constraints on library objects are not supported in
the PrimeTime tool. These constraints will be dropped.
Missing or incorrectly resolved constraints.
Different logical library .db files are specified for the PrimeTime run using the
–pt_search_path option of the analyze_timing_correlation command, than
those used to create the IC Compiler II reference libraries.
After you run the analyze_timing_correlation command and generate the
correlation results, you should
1. Check the IC Compiler II log file for any error messages.
2. Check in the PrimeTime log files, which are in the <work_dir>/pt_logs/ directory, for
any error messages.
If the PrimeTime log files are zero length, which indicates the PrimeTime tool was
not launch successfully,
a. Check the <work_dir>/dump_pt/<block_name>_design_files.<int>/ directory
to see if the design files required for the PrimeTime run were generated.
These design files include, the netlist, parasitics, and constraints.
b. Launch the PrimeTime tool stand-alone, using the
<work_dir>/dump_pt/pt_scripts/scenario_<scenario_name>_auto.tcl script, to
debug interactively/.
Resolving Moved or Missing .db Files
The analyze_timing_correlation command runs the PrimeTime tool and therefore
has a dependency on the library .db files required to link the design in the PrimeTime
tool.
13
The analyze_timing_correlation command tool uses the information stored in the IC
Compiler II reference libraries (.ndm database) to determine where the .db files were
located when each reference library was compiled. This information is then used when
generating the design files for the PrimeTime run.
If the IC Compiler II reference library was compiled from .lib files rather than .db files, the
analyze_timing_correlation command is unable to resolve the necessary reference
libraries for PrimeTime.
If the locations of the .db files stored in the IC Compiler II reference library is not visible
or the .db files have moved since the reference library was created, the
analyze_timing_correlation command issues the following message when it creates
the design files for the PrimeTime run:
"The original db-file '/my/reflibs/mylib.db' has been moved or deleted”
Use one of the following methods to resolve this issue:
ο‚·
Specify the location of the .db files by using the –pt_search_path option of the
analyze_timing_correlation command. If you do so, the tool issues the
following message during the analyze_timing_correlation command:
"Found missing db-file '/my/reflibs/mylib.db', successfully resolve
to '/your/reflibs/mylib.db”
ο‚·
Recreate the IC Compiler II reference libraries using the .db files that are currently
available, which is the preferred method. This ensures that the same .db files used to
create the IC Compiler II reference libraries will also be used for the PrimeTime run.
14
Appendix
Output Directory Structure
The following is the directory structure of the working directory created by the
analyze_timing_correlation command.
<work_dir>/
dump_pt/
pt_scripts/
<block>_<scenario>_<date>.pt.tcl
<scenario>_app_vars.<checksum>.pt
<block>_design_files_<checksum>/
Netlist, parasitics, and constraint files
pt_logs/
<block>_<scenario>_<date>.log
saved_sessions/
<block>_<scenario>.<pt-version>.save_session
reports/
<block>_<scenario>_min.<tool>*rpt
<block>_<scenario>_max.<tool>*rpt
saved_status/
<tool>.recommended_app_vars.tcl
15
Download