Statistical static timing analysis
static timing analysis(STA) has been a stock analysis algorithm for the design of digital circuits over the last 30 years. However, in recent years the increased variation in semiconductor devices and interconnect has introduced a number of issues that cannot be handled by traditional (deterministic) STA. This has led to considerable research into statistical static timing analysis, which replaces the normal deterministic timing of gates and interconnects with probability distributions, and gives a distribution of possible circuit outcomes rather than a single outcome.
Why STA is popular
Old fashioned deterministic STA is popular for good reasons:
*It requires no vectors, so it does not miss paths.
*The run time is linear in circuit size (for the basic algorithm).
*The result is conservative.
*It typically uses some fairly simple libraries (typically delay and output slope as a function of input slope and output load).
*It is easy to extend to incremental operation for use in optimization.
Limits of conventional STA
STA, while very successful, has a number of limitations:
*Cannot easily handle within-die correlation, especially if spatial correlation is included.
*Needs many "corners" to handle all possible cases.
*If there are significant random variations, then in order to be conservative at all times, it is too pessimistic to result in competitive products.
*Changes to address various correlation problems, such as CPPR (Common Path Pessimism Removal) make the basic algorithm slower than linear time, or non-incremental, or both.
SSTA attacks these limitations more or less directly. First, SSTA uses sensitivities to find correlations among delays. Then it uses these correlations when computing how to add statistical distributions of delays.
Interestingly, there is no technical reason why determistic STA could not be enhanced to handle correlation and sensitivities, by keeping a vector of senstivities with each value as SSTA does. Historically, this seemed like a big burden to add to STA, whereas it was clear it was needed for SSTA, so no-one complained. See some of the criticism of SSTA below where this alternative is proposed.
Methods of SSTA
There are two main categories of SSTA algorithms - path-based and block-based methods.
A path-based algorithm [Orshansky, M.; Keutzer, K., 2002, doi-inline|10.1109/DAC.2002.1012687|A general probabilistic framework for worst case timing analysis, Design Automation Conference, 2002. Proceedings. 39th, Vol., Iss., 2002, Pages: 556–561.] sums gate and wire delays on specific paths. The statistical calculation is simple, but the paths of interest must be identified prior to running the analysis. There is the potential that some other paths may be relevant but not analyzed so path selection is important.
A block-based algorithm [Visweswariah, C.; Ravindran, K.; Kalafala, K.; Walker, S.G.; Narayan, S.; Beece, D.K.; Piaget, J.; Venkateswaran, N.; Hemmett, J.G., 2006, doi-inline|10.1109/TCAD.2005.862751|First-Order Incremental Block-Based Statistical Timing Analysis, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, , Vol.25, Iss.10, Oct. 2006, Pages: 2170–2180] generates the arrival times (and required) times for each node, working forward (and backward) from the clocked elements. The advantage is completeness, and no need for path selection. The biggest problem is that a statistical max (or min) operation that also considered correlation is needed, which is a hard technical problem.
Criticism of SSTA
A number of criticisms have been leveled at SSTA:
*It's too complex, especially with realistic (non-gaussian) distributions.
*It's hard to couple to an optimization flow or algorithm.
*It's hard to get the data the algorithm needs. Even if you can get this data, it is likely to be time-varying and hence unreliable.
*If used seriously by the customers of a fab, it restricts the changes the fab might make, if they change that statistical properties of the process.
*The benefit is relatively small, compared to an enhanced deterministic STA that also takes into account sensitivities and correlation [cite web |url=http://www.ispd.cc/slides07/noel.pdf | title=The Good, the Bad, and the Statistical | author = Noel Menezes | publisher=ISPD 2007] .
Static timing analysis
Wikimedia Foundation. 2010.
Look at other dictionaries:
Static timing analysis — is a method of computing the expected timing of a digital circuit without requiring simulation. High performance integrated circuits have traditionally been characterized by the clock frequency at which they operate.Gauging the ability of a… … Wikipedia
Delay calculation — is the term used in integrated circuit design for the calculation of the gate delay of a single logic gate and the wires attached to it. By contrast, static timing analysis computes the delays of entire paths, using delay calculation to determine … Wikipedia
SSTA — may refer to*Scottish Secondary Teachers Association *Statistical Static Timing Analysis … Wikipedia
Simucad — Infobox Company company name = Simucad Design Automation, Inc. company company type = Private Company| foundation = 2004 location = key people = Dr Ivan Pesic, President/CEO Mr Marc Goldberg, Sales Contact industry = Software Programming homepage … Wikipedia
Integrated circuit design — Layout view of a simple CMOS Operational Amplifier ( inputs are to the left and the compensation capacitor is to the right ). The metal layers are colored blue and green, the polysilicon is red and vias are crosses. Integrated circuit design, or… … Wikipedia
Computer security compromised by hardware failure — is a branch of computer security applied to hardware. The objective of computer security includes protection of information and property from theft, corruption, or natural disaster, while allowing the information and property to remain accessible … Wikipedia
Altos Design Automation — OverviewAltos Design Automation, Inc. provides ultra fast, fully automated, characterization technology for the creation of library views for timing, signal integrity and power analysis and optimization. Altos’ advanced modeling solutions are… … Wikipedia
Profiling (computer programming) — In software engineering, profiling ( program profiling , software profiling ) is a form of dynamic program analysis that measures, for example, the usage of memory, the usage of particular instructions, or frequency and duration of function calls … Wikipedia
Petroleum — For other uses, see Petroleum (disambiguation). Proven world oil reserves, 2009 … Wikipedia
Debugging — Debug redirects here. For the shell command, see debug (command). For the German magazine, see Debug (magazine). A photo of the apocryphally first real bug, which was debugged in 1947. Debugging is a methodical process of finding and reducing the … Wikipedia