28.02.2013 Views

Variation-Aware Custom IC Design - Solido Design Automation

Variation-Aware Custom IC Design - Solido Design Automation

Variation-Aware Custom IC Design - Solido Design Automation

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!