Static timing analysis (STA) is a simulation method of computing the expected timing of a synchronous digital circuit without requiring full circuit-simulation. High-performance integrated circuits have traditionally been characterized by the clock frequency at which they operate. Measuring the ability of a circuit to operate at the specified speed requires an ability to measure, during the design process, its delay at numerous steps. Moreover, delay calculation must be incorporated into the inner loop of timing optimizers at various phases of design, such as logic synthesis, layout (placement and routing), and in in-place optimizations performed late in the design cycle. While such timing measurements can theoretically be performed using a rigorous circuit simulation, such an approach is liable to be too slow to be practical. Static timing analysis plays a vital role in facilitating the fast and reasonably accurate measurement of circuit timing. The speedup comes from the use of simplified timing models and by mostly ignoring logical interactions in circuits. This has become a mainstay of design over the last few decades. One of the earliest descriptions of a static timing approach was based on the Program Evaluation and Review Technique (PERT), in 1966. More modern versions and algorithms appeared in the early 1980s.
Purpose In a synchronous digital system, data is supposed to move in "lockstep", advancing one stage on each tick of the clock signal. This is enforced by synchronizing elements such as flip-flops or latches, which copy their input to their output when instructed to do so by the clock. Only two kinds of timing errors are possible in such a system:
A Max time violation, when a signal arrives too late, and misses the time when it should advance. These are more commonly known as setup violations/checks which actually are a subset of max time violations involving a cycle shift on synchronous paths. A Min time violation, when an input signal changes too soon after the clock's active transition. These are more commonly known as hold violations/checks which actually are a subset of min time violations in synchronous path. The time when a signal arrives can vary due to many reasons. The input data may vary, the circuit may perform different operations, the temperature and voltage may change, and there are manufacturing differences in the exact construction of each part. Prior to the development of static timing analysis, the allowable clock rates for a system were determined heuristically. Engineers would guess which paths were longest (there were too many paths to evaluate exhaustively), write test vectors that would exercise that path, and then verify their estimates by testing chips to see how fast they could run. This procedure had several disadvantages - the proposed critical path might not be real one, it was hard to account for process variation, and there was no verification of hold time constraints. Static timing analysis addresses these issues. The main goal of static timing analysis is to verify that despite these possible variations, all signals will arrive neither too early nor too late, and hence proper circuit operation can be assured. Since STA is capable of verifying every path, it can detect other problems like glitches, slow paths and clock skew.
Definitions
Basics The critical path is defined as the path between an input and an output with the maximum delay. Once the circuit timing has been computed by one of the techniques listed below, the critical path can easily be found by using a traceback method. Identifying critical paths estimate the worst case timing for the circuit so that the circuit timing will not be underestimated. The arrival time of a signal is the time elapsed for a signal to arrive at a certain point. The reference, or time 0.0, is often taken as the arrival time of a clock signal. Sometimes positive input arrival time can be used to model some effects, like input port delays. To calculate the arrival time, delay calculation of all the components in the path will be required. Arrival times, and indeed almost all times in timing analysis, are normally kept as a pair of values - the earliest possible time at which a signal can change, and the latest. Another useful concept is required time. This is the latest time at which a signal can arrive without making the clock cycle longer than desired. The computation of the required time proceeds as follows: at each primary output, the required times for rise/fall are set according to the specifications provided to the circuit. Next, a backward topological traversal is carried out, processing each gate when the required times at all of its fanouts are known. The slack associated with each connection is the difference between the required time and the arrival time. A positive slack s at some node implies that the arrival time at that node may be increased by s, without affecting the overall delay of the circuit. Conversely, negative slack implies that a path is too slow, and the path must be sped up (or the reference signal delayed) if the whole circuit is to work at the desired speed.
False Path Problem In STA, identifying the critical path involves analyzing the longest topological path through a logic network. However, not all topological paths are functionally feasible, as some paths may never be activated by any valid input combination. These are referred to as false paths, and if not excluded, they can lead to overestimation of timing delays. False paths can be classified as single-cycle or multi-cycle paths. A multi-cycle path does not require data to propagate within a single clock cycle. For instance, control signals such as reset often take multiple cycles to complete their function. If such signals are incorrectly treated as part of the critical path, they can distort timing results by suggesting stricter timing requirements than necessary.
Delay Models Delay models define the propagation delay of logic gates in digital circuits. In the context of Static Timing Analysis (STA), delay models are essential for estimating signal arrival times and verifying timing constraints. Given that modern integrated circuits can include millions of gates, delay models should balance between computational efficiency and modelling accuracy. Common delay models used in STA include:
Unit delay Constant delay Pin-to-pin delay PVT corners Statistical delay
… excerpt ends here. Continue reading the full article.
