Variation-Aware Custom IC Design - Solido Design Automation
Variation-Aware Custom IC Design - Solido Design Automation
Variation-Aware Custom IC Design - Solido Design Automation
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Variation</strong>-<strong>Aware</strong> <strong>Custom</strong> <strong>IC</strong> <strong>Design</strong><br />
Abstract<br />
<strong>Variation</strong>-<strong>Aware</strong> <strong>Custom</strong> <strong>IC</strong> <strong>Design</strong>:<br />
Improving PVT and Statistical Maximum Yield at the Performance Edge<br />
<strong>Variation</strong> has become a critical concern in<br />
modern process geometries; managing it<br />
properly is key in designing custom circuits with<br />
competitive performance, power, and area. This<br />
paper describes how a flow using design-specific<br />
corners manages variation issues in a unified<br />
fashion. To enable corner-based design, the key<br />
ingredients are corner extraction and design<br />
verification tools. This paper describes such<br />
tools for PVT, 3-sigma Monte Carlo, and highsigma<br />
design; and how appropriate technology<br />
can make these tools fast, accurate, and<br />
scalable. Finally, as an example, this paper<br />
focuses on high-sigma problems, showcasing<br />
High-Sigma Monte Carlo (HSMC) which<br />
analyzes billions of Monte Carlo samples in<br />
minutes, with SP<strong>IC</strong>E accuracy.<br />
Introduction<br />
In today’s highly competitive semiconductor<br />
industry, profitability hinges on competitive<br />
design performance, high yield, and rapid time to<br />
market. This is even becoming even more<br />
pronounced as leading-edge designs push into<br />
smaller process nodes. Due to the common use<br />
of foundries like TSMC and Global Foundries,<br />
silicon technology is no longer a differentiating<br />
factor. Advantages in performance, power, and<br />
area will be key to market success. <strong>Custom</strong><br />
integrated circuit design is key to gain such<br />
differentiation. Beyond analog, custom <strong>IC</strong><br />
design includes RF, high-speed I/O, standard cell<br />
digital library and memory design.<br />
and Global process variation, local process<br />
variation, environmental variation affect custom<br />
circuit performance; and designers must manage<br />
this under tight performance, power, yield, and<br />
time constraints. Depending on the type of<br />
variation-design problem, designers face<br />
numerous challenges. We now explore these<br />
challenges, for each problem type.<br />
PVT. In some cases, a PVT-corners approach to<br />
variation may be enough, in which global F/S<br />
<strong>Solido</strong> <strong>Design</strong> <strong>Automation</strong> Inc.<br />
corners model process variation. Even that,<br />
however, can be cumbersome: running a<br />
comprehensive range of PVT corners can take<br />
days. <strong>Design</strong>ers may try to overcome this by<br />
guessing which corner combinations are most<br />
appropriate, which increases design risk. They<br />
may try to reduce risk by adding margins, at the<br />
expense of performance, power, or area.<br />
Monte Carlo (3-Sigma) Statistical. In many<br />
design problems, global F/S corners are not<br />
accurate enough; statistical models of the global<br />
and local process distribution are necessary.<br />
<strong>Design</strong>ers could use Monte Carlo sampling, but<br />
design iterations against Monte Carlo sampling<br />
are time-consuming (days not hours).<br />
Alternatively, designers could use PVT corners,<br />
which increases design risk.<br />
High-Sigma Statistical. Circuits like bitcells,<br />
sense amps, and standard cell digital library<br />
circuits are replicated thousands or millions of<br />
times, and therefore must have very low failure<br />
rate (e.g. 1 in a million). <strong>Design</strong>ers could use a<br />
big Monte Carlo run, but that is extremely timeconsuming<br />
(e.g. 1 million samples just to get 1<br />
failure). Alternatively, designers could use a<br />
small Monte Carlo run and extrapolate with<br />
density estimation, but that will be inaccurate<br />
because there will be no information at the tails.<br />
Or, designers could develop an analytical model,<br />
but it is time-consuming to create and verify, and<br />
is topology-specific.<br />
There is a pattern here; regardless of variation<br />
problem type, designers face similar dilemmas.<br />
They could use an accurate model but have slow<br />
design iterations. Alternatively, they could<br />
loosen the model for fast design iterations, but<br />
that risks design failures (under-design), or<br />
compromises performance / power / area (overdesign).<br />
Figure 1 illustrates.<br />
<strong>Solido</strong> <strong>Design</strong> <strong>Automation</strong>, Inc.<br />
111 North Market Street, Suite 300<br />
San Jose, CA 95113<br />
info@solidodesign.com +1 408 332 5811<br />
http://www.solidodesign.com
<strong>Variation</strong>-<strong>Aware</strong> <strong>Custom</strong> <strong>IC</strong> <strong>Design</strong><br />
Figure 1: If variation is poorly handled, the<br />
design may compromise performance / power<br />
/ area due to excessive safety (over-design); or<br />
yield due to due to variations (under-design).<br />
This paper asks: can this dilemma be resolved,<br />
so that designers can have rapid design<br />
iterations, yet use an accurate model of variation<br />
so that over- and under-design is avoided? The<br />
answer lies in using appropriately chosen designspecific<br />
corners – a small representative set that<br />
simulates quickly, yet captures the bounds of the<br />
performance distribution.<br />
<strong>Design</strong>-Specific Corners<br />
Figure 2 shows a methodology for variationaware<br />
design using design-specific corners. The<br />
general idea is to do rapid design iterations<br />
against a small set of design-specific corners, yet<br />
use verification to confirm with confidence that<br />
the design is good.<br />
Figure 2: Corner-based design flow. This<br />
flow applies to PVT, Monte Carlo, or High-<br />
Sigma variation problems.<br />
In the first step of the flow, the circuit is verified<br />
using a verification tool. If the design is<br />
acceptable, the flow is complete. If not,<br />
representative corners are extracted, and the loop<br />
is repeated.<br />
For each type of problem variation, there is a<br />
specific tool for verification and for corner<br />
extraction - PVT, Monte Carlo Statistical, and<br />
High-Sigma Statistical.<br />
The user can combine the flows for different<br />
variation problems. For example, the user could<br />
do a first-cut design using just a single nominal<br />
corner, then add some PVT corners and design<br />
against them, and finally add Monte Carlo<br />
Statistical corners.<br />
Enabling Technologies for <strong>Design</strong>-<br />
Specific Corners<br />
Naïve implementations of verification and corner<br />
extraction tools are not adequate; these tools<br />
must be fast, accurate, and scalable. Fortunately,<br />
appropriate technologies now exist to achieve<br />
these goals.<br />
The key to fast, accurate, and scalable PVT<br />
<strong>Solido</strong> <strong>Design</strong> <strong>Automation</strong>, Inc.<br />
111 North Market Street, Suite 300<br />
San Jose, CA 95113<br />
info@solidodesign.com +1 408 332 5811<br />
http://www.solidodesign.com
<strong>Variation</strong>-<strong>Aware</strong> <strong>Custom</strong> <strong>IC</strong> <strong>Design</strong><br />
verification and corner extraction is to cast it as a<br />
global optimization problem, then to solve the<br />
problem with a fast, reliable optimizer. Such an<br />
optimizer makes maximal use of the simulations<br />
taken so far, to make the best-informed decisions<br />
about what PVT corner regions should be tested.<br />
Such an approach enables speedups averaging<br />
10x over naïve approaches.<br />
Monte Carlo Statistical verification can exploit<br />
Optimal Spread Sampling for 1.5x to 10x<br />
speedup over naïve Monte Carlo, at no loss in<br />
accuracy. Monte Carlo Statistical Corner<br />
extraction extracts corners at pre-specified target<br />
yields, leveraging density estimation, response<br />
surface modeling, and nonlinear programming<br />
for corners that are 5x-10x more accurate than<br />
naïve Monte Carlo corners.<br />
For High-Sigma Statistical problems, High-<br />
Sigma Monte Carlo (HSMC) can analyze<br />
billions of Monte Carlo samples in minutes, to<br />
identify statistical tails with full SP<strong>IC</strong>E accuracy.<br />
The next section will elaborate.<br />
Case Study: High Sigma Circuits<br />
This section is a case study to illustrate variation<br />
problems on one of the variation problem types:<br />
high-sigma circuits. High-σ circuits include<br />
memory elements and highly replicated digital<br />
blocks. High-σ circuit problems not only need<br />
accurate statistical modeling, but also deal with<br />
statistically rare events because the circuit blocks<br />
are repeated thousands, millions, or even billions<br />
of times on a die. They have a very rare<br />
probability of failure (e.g. 1 in a million), for<br />
which one would need extremely large Monte<br />
Carlo runs (e.g. 1 million samples just to get 1<br />
failure).<br />
Status Quo Approaches in High-σ<br />
Verification<br />
For the overall chip to have good yield, the<br />
repeated high-σ block must have extremely high<br />
yield (low probability-of-failure pf). Let us<br />
consider a chip with target yield of 99.0% (pf<br />
≤0.01), having 1 million bitcells, such as Figure<br />
3. To achieve the target chip yield, each bitcell<br />
needs yield ≥ 99.999999% (pf ≤1.0e-8) 1 .<br />
Let us consider how one might compute the yield<br />
of such a circuit.<br />
Plain Monte Carlo (MC): One approach would<br />
be to use Monte Carlo sampling. However, this<br />
would require far too many simulations: a circuit<br />
with 99.9999% yield would need, on average, 1<br />
million samples from the true distribution just to<br />
observe a single failure against circuit<br />
specifications. This is clearly not feasible.<br />
Figure 3: Failures with rare probability of<br />
occurrence<br />
MC with Extrapolation: This approach runs a<br />
large, but feasible number of MC simulations<br />
(e.g. 100K or 1M), then extrapolates the results<br />
to the region of interest. Extrapolation is<br />
typically done using curve fitting or density<br />
estimation. The benefits of this approach are that<br />
it is simple to understand and implement, and the<br />
results are at least trustworthy within the<br />
1 For simplicity of description, this assumes that we<br />
have just local (not global) process variations, and<br />
there is no redundancy, error correction, etc. Note that<br />
the algorithm described herein accounts for both local<br />
and global variations.<br />
<strong>Solido</strong> <strong>Design</strong> <strong>Automation</strong>, Inc.<br />
111 North Market Street, Suite 300<br />
San Jose, CA 95113<br />
info@solidodesign.com +1 408 332 5811<br />
http://www.solidodesign.com
<strong>Variation</strong>-<strong>Aware</strong> <strong>Custom</strong> <strong>IC</strong> <strong>Design</strong><br />
sampling region. Unfortunately, it is timeconsuming<br />
to run 100K or 1M samples, and<br />
extrapolation assumes that the behavior in the<br />
extreme tails of the distribution is consistent with<br />
that observed at lower sigma. This assumption<br />
can be misleading, as there may be drop-offs or<br />
discontinuities in the extreme tails; for example,<br />
if a device goes out of saturation when a given<br />
level of variation is applied.<br />
Manual Model: A third approach is to<br />
manually construct analytical models relating<br />
process variation to performance and yield.<br />
However, this is highly time-consuming to<br />
construct, is only valid for the specific circuit<br />
and process, and may have accuracy issues. A<br />
change to the circuit or process renders the<br />
model obsolete.<br />
Importance Sampling (IS): In this approach<br />
[2][3], the general idea is to change the sampling<br />
distribution so that more samples are in the<br />
region of failure.<br />
An archetypical IS approach for circuit analysis<br />
is [4], which finds a “center” by solving an<br />
optimization formulation: “find the process point<br />
that minimizes the distance to nominal, subject<br />
to being infeasible.” It then changes the<br />
sampling distribution to have means at this<br />
“center”. IS continually draws and simulates<br />
samples from the new distribution. IS calculates<br />
yield by assigning a weight to each sample based<br />
on the point’s probability density on the original<br />
and new sampling distributions.<br />
[4] and other IS approaches for circuits were<br />
demonstrated on problems of ≤12 random<br />
process variables. But recall that for accurate<br />
industrial models of process variation, there are<br />
5, 10, or more process variables per device. This<br />
means that even for a 6T bitcell, there may be<br />
≥30 process variables; and sense amp problems<br />
can have 125 process variables or more.<br />
While IS has strong int or more intuitive appeal,<br />
it turns out to have very poor scalability in the<br />
number of process variables, causing inaccuracy.<br />
Here’s why: the center-finding step needs to find<br />
the most probable points that cause infeasibility;<br />
if it is off even by a bit then the average weight<br />
of the infeasible samples will be too low, giving<br />
estimates of yield that are far too optimistic. For<br />
example, in running [Kanj] on a 185-variable flip<br />
flop problem, we found that the weights of<br />
infeasible samples were < 1e-200, compared to<br />
feasible sample weights of 1e-2 to 1e-0. This<br />
resulted in an estimated probability of failure of<br />
≈1e-200, which is obviously wrong compared to<br />
the “golden” probability of failure of 4.4e-4<br />
(found by a big MC run).<br />
To reliably find the most probable points<br />
amounts to a global optimization problem, which<br />
has exponential complexity in the number of<br />
process variables – it can handle 6 or 12<br />
variables (search space of ≈10 6 or 10 12 ), but not<br />
e.g. 30 or 125 as in the industrial bitcell and<br />
sense amp problems given before (space of 10 30<br />
or 10 125 ).<br />
None of the previous approaches are adequate.<br />
Clearly, there is a need to quickly and accurately<br />
estimate yield for high-yield circuits.<br />
Furthermore, in the case when yield needs to be<br />
improved, there is no means to do rapid<br />
iterations on high-yield circuit designs.<br />
High-Sigma Monte Carlo (HSMC)<br />
While IS sounds promising, its reliability is<br />
hindered by the need to solve a global<br />
optimization problem of order 10 30 to 10 125 .<br />
Perhaps we can then reframe the problem and<br />
associated complexity, by operating on a finite<br />
set of MC samples. If we have 1B MC samples,<br />
then that is an upper complexity of 10 9 . While<br />
“just” 10 9 is much better than the 10 125<br />
complexity of IS, it is still too expensive to<br />
simulate 1B MC samples. But what if we were<br />
sneaky about which MC samples we actually<br />
simulated? Let us use an approach that<br />
prioritizes simulations towards the most-likelyto-fail<br />
cases. It never does an outright rejection<br />
of samples in case they cause failures; it merely<br />
de-prioritizes them. It can learn how to prioritize<br />
using modern machine learning, adapting based<br />
on feedback from SP<strong>IC</strong>E. By never fully<br />
rejecting a sample, it is not susceptible to<br />
inaccurate models; model inaccuracy simply<br />
<strong>Solido</strong> <strong>Design</strong> <strong>Automation</strong>, Inc.<br />
111 North Market Street, Suite 300<br />
San Jose, CA 95113<br />
info@solidodesign.com +1 408 332 5811<br />
http://www.solidodesign.com
<strong>Variation</strong>-<strong>Aware</strong> <strong>Custom</strong> <strong>IC</strong> <strong>Design</strong><br />
adds some noise to convergence, as we shall see<br />
later.<br />
This is the core of the High-Sigma Monte Carlo<br />
(HSMC) approach.<br />
The HSMC method then produces, typically in<br />
hundreds or a few thousand simulations:<br />
� An accurate view of the extreme tail of the<br />
output distributions (e.g. in NQ form), using<br />
real MC samples and SP<strong>IC</strong>E-accurate<br />
results. Since this gives a tradeoff between<br />
yield and spec, one may get accurate yield<br />
estimate for a given spec; or spec estimates<br />
for a given target sigma (yield).<br />
� A set of MC and SP<strong>IC</strong>E-accurate worst-case<br />
high-sigma corners, which can be<br />
subsequently for rapid design iterations.<br />
HSMC Illustrative Results<br />
This section demonstrates HSMC’s behavior on<br />
a suite of designs. The purpose of this section is<br />
to show how HSMC works in practice on actual<br />
designs, and purposely includes both cases<br />
where HSMC works very effectively and cases<br />
where HSMC is less effective.<br />
We demonstrate HSMC on a bitcell, having >30<br />
process variables.<br />
Experimental Setup. The experimental<br />
methodology is as follows. We drew N=1M<br />
Monte Carlo samples and simulated them. These<br />
form our “golden” results. We set the output<br />
specification such that 100 of the N samples fail<br />
spec. Then, we ran HSMC on the problem, with<br />
Ngen = N, using the same random seed so that it<br />
has exactly the same generated MC samples.<br />
HSMC ran for 20K simulations. We repeat the<br />
procedure with specs set such that 10 of the Ngen<br />
samples fail spec.<br />
Results. On this bitcell test case, HSMC finds<br />
the first 100 failures within its first 5000 samples<br />
(see Figure 4). Note that with 1.5 million<br />
samples containing 100 failures, MC will<br />
typically not find a single failure within 5000<br />
samples.<br />
Figure 4: Bitcell cell_i – number of failures<br />
found vs. sample number (100 failures exist)<br />
Figure 5 shows results on a normal quantile<br />
(NQ) plot, which shows distributions but makes<br />
it easy to examine tails. Each black dot or red<br />
dot represents an individual simulation.<br />
The plot compares (i) the results of MC with 1M<br />
simulations, (ii) HSMC with 100M generated<br />
samples but just 5500 simulations, (iii) linearextrapolated<br />
MC, and (iv) quadratic-extrapolated<br />
MC. All results are presented on a normal<br />
quantile (NQ) plot to facilitate extrapolation.<br />
We see that within just a few thousand<br />
simulations, HSMC can accurately find the tail,<br />
of what would normally take 100M simulations.<br />
In contrast, linear and quadratic approximations<br />
are not able to capture even the tails of 1M MC<br />
samples, let alone 100M MC samples.<br />
Figure 5: NQ plot for bitcell cell_i: 1M MC<br />
samples and 5500/100M HSMC samples, with<br />
linear and quadratic extrapolation curves<br />
<strong>Solido</strong> <strong>Design</strong> <strong>Automation</strong>, Inc.<br />
111 North Market Street, Suite 300<br />
San Jose, CA 95113<br />
info@solidodesign.com +1 408 332 5811<br />
http://www.solidodesign.com
<strong>Variation</strong>-<strong>Aware</strong> <strong>Custom</strong> <strong>IC</strong> <strong>Design</strong><br />
Conclusion<br />
Semiconductor profitability hinges on high yield,<br />
competitive design performance, and rapid time<br />
to market. For the designer, this translates to the<br />
need to manage diverse variations (global and<br />
local process variations, environmental<br />
variations, etc.), reconcile yield with<br />
performance (power, speed, area, etc.), while<br />
under intense time pressures.<br />
A flow using design-specific corners enables<br />
designers to manage variation effectively,<br />
because the corners simulate quickly yet<br />
represent the performance bounds.<br />
An example application is high-σ design, where<br />
failures are one in a million, previous approaches<br />
to verifying those designs were either extremely<br />
expensive or inaccurate. High-Sigma Monte<br />
Carlo (HSMC) allows the designer to quickly<br />
and accurately verify high-σ designs.<br />
Furthermore, it enables rapid design iterations,<br />
via design-specific high-σ corners.<br />
About <strong>Solido</strong><br />
<strong>Solido</strong> <strong>Variation</strong> <strong>Design</strong>er is a comprehensive set<br />
of tools for variation-aware custom <strong>IC</strong> design. It<br />
allows users to handle PVT, Monte Carlo, and<br />
High-Sigma problems.<br />
For each problem type, <strong>Solido</strong> offers the<br />
designer easy-to-use tools to analyze variation<br />
effects, identify transistor sensitivities to<br />
variation, and fix the design to meet<br />
specifications with optimal performance, power<br />
and area. Compared to status quo approaches,<br />
these tools are more scalable, and up to 10x+<br />
faster with SP<strong>IC</strong>E-level accuracy.<br />
<strong>Solido</strong> <strong>Variation</strong> <strong>Design</strong>er uses foundry models,<br />
integrates in existing custom <strong>IC</strong> design flows,<br />
and supports Cadence Spectre, Synopsys<br />
HSP<strong>IC</strong>E, Magma / Synopsys FineSim, Mentor<br />
Eldo and Berkeley <strong>Design</strong> <strong>Automation</strong> AFS<br />
simulators.<br />
References<br />
[1] P. G. Drennan, C. C. McAndrew, “Understanding<br />
MOSFET Mismatch for Analog <strong>Design</strong>,” IEEE J.<br />
Solid State Circuits, March 2003.<br />
[2] T.C. Hesterberg, Advances in importance<br />
sampling. Ph.D. Dissertation, Statistics Dept.,<br />
Stanford University, 1988<br />
[3] D.E. Hocevar, M.R. Lightner, and T.N. Trick, “A<br />
Study of Variance Reduction Techniques for<br />
Estimating Circuit Yields”, IEEE Trans.<br />
Computer-Aided <strong>Design</strong> of Integrated Circuits<br />
and Systems 2 (3), July 1983, pp. 180-192<br />
[4] M. Qazi, M. Tikekar, L. Dolecek, D. Shah, and<br />
A. Chandrakasan, “Loop Flattening & Spherical<br />
Sampling: Highly Efficient Model Reduction<br />
Techniques for SRAM Yield Analysis,”<br />
Proc. <strong>Design</strong> <strong>Automation</strong> and Test in Europe,<br />
March 2010<br />
<strong>Solido</strong> <strong>Design</strong> <strong>Automation</strong>, Inc.<br />
111 North Market Street, Suite 300<br />
San Jose, CA 95113<br />
info@solidodesign.com +1 408 332 5811<br />
http://www.solidodesign.com