ETM AppNote 1.0
ETM AppNote 1.0
Version 1.0
Abstract
ASIC devices are often composed of third-party IP (Intellectual Property), custom or semi-custom
functional blocks, fab-vendor memory macros, standard cell glue logic, etc. As design sizes increase
and customers migrate to static timing analysis solutions that incorporate delay calculation using
parasitic information and signal integrity analysis, capacity and runtime issues for full-chip analysis
become increasingly important. PrimeTime’s Extracted Timing Models (ETMs) are timing
abstractions of designs for complex blocks or IP blocks that can improve capacity and runtime while
preserving reasonable accuracy. This document describes Extracted Timing Model flows and discusses
how these models are generated, verified and used. The limitations of Extracted Timing models are also
discussed. The focus of this document is to provide a recommended methodology to help the user
produce sign-off quality ETMs, but it is not an exhaustive description. For more information, see the
chapter “Extracted Timing Models” in the PrimeTime Modeling User Guide.
Table of contents
1 Introduction 1
1.1 BENEFITS OF HIERARCHICAL VERSUS FLAT STA FLOW 1
1.2 EXTRACTED TIMING MODELS (ETMS) 1
1.3 INTERFACE LOGIC MODELS (ILMS) 2
2 Model Extraction 2
2.1 BLOCK-LEVEL STATIC TIMING ANALYSIS USING PARASITICS 3
2.2 PREPARING FOR MODEL EXTRACTION 3
2.3 GENERATING ETMS AS LIBRARY CELLS 3
2.4 EXTRACTION VARIABLES 4
2.4.1 Slew Propagation 4
2.4.2 Other Variables 5
2.5 TIMING EXCEPTIONS 5
2.6 GENERATED CLOCKS 5
2.7 BLOCK SCOPE 6
2.8 MODEL MODES 6
2.9 DIFFERENT OPERATING CORNERS 6
3 Model Validation 6
3.1 MODEL VALIDATION COMMANDS 6
3.2 MODEL VALIDATION FLOW 7
3.3 TROUBLESHOOTING MODEL VALIDATION MISMATCHES 8
3.4 OPERATING CONDITIONS AND ANALYSIS MODES 8
3.5 MULTICYCLE PATH TIMING CONSTRAINTS 8
3.6 ASYNCHRONOUS TIMING CONSTRAINTS 8
3.7 TEST DESIGN 9
3.8 BACK-ANNOTATED BLOCKS 9
3.8.1 Outputs 9
3.8.2 Inputs and Driving Cells 9
3.9 USING REPORT_ETM_ARC TO TROUBLESHOOT MISMATCHES 11
4 Model Scope 12
4.1 BLOCK SCOPE GENERATION 14
4.2 BLOCK SCOPE CHECKING 14
4.2.1 check_block_scope 14
4.2.2 Relative versus Absolute 16
5 Usage flow 17
5.5 BLOCK-LEVEL ANALYSIS 18
5.6 MODEL VALIDATION FOR TEST DESIGN 18
5.7 CHIP-LEVEL ANALYSIS 19
6 Conclusion 20
7 Appendix: prep_for_etm_verification.tcl 21
7.1 FLOW 21
7.2 SCRIPT 21
Table of figures
Figure 1 : ETMs ..............................................................................................................................................2
Figure 2 : Test design with ETM instance.......................................................................................................9
Figure 3 : back-annotated boundary nets.......................................................................................................10
Figure 4 : Clock Waveform in Block Scope Information..............................................................................13
Figure 5 : Block Scope Slack definition .......................................................................................................15
Figure 6 : Absolute Checking for U1/CLOCK1............................................................................................16
Figure 7 : Block Representation ....................................................................................................................16
Figure 8 : Relative Checking for U1/CLOCK1 .............................................................................................17
Figure 9 : Usage Flow: Block level; ..............................................................................................................18
Figure 10 : Usage Flow: Validation step .......................................................................................................19
Figure 11 : Usage Flow: Chip level...............................................................................................................20
1 Introduction
PrimeTime is a full-chip, gate-level static timing and signal integrity analysis tool.
PrimeTime provides hierarchical analysis capabilities by enabling the creation and
usage of timing models to represent the timing characteristics of complex blocks in a
design. Once a block has met its timing constraints at the gate level, the detailed
internal timing of the block is not needed for chip-level timing analysis. A timing
model of the block should completely model the full input/output timing
characteristics without requiring the complete netlist of the block.
Timing models do not model every path in the block. Internal register-to-register
paths are generally discarded, as these paths can be analyzed at the block level using
the complete gate-level netlist. However, using the concept of block scope ensures
that none of theses internal paths are affected by top level constraints. So the
hierarchical analysis with PrimeTime can be sign-off quality.
Version 4.0
Synopsys PROPRIETARY
10/11/06
1
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
timing arcs whose delay is a function of input transitions and output loads, which
makes the ETM usable with different input transition times and different output
loads.
The major advantages of the ETM approach are:
• ETMs enable IP reuse with the content protected because the model contains
abstracted timing information, without any netlist information.
• In addition to PrimeTime, ETMs enables capacity increase for other tools
throughout the design flow such as Design Compiler, Physical Compiler, and
Astro.
1.3 Interface Logic Models (ILMs)
The Interface Logic Models (ILM) is another model type supported by PrimeTime
but is not covered in this application note. An ILM is a partial netlist of the block
that includes the boundary logic, but hides most of the internal register-to-register
logic, for full-chip analysis. Both ETMs and ILMs can be used in a hierarchical static
analysis flow when flat analysis is not possible because of runtime and/or memory
usage. An ILM offers more visibility into the netlist, which can result in easier
verification, but provides less IP protection.
2 Model Extraction
Gate-level static timing analysis (STA) should be performed on the block prior to
model extraction. The ETM model is not only a collection of timing arcs representing
the boundary paths, but also a block "scope" that is a binary representation of the
constraints impacting the internal paths at the time of extraction. The user specifies
these constraints to make a conservative analysis in max and min mode so that the
extracted model is conservative.
There are two kinds of ETMs available: one type is a netlist, and the other type is a
Liberty library cell. Both can be used at the top level. However, given that the main
advantage of ETM versus ILM is the ability to deliver an accurate model to the
customer while hiding the inside, the most frequent usage is extracting a Liberty
library cell. This is what is described in this application note.
U3 U5
IN OUT1
OUT1 U1/A U5/Z
U1 U4 U6
IN U7 U8
OUT2
U2 CLK U2/A OUT2
CLK U6/Z
Version 4.0
Synopsys PROPRIETARY
10/11/06
2
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
A .db file for the library named blockA_lib that contains the reference blockA.
A .lib file that is the source file for the library named blockA_lib.
Version 4.0
Synopsys PROPRIETARY
10/11/06
3
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
The ETM is extracted for the current_mode. Multiple ETMs can be extracted for
different modes and merged into one single timing model using the merge_lib
command.
set extract_model_num_capacitance_points 5
This variable controls the number of loads values defined in the LUT.
set extract_model_num_clock_transition_points 5
This variable controls the number of input transition values defined in the LUT for
clocks.
set extract_model_num_data_transition_points 5
This variable controls the number of input transition values defined in the LUT for
data inputs.
The recommendation for the best trade-off between accuracy performance is to have
the same sizes of the extracted lookup-table as the lookup tables of the initial library.
This is not the default selection. If you do not have access to this information, the
recommended LUT size for good accuracy is 7x7, what means setting:
set extract_model_num_capacitance_points 7
set extract_model_num_data_transition_points 7
Version 4.0
Synopsys PROPRIETARY
10/11/06
4
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
Setting this variable to TRUE may generate a more conservative ETM model but will
provide consistent timing information for the model validation step.
When this variable is set to TRUE, extract_model traverses all clock tree paths,
computes the insertion delay of the paths, and creates clock latency arcs in the model.
The clock latency arcs are intended for physical implementation tools such as Astro
and ICC to compensate and balance clock tree skews at chip level. PrimeTime also
understands these clock latency arcs.
Version 4.0
Synopsys PROPRIETARY
10/11/06
5
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
3 Model Validation
This step is a verification of the ETM generation. A timing picture of the initial
netlist is taken and compared to the ETM timing pictures. You can compare each
path slack or each I/O timing arc delay.
Version 4.0
Synopsys PROPRIETARY
10/11/06
6
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
compare_interface_timing
This command compares timing between the netlist and the test_design containing an
instance of the ETM library cell. A number of command options are available to
specify the criteria and the pass/fail tolerance for comparison. A report is generated
with failing and matching arcs based on the tolerance.
The option -block_scope creates the "scope" for constraints that affect internal path
checking.
The option -test_design is useful for model validation, as it creates a test design
with the newly generated library cell instantiated. The write_interface_timing
command is done on that one design and compared to the initial netlist.
write_interface_timing –timing_type slack … ref_netlist.tim –test
Typically, model validation is performed using slack as this includes the effects of
both the timing constraints and timing arcs.
remove_design –all
set link_path ”* …. <model>_lib.db”
read_db <model>_test.db
Reads the test design generated by extract_model.
link
read_parasitics (-keep_coupling_capacitance ) –format (spef or sbpf)
….
Version 4.0
Synopsys PROPRIETARY
10/11/06
7
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
source <constraint.sdc>
Apply block constraints. Notice, however, that the current_design name is now
<design>_test.
update_timing
report_timing
Version 4.0
Synopsys PROPRIETARY
10/11/06
8
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
ETM instantiation
In1 In1
Out1 Out1
In2 In2 Out2
Out2
In3 In3 Out3
Out3
In4 In4
In4
Clk1 Clk1
Clk2 Clk2
3.8.1 Outputs
For each primary output, the pin delay is computed using the range of external loads
characterized for the driving device. In order to have a successful validation, you can
store the lumped capacitance from the block and back-annotate it on the test design at
the time of the validation. You can find a methodology to automate that process in
the appendix.
Version 4.0
Synopsys PROPRIETARY
10/11/06
9
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
this driving cell drives a net with distributed parasitics (block analysis) and when the
same driving cell drives a lumped capacitance (ETM in test design).
Input
capacitance =
Lumped load
Version 4.0
Synopsys PROPRIETARY
10/11/06
10
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
The effective capacitance values on the driving cells are saved in the attributes
cached_ceff_min/max_rise/fall. These attributes are available to the user.
Please refer to the appendix for an example of a procedure that helps to perform the
two changes mentioned above.
Data path:
Version 4.0
Synopsys PROPRIETARY
10/11/06
11
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
--------------------------------------------------------------------
ETM report:
The situation above is likely to be a slew propagation issue. You should verify that
the following variables are set for model extraction:
set timing_slew_propagation worst_slew
set extract_model_use_conservative_current_slew true
4 Model Scope
At this stage, ETM model validation has been completed successfully and the model
is ready to be used for chip-level timing analysis. Model scope checking verifies that
the ETM is being used within the bounds of the context in which it was generated.
The user must ensure the generated ETM will be used at the chip level with
constraints that are consistent with or more restrictive than the constraints used
during the block netlist analysis.
Given that the internal timing arcs of the model are no longer available, the user
should not change any boundary constraints that could have an impact on the block’s
internal timing paths.
Version 4.0
Synopsys PROPRIETARY
10/11/06
12
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
7.3 7.5
7.2 7.4
7.3 7.5
In this example, the clock range was from 7.3ns to 7.5ns for model extraction. The
constraint on the clock at the chip level is now applied between 7.2ns and 7.5ns. The
ETM analyzed at the chip level meets the setup slack constraint because the setup
slack was large enough. However, the change on the clock timing constraint may
have impact on the internal paths of the block and may cause chip-level timing
failures even though there are no timing violations associated with the ETM. Usage
of the block scope feature flags situations where the ETM is being used outside of
range of the block-level timing constraints. The block scope feature allows you to
safely perform chip-level timing analysis using ETM models.
Version 4.0
Synopsys PROPRIETARY
10/11/06
13
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
The block scope records the constraints that have been used for extraction and that
are impacting internal paths. In a non-crosstalk analysis, only constraints related to a
clock must be checked. In PrimeTime SI crosstalk delay and noise analysis, the data
arrival times must also be checked because the inputs can act as aggressors on
internal nets that are not visible in the ETM for chip-level analysis. These constraints
are checked when the ETM is used in the chip-level analysis.
4.2.1 check_block_scope
Block scope checking is performed when the ETM is used in chip-level timing
analysis. This step ensures that the ETM is used under the same or less restrictive
conditions in which the block was analyzed and extracted.
pt_shell > check_block_scope
Any external signal that can have an impact on internal paths must be checked in the
block scope. For both PrimeTime and PrimeTime SI, clocks must be checked. For
PrimeTime SI, in addition, data input nets must be checked as they can act as
aggressors on internal nets. A list of instances can be passed as an argument of
check_block_scope so that the check is done on all ETM instances.
Version 4.0
Synopsys PROPRIETARY
10/11/06
14
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
U1/CLK2 CLK2 ….
Required
Actual
Slack
Version 4.0
Synopsys PROPRIETARY
10/11/06
15
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
Required arrival :
Scope arrival
1 1.5
Actual arrival
1.2 1.6
Slack: 0.2
Violation: -0.1
Version 4.0
Synopsys PROPRIETARY
10/11/06
16
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
Figure 7 shows that the goal is to check all constraints that would impact internal
paths which are no longer visible in the ETM. Here, only the delay between the clock
edges is of importance. If we ensure that these respective edges delays are kept, the
exact arrival time of the clock edge is not relevant.
Block Scope
1 1.5
Shift: 0.1
Required arrival:
Block Scope shifted
1.1 1.6
Actual arrival
1.2 1.6
Violation: 0
Slack: 0.1
5 Usage flow
The following section summarizes the flows that have been described so far.
Version 4.0
Synopsys PROPRIETARY
10/11/06
17
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
For the block, you carefully define the SDC constraints. For each input, you
define a window on arrival time and a range on input transitions. These bound
values are defined so that the model is conservative.
Read Netlist
Back-annotation
create_clock -name Clock -period … \
[get_ports <clock_pin>
Apply block level set_clock_latency -source … -rise/fall Clock
–early/late –min/max <clock>
constraints set_input_transition -rise –min/max \
<clock_pin>
set_input_transition –fall –min/max … \
STA <clock_pin>
Version 4.0
Synopsys PROPRIETARY
10/11/06
18
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
Back-annotation
STA
compare interface
timing
Version 4.0
Synopsys PROPRIETARY
10/11/06
19
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
6 Conclusion
This application note's intent is to summarize the steps and common pitfalls the user
may encounter when using ETMs. For a bottom up analysis, the user makes an
accurate and conservative analysis of each of the blocks. Then the model is extracted
and the block scope is generated. Model validation is recommended to ensure that the
timing model is equivalent to the original netlist. When instantiating these ETMs at
the top level, the static timing analysis is done with significantly improved runtime
and memory usage. The user can ensure sign-off quality by using the block scope
feature.
Version 4.0
Synopsys PROPRIETARY
10/11/06
20
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
7 Appendix: prep_for_etm_verification.tcl
7.1 Flow
This procedure generates two scripts that must be applied to the netlist and the ETM.
These scripts remove the set_driving_cell constraints, replace them with
set_input_transition for the netlist design, and apply set_annotated_transition for the
test design. The scripts also generate the back-annotation script that can be applied to
the test design to specify the effective net capacitance values from the netlist.
The usage flow is the following:
in the ETM extraction session:
- source prep_for_etm_verification.tcl
- read block netlist
- read parasitics back-annotation file
- apply block constraints
- prep_for_etm_verification.tcl
- netlist_changes_for_etm_verification
- update_timing
- extract_model
- write_interface_timing
In the test-design session:
- read test design
- read parasitics back-annotation file
- apply block constraints
- source etm_changes_for_etm_verification.tcl
- update_timing
- write_interface_timing
7.2 Script
proc prep_for_etm_verification {} {
sh touch etm_changes_for_etm_verification.tcl
Version 4.0
Synopsys PROPRIETARY
10/11/06
21
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
sh touch netlist_changes_for_etm_verification.tcl
sh rm etm_changes_for_etm_verification.tcl
sh rm netlist_changes_for_etm_verification.tcl
sh touch etm_changes_for_etm_verification.tcl
sh touch netlist_changes_for_etm_verification.tcl
Version 4.0
Synopsys PROPRIETARY
10/11/06
22
SYNOPSYS, INC.
700 East Middlefield Road, Mountain View, CA 94043 USA
Version 4.0
Synopsys PROPRIETARY
10/11/06
23