STA Prime Time
STA Prime Time
● Static verification:
- Is exhaustive
report_clock Clocks
report_annotated_delay
report_annotated_check Complete SDF
● Case Analysis
● Derived Clocks
● Netlist Editing
● Report_clock_timing
● Clock Reconvergence
Pessimism
PrimeTime offers the following timing models to address STA needs for IP, large
hierarchical designs, and custom design:
● Provide means to quickly and easily create a timing model of an unfinished block for
performing timing analysis
● Can contain:
1. Port specs for the block
2. Setup and hold constraints for inputs
3. Clock-to-output delays
4. Input-to-output delays
● Benefits
1. accurate specs generated with a lot less effort
2. apply chip level timing constraints and time the whole design
3. discover violators up front
Quick Timing Models - What are they?
● Using ILMs and ETMs to address capacity and timing issues in multi- million
gate design
Does Your Design Meet Timing?
pt_shell> report_analysis_coverage
Are You Finished?
● Tables are indexed by input transition and total output load for each gate
Net Delay Calculation
● Net delay is the “time-of-flight” due to the net’s RC
● Output transition of a cell becomes the input transition of the next cell
down the chain
What About Pre and Post Layout STA?
Pre or Post Layout Timing Report
What About Negedge Triggered Registers?
What About Multi-Frequency Clocks?
What About Interface Paths: Input Ports?
What About Interface Paths: Output Ports?
Interface Paths in a Timing Report: Output
Other Timing Checks Verified by STA
Introduction to Digital VLSI Design
STA Part 2
What
● Spice accurate
- Distributed RC
Delay Calculation Analysis Corners
● Gate or Transistor
- P – Process (Slow, Typical, Fast)
- V – Supply Voltage
- T – Temperature
● Interconnect
- P – Process (Wide, Narrow, Tall, Short, K)
- T - Temperature
Delay Calculation Thresholds
Delay Calculation
Constraint Checking Introduction
Constraint Checking Constraint Types
● Boundary Settings
- Input transition time
- Output loading
- Logic settings
● Synchronous Designs
● Properties
- Period
- Waveform
- Rise/Fall Transition Time
- Skew or Uncertainty
● Generated Clocks
- Derived from a master
- Synchronous by definition
- Definite edge relationship
Virtual Clocks
● Virtual Clocks are used as a reference to module for input and output delays
● Properties
- Period
- Waveform
Input Arrival Time
Output Required Time
Global Constraints
● Setup
● Hold
● Recovery
● Removal
● Clock Gating
● Data-to-Data
Timing Checks Setup Time and Hold Time
Timing Checks Setup Check
Data Launched by Launch Edge of FF1 Captured by Intended Capture Edge of FF2
Data launched by launch edge of FF1 should arrive at the data input of FF2 latest by
“Capture Edge Time – Setup Time of FF2”
Timing Checks Hold Check
Data launched by Launch Edge of FF1 should not be captured by an edge preceding
the intended Capture Edge of FF2, OR
Data launched by edge following Launch Edge of FF1 should not be captured by the
intended Capture Edge of FF2
Data should reach the data input of FF2 no earlier than the hold time of FF2
Timing Checks Recovery and Removal
Timing Checks Min Pulse Width
● Minimum High pulse width: 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: The amount of time, after the falling edge of a clock, that the
clock signal of a clocked device must remain stable.
Timing Checks Glitch Detection
Timing Checks Clock Gating Checks
Clock getting Checks
● Setup and hold checks are performed for the gating signal to ensure glitch-free clock.
● The clock-gating relationship depends on the functionally of the gate which is gating the
clock
Timing Checks Data-to-Data Checks
Why Data to Data Checks are required
Multicycle Paths
- Non-default cycle operation
Logic Setting
- Pins or nets that are tied to 1/0 for a particular timing mode
Disable Timing
- Timing Arcs that are disabled
Advanced Topics
● Timing Models
- Extracted Timing Models
- Interface Logic Models
- Quick Timing Models
Process
Slow
Typical
Fast
Voltage
0.9V
1.0V
1.1V
Temperature
-20C
27C
105C
Introduction to Digital VLSI Design
STA Part 3
Overview
● In this era of high performance electronics, timing continues to be a top priority
and designers are spending increased effort addressing IC performance.
● First, a design is analyzed, then all possible paths are timed and checked against
the requirements.
● Since STA is not based on functional vectors, it is typically very fast and can
accommodate very large designs (multimillion gate designs).
● STA is exhaustive in that every path in the design is checked for timing violations.
● STA does not verify the functionality of a design. Also, certain design styles are not
well suited for static approach. For instance, dynamic simulation may be required
for asynchronous parts of a design and certainly for any mixed-signal portions.
Static Timing Analysis (STA)
● STA consists of three major steps:
- Break down the design into timing paths (R-R, PI-R,PI-PO & R-PO).
- Delay of each path is calculated
- All path delays are checked against timing constraints to see if it is met.
● STA advantage
- Speed (orders of magnitude faster than dynamic simulation)
- Capacity to handling full chip
- Exhaustive timing coverage
- Vectors are not required
● STA disadvantage
- It is pessimistic (too conservative)
- Reports false paths
● Flow Inputs:
- Gate-level Verilog.
- Constraints (SDC)
- Extracted nets (SPEF)
- Libraries (liberty format - .lib)
Timing Closure
● Timing Closure is the ability to detect and fix timing problems in the design flow as
early as possible.
● In case of failure - which means that the timing goals have not been achieved -
modification of timing constraints must be done through well defined loops, re-
synthesis and in worst case re-design.
Cell Timing Characterization
● Delay tables
- Generated using a detailed transistor-level circuit simulator SPICE
(differential-equations solver)
- Simulate the circuit of the cell for a number of different input slews and load
capacitances
Propagation time (50% Vdd at input to 50% at output)
Output slew (10% Vdd at output to 90% Vdd at output)
NLDM
● Cell Delay (Non-linear) = f (CL, Sin) and Sout = f (CL, Sin)
- Interpolate between table entries
- Interpolation error is usually below 10% of SPICE
Delay Calculation
Timing Path Definition
● STA tool does not report delays by net or by cell. Instead it reports by timing
paths with constraint.
- Slew propagation – Ideally, the slew propagation should be timing path specific. However,
the STA does not do this. It uses either “worst_slew” or “worst_arrival”.
- “worst_slew” – refers to using the slowest transition for signals arriving at a multi-input cell
output (fastest transition for min delay mode).
This is CTE default pessimistic behavior
- “worst_arrival” – refers to using the input signal that arrives the latest (using the earliest for
min delay mode).
Analysis Modes
● Semiconductor device parameters can vary with conditions such as fabrication
process, operating temperature, and power supply voltage.
- Single operating condition – single set of delay parameters is used for the whole circuit,
based on one set of process, temperature, and voltage conditions.
- Min-Max (BC-WC) operating condition – simultaneously checks the circuit for the two
extreme operating conditions, minimum and maximum. For setup checks, it uses maximum
delays for all paths. For hold checks, it uses minimum delays.
- On-chip-variation mode - conservative analysis that allows both minimum and maximum
delays to apply to different paths at the same time. For a setup check, it uses maximum
delays for the launch clock path and data path, and minimum delays for the capture clock
path. For a hold check, it uses minimum delays for the launch clock path and data path, and
maximum delays for the capture clock path.
Single Operating Condition
● Single set of delay parameters for the whole circuit, based on one set of process,
temperature, and voltage conditions.
Best case/Worst case Analysis
● Simultaneous checks of extreme operating conditions, minimum and maximum.
● For a setup check, it uses maximum delays for the launch clock path and data
path, and minimum delays for the capture clock path.
● For a hold check, it uses minimum delays for the launch clock path and data path,
and maximum delays for the capture clock path.
Derating
● Minimum and Maximum delays can be adjust by specified factors to model the
effects of operating conditions. This adjustment of calculated delays is called
derating.
● When launching and capturing clock share common path, the common path min
delay and max delay will add additional pessimism to both setup and hold
analysis.
- CRPR can be used to remove this pessimism.
- False Path- Use the set_false_path command to specify a logic path that exists in the
design but should not be analyzed. Setting a false path removes the timing constraints on
the path.
- Multiple Cycle Path - Use the set_multicycle_path command to specify the number of
clock cycles required to propagate data from the start to the end of the path.
- Min/Max Delay - Use the set_max_delay and set_min_delay commands t override the
default setup and hold constraints with specific maximum and minimum time values.
Setup/Hold Analysis (in the absence of timing exceptions)
- Setup check - verifies that the data launched from FF1 at time=0 arrives at the D input of
FF2 in time for the capture edge at time=10. If the data takes too long to arrive, it is
reported as a setup violation.
- Hold check - verifies that the data launched from FF1 at time 0 does not get propagated so
soon that it gets captured at FF2 at the clock edge at time 0. If the data arrives too soon, it
is reported as a hold violation.
Multiple Cycle Setup
● If data is launched every 3 cycles, then setup is checked against the third rising
edge (9.75) and hold is checked against next rising edge (which is CLKg1 at 6.50).
● STA tool verifies that the data launched by the setup launch edge is not captured
by the previous capture edge. So the default hold check for multi-cycle setup is
capture edge minus one.
Multiple Cycle Hold
● The number after the -hold option specifies the number of cycles to move the hold
check backward from the default position implied by the setup check.
A positive number moves the check backward by the specified number of cycles.
Specifying zero does not change the hold check time.
Recovery/Removal check
● Timing checks which are related to asynchronous input pin of a flip flop.
● Although a flip-flop is asynchronously set or clear , the negation from its reset
state is synchronous .
● A recovery timing check specifies a minimum amount of time allowed between the
release of a asynchronous signal from the active state to the next active clock
edge .
● A removal timing check specifies the minimum amount of time between an active
edge and the release of an asynchronous control signal.
Case Analysis
● Case analysis allows timing analysis to be performed using logic constants or logic
transitions (rising or falling) on ports or pins, to limit the signal propagated
through the design.
● Case analysis is a path-pruning mechanism and is most commonly used for timing
the device in a given operational configuration or functional mode. For example,
case analysis can be used to compare normal circuit operation against scan or
BIST operation.
Timing Models
● Timing extraction plays an important role in hierarchical top-down flow and
bottom-up IP authoring flow by reducing the complexity of timing verification and
by providing a level of abstraction which hides the implementation details of IP
blocks.
● Three most desired features in timing extraction are accuracy, efficiency, and
usability. The model must preserve the timing behavior of the original circuit and
produce accurate results.
● Inputs
- Constraints (SDC)
- Configuration file
- Header file
● Interface logic contains all circuitry leading from I/O ports to edge- triggered
registers called interface registers. The clock tree leading to interface registers is
preserved in an ILM. Logic that is only contained in register-to-register paths on a
block is notin an ILM.
ETM
● Extracted timing models differ from
ILMs in that the interface logic for a
block is replaced by context-
independent timing relationships
between pins on a library cel