Sta Notes
Sta Notes
timing
analysis
Static Timing Analysis
Difference between Dynamic Timing Analysis and Static Timing Analysis
Effective methodology for verifying the timing characteristics of a design without the
use of test vectors
Static Timing Analysis can be done only for Register-Transfer-Logic (RTL) designs
Functionality of the design must be cleared before the design is subjected to STA
STA approach typically takes a fraction of the time it takes to run a logic simulation
STA is a 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 endpoint and
compares it against the constraint(timing specification) that exists for that path
Purpose of Static Timing Analysis
First, STA calculates the path delays for optimization tools. then based on the path
delays, the optimization tool chooses cells from the timing library to create a circuit
that meets your timing requirement.
Second, STA analyzes the timing of a circuit to verify that the circuit works at the
specified frequency.
Timing Report
The above timing report is divided into 4 parts as the Header
consists of a start point(FF1) and an end point(FF2)
path group which tells for which timing path group it belongs.
Path type: here it is max which states setup and if it was min then it is hold.
Slack
the timing difference between required and arrival time i.e. (RT-AT)
Most timing reports use ns for the time unit. However, you can use the
PrimeTimecommandreport_unitsto report all the units, such as capacitance, resistance,
time, and voltage units used by the design.
Data passes through Latch when the clock is high, latched when the clock is low
Intrinsic delay
Internal to the Cell from the Input pin to the Output pin caused by internal capacitance
propagation
Delay
Delay by a cell for a change of input signal to result a change in 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 the Setup check
Contamination Delay
Best case delay from valid input to output
Minimum Propagation Delay (Clock to Q) which is called Contamination Delay is
considered for Hold check
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..
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)
A negative unate timing arc is one where a rising transition on an input causes the output
to have a falling transition (or not to change) and a falling transition on an input causes
the output to have a rising transition (or not to change). For example, the timing arcs for
NAND and NOR-type cells are negative unate.See Figure(b)
In a non-unate timing arc, the output transition cannot be determined solely from the
direction of change of an input but also depends upon the state of the other inputs. For
example, the timing arcs in an XOR cell (exclusive-or)are non-unate. See Figure(c).
Unateness is important for timing as it specifies how the edges (transitions)can propagate
through a cell and how they appear at the output of the cell.
One can take advantage of the non-unateness property of a timing arc, such as when an
xor cell is used, to invert the polarity of a clock. See the example below(figure). If
inputPOLCTRL is a logic-0, the clock DDRCLK on output of the cell UXOR0 has the same
polarity as the input clock MEMCLK. If POLCTRL is a logic-1, the clock on the output of
the cell UXOR0 has the opposite polarity as the input clock MEMCLK.
Synchronous Clocks
2 clocks are synchronous w.r.t. each other
Timing paths launched by one clock and captured by another
Asynchronous Clocks
2 clocks are asynchronous w.r.t. each other
If no timing relation, STA can’t be applied, so the tool won't check the timing
Mutually-Exclusive Clocks
Only one clock can be active at the circuit at any given time
Generated Clocks
Clock generated from a clock source as a multiple of the source clock frequency
The frequency can be a multiple or can be divided by the source clock
Virtual Clocks
Exists but not associated with any pin or port of the design
Used as a reference in STA to specify Input Delays and Output Loads relative
to a clock (Needed to fix the Input2Reg and Reg2Output Violations)
By defining a Virtual Clock IO Constraints can be defined relative to this Virtual Clock with
no specification of the source port or pin
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 endpoint
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
Register to Register
Start at a sequential device
CLK-to-Q transition delay + the combinational logic delay + external delay requirements
Clock Latency
Total time taken by the clock signal to reach the input of the register
Source latency is the time between clock sources to clock definition ports
Network latency is the time between clock definition ports to clock leaf cells in the design
Insertion Delay (ID)
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
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 ClockTree
(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
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
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
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
Half Cycle Path
Timing path that is designed to take half clock cycle (both of the clock edges) for the
data to propagate from the start point to the endpoint
Start point and endpoint are flops clocked by the same clock
No need to specify the Launch edge and Capturing edge in SDC, since the tool can
identify it from the netlist
False Path
Physically exist in the design but are Logically/ Functionally inactive/incorrect path
Means no data is transferred from Start Point to End Point
The goal in STA is to do timing analysis on all “true” timing paths, so these paths are
excluded from timing analysis
Similarly timing can be disabled for a pin or port or cell where the delay will be
computed but won’t report it
Bottleneck Analysis
Lists the cells causing the timing violations on multiple paths
By identifying and fixing the violation caused by a Bottleneck Cell improved timing can
be achieved
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
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)
Time Borrowing: Scenarios
Scenario 1: When data is launching from a positive edge triggered flip flop and capture
is to a negative level sensitive latch
Scenario 2: When a launch is from a negative level sensitive latch and capture is to a
positive edge triggered flip flop
Scenario 3: When launch and capture are from positive level-sensitive latches
STA Numericals
Refer to setup and hold page to view STA basics and some more solved problems.
Problem 1:
a. If there is no clock skew, what is the maximum operating frequency of this circuit?
b. How much clock skew can the circuit tolerate before it might experience a hold time
violation?
c. Redesign the circuit so that it can be operated at 3GHz frequency. How much clock
skew can your circuit tolerate before it might experience a hold time violation?
Solution
1/6
a.
Tc ≥ Tpcq + Tpd + Tsetup
Longest path:
Tc ≥ Tpcq + 3*Tpd + Tsetup
Tc ≥ 70 + 3*100 + 60 = 430 ps
Max Frequency = 1/Tc = 2.33
GHz
b.
Tccq + Tcd≥Thold + Tskew
Shortest Path:
Tccq + Tcd ≥ Thold + Tskew
50 + 55 ≥ 20 + Tskew
Tskew ≤ 85 ps
c.
Tc ≥ Tpcq + 2*Tpd + Tsetup +
Tskew
Tc ≥ 330 + Tskew
Tccq + 2Tcd ≥ Thold + Tskew
Tskew≤ 140 ps
Problem 2:
Solution
Before starting timing analysis, consider the flow of data in this circuit in response to a
rising clock edge, starting at flip-flop A.
1. Following the rising clock edge on Clk, a valid output appears on signal X after tClk−Q
= 10 ns.
2/6
2. A valid output Y appears at the output of inverter F, tpd = 5 ns after a valid X arrives at
the gate. 3. Signal Y is clocked into flip-flop B on the next rising clock edge. This signal
must arrive at least ts = 2ns before the rising clock edge.
Problem 3:
Q. Determining the Max. Clock Frequency the Sequential circuit shown below.
In a typical sequential circuit design there are often millions of flip-flop to flip-flop paths
that need to be considered in calculating the maximum clock frequency. This frequency
must be determined by locating the longest path among all the flip-flop paths in the circuit.
For example, consider the circuit shown in above. there are three flip-flop to flip-flop paths
(flop A to flop B, flop A to flop C, flop B to flop C),the delay along all three paths are:
TAB = tClk−Q(A) + ts(B) = 9 ns + 2 ns = 11 ns
TAC = tClk−Q(A) + tpd(Z) + ts(C) = 9 ns + 4 ns + 2 ns = 15 ns
TBC = tClk−Q(B) + tpd(Z) + ts(C) = 10 ns + 4 ns + 2 ns = 16 ns
Since the TBC is the largest of the path delays, the minimum clock period for the circuit is
Tmin = 16 ns and the maximum clock frequency is 1/Tmin = 62.5 MHz.
3/6
Problem 4:
Solution
a.
Period > (FF propagation delay) + (max combination circuit delay) + (FF Setup
time) + (max clock skew)
Period > 35 + (60+20) + 30 +0 ps
Period > 145 ps
F < 1/(145 ps)
F < 6.8965 GHz.
b.
c.
For hold time violation to NOT occur.
Hold time <= (FF contamination delay) + (min combinational circuit delay) -
4/6
(max clock skew)
So hold time will get violated when
Max clock skew > (FF contamination delay) + (min combinational circuit delay)
– (Hold Time)
Max clock skew > 20 + (20+10) – 10
Max clock skew > 40 ps
Problem 5:
Solution
a. Setup Slack
ATmax = 2 + 11 + 2 + 9 + 2 + 3 = 29ns
RTmin = 2+ 5 + 2 + 15(here 15ns is the time perid) = 24ns
5/6
b. Hold Slack
6/6