Dynamic Timing Analysis Static Timing Analysis
Dynamic Timing Analysis Static Timing Analysis
STA is basically method of adding the net delays and cell delays to obtain
path delays.
then STA tool analyzes all paths from each and every start point to each and
every end point and compares it against the constraint(timing specification)
that exists for that path.
Timing Report
The above timing report is divided in 4 parts as
Header
it consist of start point(FF1) and end point(FF2)
path group which tells for which timing path group it belogs.
Path type : here it is max which states setup and if it was min then it is
hold.
Slack
timing difference between required and arrival time i.e (RT-AT)
Typical symbols which can be seen in PrimeTime report :
“&” after an incremental delay number shows that the delay number is
calculated with Resistor-Capacitor (RC) network back-annotation.
“*” for Standard Delay Format (SDF) back-annotation
“+” for lumped RC
“H” for hybrid annotation
“r” in the path column for the rising edge of the signal
“f” in the path column for the falling edge of the signal
Most timing reports use ns for the time unit. However, you can use the
PrimeTime commandreport_unitsto report all theunits, such as
capacitance, resistance, time, and voltage units used by the design.
Intrinsic delay
Internal to the Cell from Input pin to Output pin caused by internal
capacitance
Propagation Delay
Delay by a cell for a change of input signal to result a change at output
signal as a function of Input Slew and Output load
Propagation Delay can be Low to High (tPLH) and High to Low (tPHL)
Maximum Propagation Delay (Clock to Q) is considered for Setup check
Contamination Delay
Net Delay
Total time for charging/discharging all the parasitic present in the given net
Through pin
To make a Clock pin of a flop not a CTS Leaf pin
Preserved Pin
If we need to preserve a pin w.r.t. location etc.
Timing Unate
positive unate if a rising transition on an input causes the output to rise (or
not to change) and a falling transition on an input causes the output to fall (or
not to change). For example, the timing arcs for AND and OR type cells are
positive unate. See Figure(a)
Timing Paths
A Timing Path is a point-to-point path in a design which can propagate data
from one flip-flop to another
Each path has a start point and an end point
Start point: Input ports or Clock pins of flip-flops
Endpoints: Output ports or Data input pins of flip-flops
Timing Path Groups
Timing paths are grouped into path groups by the clocks controlling
their endpoints
Clock Uncertainty
Clock Uncertainty is the time difference between the arrivals of clock
signals at registers in one clock domain or between domains
Uncertainties include Clock Skew, Clock Jitter and Clock Margin
Clock Skew refers to the absolute time difference in clock signal arrival
between two points in the clock network
TLAUNCH_CLOCK - TCAPTURE_CLOCK = TSKEW
Positive Skew occurs when the Capture Clock is late w.r.t. Launch
Clock
Negative Skew occurs when the Capture Clock is early w.r.t. Launch
Clock
Local Skew is the Skew between the clock phase delays of two flip-
flops which are the Source and Target flop of a path (Source and
Destination flop)
Global Skew is the difference between the longest and shortest branch
of a Clock Tree (Maximum Insertion Delay – Minimum Insertion Delay)
Clock Jitter
Jitter is the short-term variations of a signal with respect to its ideal
position in time
The two major components of Jitter are random Jitter and deterministic
Jitter
Factors causing Jitter includes imperfections in Clock oscillator, supply
voltage variations, Temperature variations, Crosstalk
Glitch
Unexpected switching of any waveform
Due to late arrival time of Gate and it is for a short period of time
Cause extra delay and also it can cause extra power from false
transitions
Pulse Width
Pulse Width is the time between the active and inactive states of the
same signal
Minimum high pulse width is the amount of time after the rising edge of
a clock, that the clock signal of a clocked device must remain stable
Minimum low pulse width is the amount of time after the falling edge of
a clock, that the clock signal of a clocked device must remain stable
Duty Cycle
Percentage of clock period having high pulse
Typically clock waveforms are of 50% Duty Cycle
Transition/ Slew
Time taken by a signal to change the state (Volts/Second)
Rise Slew (tR) is called Rise Time and Fall Slew (tF) is called Fall Time
Minimum/ Maximum Transition is the Minimum/ Maximum slope
allowed at leaf pins
Transition affects Power Dissipation, Latency and Pulse width
Asynchronous Path
A path from an input port to an asynchronous set or clear pin of a
sequential element
Critical Path
The path which creates longest delay
Also called worst path/ late path/ max. path
Timing sensitive functional paths no additional gates are allowed to be
added to the path
Shortest Path
One that takes the shortest time; this is also called the best path or
early path or a min path
Launch Path
Launch path is launch clock path which is responsible for launching the
data at launch flip flop
Capture Path
Capture path is capture clock path which is responsible for capturing
the data at capture flip flop
Arrival Time
Launch path and data path together constitute arrival time of data at the
input of capture flip-flop
Required Time
Capture clock period and its path delay together constitute required
time of data at the input of capture register
timing analysis
Slack
Difference between Required Time (RT) and Arrival Time (AT)
Positive Slack at a node implies that the arrival time at that node may
be increased without affecting the overall delay of the circuit
Negative Slack implies that a path is too slow, and the path must speed
up if the whole circuit is to work at the desired speed
Setup Time
Setup time is the minimum amount of time the data signal should be held
steady before the clock event so that the data are reliably sampled by the
clock
TLAUNCH_CLOCK + TCLK-Q_MAX + TCOMB_MAX ≤
TCAPTURE_CLOCK - TSETUP
Hold Time
Hold time is the minimum amount of time the data signal should be held
steady after the clock event so that the data are reliably sampled
TLAUNCH CLOCK + TCLK-Q_MIN + TCOMBO_MIN ≥
TCAPTURE CLOCK + THOLD
Setup Time and Hold Time Violations
If Setup time, T SETUP for a flip-flop and if the data is not stable before
TSETUP from the active edge of clock, then there is a Setup Violation at
that flip-flop
If hold time, THOLD for a flip flop and if the data is not stable after THOLD
time from the active edge of clock, then there is a hold violation at that
flip-flop
For a single cycle circuit the signal has to propagate through Data path
in one clock cycle
Recovery Time
Recovery time is the minimum time that an asynchronous control input
pin must be stable after being de-asserted and before the next clock
transition (active edge)
Removal Time
Removal time is the minimum time that an asynchronous control input
pin must be stable before being de-asserted and before the previous
clock transition (active edge)
Multi-Cycle Path
Timing path that is designed to take more than one clock cycle for the
data to propagate from the start point to the endpoint
Start point and endpoint are flops clocked by the same clock
Need to specify the Launch edge and Capturing edge in SDC
Multi-VT Cells
Different threshold voltages are achieved by implanting dopants in
different concentration
Need Multi-VT Library
Sub-threshold leakage varies exponentially with VT compared to the
weaker dependency of delay over VT
If the optimization target is power performance, first use the HVT cells
library and then try LVT cells
If the optimization target is to meet timing then first use LVT cells and
then HVT cells
If you swap the capture flop from SVT to LVT or HVT, there will be very
minimal setup/hold impact in most flops, it is of zero impact for hold
If you swap the launch flop from SVT to LVT or HVT, Setup will be
improve and hold will be impacted correspondingly
High Voltage Threshold (HVT )
Use in non-timing critical paths
Use in power critical paths
Has low leakage and low speed
Time Borrowing
Time Borrowing is basically for Latched based Timing Analysis
Edge-triggered flip-flops change states at the clock edges, whereas
latches change states as long as the clock pin is enabled
In latch based design longer combinational path can be compensated
by shorter path delays in the subsequent logic stages
The technique of Borrowing Time from the shorter paths of the
subsequent logic stages to the longer path is called Time Borrowing or
Cycle Stealing
Time Borrowing typically only affects setup slack calculation since time
borrowing slows data arrival times
When the clocks of the Launching and Capturing Latches are out of
phase, time borrowing is not to happen
Timing borrowing can be multistage
Maximum Borrow Time: Clock Pulse Width minus the library Setup
Time of the Latch
Negative Borrow Time: Arrival Time minus the clock edge is a negative
number, the amount of time borrowing is negative (no borrowing)