Stage-based OCV derate tables are a systematic correction to liberty timing models to account for on chip process variation. Stage-based OCV can be used in timing and optimization tools as a fast approximation for statistical timing giving better – more accurate results and helping to close timing at smaller process nodes. While stage-based OCV provides material improvements to timing margin over a fixed global OCV derate; worst case stage-based OCV derates can still be overly pessimistic – penalizing designs for variance outside their operating region. This paper explores the contributing factors to stage-based OCV pessimism and ways to improve the tables significantly. In addition, we demonstrate that different views of design specific derates that can be used for varying design purposes from timing to optimization.What is stage-based OCV?
Stage-based OCV derate tables are a systematic correction to liberty timing models. They are primarily designed to account for on chip process variation. Stage-based OCV can be used as a fast approximation for statistical timing; giving better, more accurate results and helping to close timing at smaller process nodes.
Figure 1: OCV derates vs. path depth (late, data)
Often referred to as AOCV (or “advanced” OCV), stage-based OCV derates differ from traditional fixed derates in that the derate tables for each cell are indexed by path depth. When applied during timing analysis a cell in a short path will use a different derate factor than that same cell found in a long path. By allowing for different derates for every cell, every edge, in each different path stage-based OCV eliminates both pessimism and optimism inherent in a fixed derate strategy. AOCV is an analytic and better approach than the sometimes ad-hoc OCV derates.
Another benefit of AOCV is that the tables can be used in a wide variety of existing timing and optimization tools. Adopting stage-based OCV does not require complicated changes to design flows. In fact, most back-end EDA vendors support AOCV, today.
Stage-based OCV derates can be computed using foundry models, LPE netlists, and liberty timing libraries. The models and SPICE netlists help to define the cells’ sensitivity to variation while the timing libraries can be used to identify timing arcs and desired ranges for input slew and output load conditions. Deriving tables for individual cells involves either statistically simulated all of these input conditions and timing arcs and combining the results in to final derate values.
Figure 2: Example AOCV derate table
We have built a specialized tool, AOCV FX™, to simplify and speed up the table generation process significantly. AOCV FX™ eliminates the need for Monte Carlo SPICE simulation and improves turnaround time dramatically – from weeks of SPICE simulation to hours per library. In addition, AOCV FX™ captures the variation information for every cell in a stand-alone database for detailed analysis and design specific table generation.Calculating stage-based OCV derates
The stage-based OCV file format allows for up to 8 possible derate tables for an individual cell. Tables should be generated for both setup and hold conditions for both clock and data paths for rise and fall. Foundry recommendations and designers’ best practices define how AOCV derates are calculated. TSMC has been at the forefront of defining AOCV methodologies and making recommendations to their customers and to EDA tool vendors. Their methodologies include using separate derate equations for data and clock paths. Other choices include the path structure used for simulation, additional margin added to the derates, limits on the minimum and maximum derate values.Data Path Derate
The canonical derate equation measures the ratio of delay at the global corner with local process variance to the delay at a fixed corner.
Clock Path Derate
The following equation models clock skew due to process variation between two balanced clock paths.
Clock derates compensate for STA optimism, whereas data derates compensate for STA pessimism. This is why applying only clock derates does not typically improve timing margin: it only makes unwarranted optimism go away, but does not correct the pessimism.Calculating derate for a typical cell
When building stage-based OCV Tables, each timing arc in a cell should be simulated using a range of input slew and output load values. We have found that input slew and output load conditions can impact the variability of the cell significantly.
Figure 3: Derate vs. load and skew
By default, AOCV FX™ sweeps the range of load and slew combinations found in the timing library for each cell and simulates each timing arc at that point. By default, the worst (most pessimistic) derate is written to the OCV table for each defined condition (rise & fall, early & late, clock & data). All of the calculations are saved to a database for detailed post processing and analysis.
The derate map in Figure 3 shows the derate sensitivity of a cell to load and slew at a specific depth. Areas with dark color have lower variability (and a derate value closer to 1.0) and areas with lighter color have the largest variability.There is no such thing as a typical cell
When looking at a derate maps for a library of cells we see that there is no such thing as a “typical” cell. The load and slew combinations that produce the highest derates change for each cell and even for the rise and fall conditions for the same cell. Choosing the best range of load and slew values to give you a safe derate is important. However, the worst case value may be overly pessimistic.
Figure 4: Derate maps for 4 example cells
It’s also important to note it is practically impossible to extrapolate from a single cell to another cell’s behavior. The inverter has a very different profile from the AOI or the XNOR cells. Even more remarkable, is the difference between two XNOR functions based upon the number of inputs. The only way to insure correct AOCV tables is to characterize each cell uniquely at all load and slew combinations.
Furthermore, extrapolating derates within the same family of cells using coefficients leads to incorrect derate values.
AOCV FX™ saves all derate calculations and the data used to compute the derates in to a database. These values can be queried later to refine the final derate values based on more detailed analysis of your design.