Professional Documents
Culture Documents
BASIC CONCEPTS - I
CADENCE CONFIDENTIAL
STA overview
There are two primary methods of
analyzing or verifying the timing of a
design -
STA02_basic_concepts
CADENCE CONFIDENTIAL
STA overview
Static timing Analysis is a method for determining if a
circuit meets timing constraints without having to
simulate clock cycles.
STA02_basic_concepts
CADENCE CONFIDENTIAL
STA overview
TECHNOLOGY
LIBRARY
Netlist
STA tool
sdf/spef
Report
Slack Report
Clock waveform report
Violation Report
CONSTRAINTS
STA02_basic_concepts
CADENCE CONFIDENTIAL
STA overview
Steps to do Timing Analysis :
read in the Timing libraries, Timing constraints, Netlist, spef/sdf
Specify the operating conditions to specify process, voltage, and
temperature (PVT) values.
Specify the analysis mode you want to use for timing analysis. : single, best-case
worst-case (BC-WC), and on-chip variation
Generate reports : report_timing, report_slack etc
STA02_basic_concepts
CADENCE CONFIDENTIAL
STA02_basic_concepts
CADENCE CONFIDENTIAL
Timing Constraints
Every design has to meet certain Timing requirements.
Designer must specify these requirements by setting the
constraints.
STA02_basic_concepts
CADENCE CONFIDENTIAL
Constraints
create_clock
create_generated_clock
set_propogated_clock
set_clock_uncertainty
set_clock_latency
set_input_delay
set_output_delay
set_max_delay
set_min_delay
set_max_fanout
set_max_capacitance
set_max_transition
8
STA02_basic_concepts
CADENCE CONFIDENTIAL
Constraints
set_drivie
set_driving_cell
set_false_path
set_multicycle_path
set_fanout_load
set_load
set_case_analysis
STA02_basic_concepts
CADENCE CONFIDENTIAL
Clock latency
Source latency
Network Latency
10
STA02_basic_concepts
CADENCE CONFIDENTIAL
Clock latency
Source latency
Source latency is the time a clock signal takes to propagate from
its ideal waveform origin point to clock definition point of design
Specified using the -source option
Honored in both ideal and propagated modes.
Example :
set_clock_latency -source -max -rise 2 {clkA}
11
STA02_basic_concepts
CADENCE CONFIDENTIAL
Clock latency
Network latency :
It is the time a clock signal takes to propagate from clock
definition point to register clock pin
FF
Clk
STA02_basic_concepts
CADENCE CONFIDENTIAL
Clock uncertainty
Clock uncertainty is the difference between the arrival of clock
at registers in one clock domain or between domains
IN1
D
CK1
OUT1
CK2
CK
CK1
CK2
Skew
13
STA02_basic_concepts
CADENCE CONFIDENTIAL
Clock uncertainty
Uncertainty value will be subtracted from data required time when
doing setup analysis
This will be add to data required time when doing hold analysis
Example :
set_clock_uncertainty
clk1
2.0
14
STA02_basic_concepts
CADENCE CONFIDENTIAL
set_input_delay
It is the arrival times relative to a clock edge on input
ports or internal input pins.
T
ck
D Q
L1
ck
clk
In1
L2
D Q
C
In1
Input delay
input delay
clock period
Example
set_input_delay -clock ck 1.0 [all_inputs]
15
STA02_basic_concepts
CADENCE CONFIDENTIAL
Example
D Q
L1
clk
clk
input delay
clock period
clock period = 4
L1 = 0.8
L2 = 3.0
setup =0.3
16
In1
STA02_basic_concepts
L2
D Q
C
Without set_input_delay :
tool will analyse as :
Required time = 4- 0.3 = 3.7
Arrival time = input_delay + L2 = 0 + 3.0 =3.0
Slack = 3.7 3.0 = 0.7 (met)
But Actually what happened :
Required time = 4 0.3 = 3.7
Arrival time = L1 + L2 =0.8 + 3.0 = 3.8
Slack = 3.7 -3.8 = -0.1 (violated)
CADENCE CONFIDENTIAL
set_output_delay
It is the data required time at the output port
D Q
L4
out1
L5
D Q
C
clk
out1
output delay
ck
output delay
clock period
Example
set_output_delay 2.5 -clock ck { out1 }
17
STA02_basic_concepts
CADENCE CONFIDENTIAL
Set_false_path
False path is a timing path that cannot propogate a signal.
c
d
0
1
s
U2
0
U4
y
a+c
False Path
+
U3
U5
y
b+d
18
STA02_basic_concepts
CADENCE CONFIDENTIAL
set_multicycle_path
ff1
D
CL
C
clk
clk
Clock Period
19
STA02_basic_concepts
Time allowed
CADENCE CONFIDENTIAL
L1
ck
clk
In0
L2
D Q
L3
L4
out1
L5
input delay
clock period
D Q
D Q
C
output delay
clock period
clock period
20
STA02_basic_concepts
CADENCE CONFIDENTIAL
0.037
0.0
0.037
ff1
0.0
0.0
0.056
clk1
STA02_basic_concepts
CADENCE CONFIDENTIAL
22
STA02_basic_concepts
CADENCE CONFIDENTIAL
0.033
0.033
0.0
0.033
0.0
0.020 0.050
thold = 0.15
0.0
D
ff1
clk1
From Library
STA02_basic_concepts
CADENCE CONFIDENTIAL
24
STA02_basic_concepts
CADENCE CONFIDENTIAL
path 1
FF1
D
FF2
Q
5/3
5/3
5/3
5/3
D
CK
5/3
path2
5/3
CK
CLK
Path 1 is late path
Path 2 is early path
25
STA02_basic_concepts
CADENCE CONFIDENTIAL
FF2
Q
CK
CLK
26
STA02_basic_concepts
CK
For setup :
Lunch clock
Data path
Capture clock
: late path
: late pat
: early path
For Hold :
Lunch clock
Data path
Capture clock
: early path
: early path
: late path
CADENCE CONFIDENTIAL
STA02_basic_concepts
CADENCE CONFIDENTIAL
FF2
Q
CK
CLK
28
STA02_basic_concepts
CK
For setup :
Lunch clock
Data path
Capture clock
For Hold :
Lunch clock
Data path
Capture clock
Example (BC-WC)
Example:
FF1
D
0.6 / 0.4
CLK
Q
2.5 /2
CK
0.7 / 0.5
FF2
3.5 / 3
CK
0.5 / 0.3
clock period = 4
Launch clock late path delay (max) = 0.7 + 0.6 = 1.3
Data late path delay (max) = 3.5
Capture clock early path delay (max) = 0.7 + 0.5 = 1.2
Setup = 0.2
Data arrival time = 1.3 + 3.5 = 4.8
Data required time = 4 + 1.2 - 0.2 = 5.0
Slack =5 - 4.8 = 0.2 (met)
29
STA02_basic_concepts
CADENCE CONFIDENTIAL
set_analysis_mode -bcWc
report_timing -late
report_timing -early
30
STA02_basic_concepts
CADENCE CONFIDENTIAL
31
STA02_basic_concepts
CADENCE CONFIDENTIAL
CLK
0.7 / 0.5
FF2
3.5 / 3
D
Q
2.5 /2
CK
CK
0.5 / 0.3
For setup :
Lunch clock path : late path delay from max lib
Data Path
: late path delay from max lib
Capture Clock path : early path from min lib
For Hold Analysis:
Lunch clock path
: early path from min lib
Data Path
: early path from min lib
Capture Clock path : late path from max lib
32
STA02_basic_concepts
CADENCE CONFIDENTIAL
Example (OCV)
FF1
D
0.6 / 0.4
CLK
0.7 / 0.5
FF2
3.5 / 3
D
Q
2.5 /2
CK
CK
0.5 / 0.3
clock period = 4
Launch clock late path delay (max) = 0.7 + 0.6 = 1.3
Data late path delay (max) = 3.5
Capture clock early path delay (min) = 0.5 + 0.3 = 0.8
Flipflop Setup = 0.2
Data arrival time = 1.3 + 3.5 = 4.8
Data required time = 4 + 0.8 - 0.2 = 4.6
Slack = 4.6- 4.8 = -0.2 (violated)
33
STA02_basic_concepts
CADENCE CONFIDENTIAL
set_analysis_mode -onChipVariation
report_timing -late
report_timing -early
34
STA02_basic_concepts
CADENCE CONFIDENTIAL
35
STA02_basic_concepts
CADENCE CONFIDENTIAL
CLK
0.7 / 0.5
FF2
3.5 / 3
D
Q
2.5 /2
CK
CK
0.5 / 0.3
Example :
set_analysis_mode onChipVariation -crpr
36
STA02_basic_concepts
CADENCE CONFIDENTIAL
Example (CRPR)
FF1
D
0.6 / 0.4
CLK
Q
2.5 /2
CK
0.7 / 0.5
FF2
3.5 / 3
CK
0.5 / 0.3
clock period = 4
Launch clock late path delay (max) = 0.7 + 0.6 = 1.3
Data late path delay (max) = 3.5
Capture clock early path delay (min) = 0.5 + 0.3 = 0.8
Flipflop Setup = 0.2
Data arrival time = 1.3 + 3.5 = 4.8
Data required time = 4 + 0.8 - 0.2 + 0.2 = 4.8
Slack = 4.8 - 4.8 = 0 (met)
37
STA02_basic_concepts
CADENCE CONFIDENTIAL
38
STA02_basic_concepts
CADENCE CONFIDENTIAL
39
STA02_basic_concepts
CADENCE CONFIDENTIAL
40
STA02_basic_concepts
CADENCE CONFIDENTIAL
Summary
STA overviewSTA flow with example script
Timing Constraints
clock latency
clock uncertainty
input/output delay
false path
multicycle path
Timing analysis modes
Single
BC-WC
OCV
CRPR
41
STA02_basic_concepts
CADENCE CONFIDENTIAL
Few Guidelines
42
STA02_basic_concepts
CADENCE CONFIDENTIAL
THANKS
43
STA02_basic_concepts
CADENCE CONFIDENTIAL