0805.2627/bg.tex
1: \noindent
2: Section~\ref{sec:SLE} provides an overview of the logical effort
3: approach \cite{logeffortbook}. In Section~\ref{sec:SSLE}, we introduce
4: two techniques for using logical effort as a method for approximating
5: circuit delay in the presence of statistical variations.
6: Section~\ref{sec:mc} reviews the standard Monte Carlo method for
7: evaluating definite integrals, and Section~\ref{sec:is} presents the
8: importance sampling technique for variance reduction in Monte Carlo
9: simulations. Finally, Section~\ref{sec:defn} describes the
10: preliminaries in applying the standard Monte Carlo and importance
11: sampling techniques to timing yield estimation.
12: 
13: \subsection{Logical Effort}
14: \label{sec:SLE}
15: \noindent
16: The logical effort formalism is a fast and efficient way of
17: determining the delay of a path in a digital circuit.  The path delay
18: is simply the sum of the delays of the gates on the path, and the
19: delay of a logic gate $r$ is approximated as
20: \begin{equation}
21: \gatdelLE = \refinvdel\;\lefac
22: \label{eqn:gatedelay}
23: \end{equation}
24: where $\gatdelLE$ is the absolute delay of a gate measured in seconds,
25: $\refinvdel$ is the delay of a parasitic-capacitance-free {\em
26:   reference inverter} driving another identical inverter, and $\lefac$
27: is the delay of the logic gate expressed in units of $\refinvdel$. The
28: $\lefac$ factor in \eq{gatedelay} models the gate delay and is given
29: by
30: \begin{equation}
31: \lefac = \lrp{\paras+\logeffort\,\fanout}
32: \label{eqn:lefac}
33: \end{equation}
34: where $\paras$ represents the intrinsic (parasitic) delay,
35: $\logeffort$ is the logical effort, and $\fanout$ is the electrical
36: effort or electrical fan-out. Logical effort $\logeffort$ for a logic
37: gate is defined as the (unitless) ratio of its (per) input capacitance
38: to that of an inverter that delivers the same output current. Thus,
39: logical effort $\logeffort$ is a measure of the complexity of a
40: gate. It depends only on the gate's topology and is independent of the
41: size and the loading of the gate. Parasitic delay $\paras$ expresses
42: the intrinsic delay of the gate due to its own internal parasitic
43: capacitance, and it is largely independent of the sizes of the
44: transistors in the gate.  Parasitic delay $\paras$, is also expressed
45: in units of $\refinvdel$. The electrical effort $\fanout$ is the ratio
46: of the load capacitance of the logic gate to the capacitance of a
47: particular input~\cite{logeffortbook}.
48: \subsection{Stochastic Logical Effort}
49: \label{sec:SSLE}
50: \noindent
51: Equations (\ref{eqn:gatedelay}) and (\ref{eqn:lefac}) provide a way
52: of decomposing the effects of statistical parameter variations on gate
53: delays.  In a different context,
54: Sutherland~et.~al~\cite{logeffortbook} analyzed different
55: semiconductor processes with varying supply voltages, and observed
56: that almost all of the effect of process parameters and supply voltage
57: on gate delay is captured by the reference inverter delay
58: ($\refinvdel$ in \eq{gatedelay}), even when the parameters vary over a
59: large range spanning different fabrication processes.  The logical
60: effort $\logeffort$ and the unitless parasitic delay $\paras$ of a
61: gate exhibit relatively little variation with process parameters and
62: supply voltage.  Exploiting this observation in the context of timing
63: yield analysis, in \cite{sleTAU2006} a stochastic logical effort (SLE)
64: model was proposed where the delay of a gate was modeled as
65: \begin{equation}
66: \label{eqn:SLE-Eq-v1} \gatdelLE\lrp{\xx} =
67: \refinvdelX\;\lrp{\paras+\logeffort\,\fanout}
68: \end{equation}
69: where $\xx$ is a vector of random variables, each component of which
70: represents a different statistical circuit or process parameter and
71: $\refinvdelX$ is the reference inverter delay when the parameters are
72: given by $\xx$. As is apparent in this equation, in the stochastic
73: logical effort approximation, all process and environmental variations
74: are captured by the statistical variable $\refinvdel$ while
75: $\logeffort$, $\paras$ and therefore $\lefac$ are assumed to be
76: independent of process parameters. If
77: only inter-die variations are modeled, statistical parameters on the
78: chip at all locations are perfectly correlated. In this case, using
79: the stochastic characterization of $\refinvdel$ for the same reference
80: inverter for all of the logic gates on the die captures this perfect
81: statistical correlation among gates. We refer to the
82: approximation given in \eq{SLE-Eq-v1} as {\em
83:   first-degree stochastic logical effort} (abbreviated as $\slev$).
84: 
85: In this paper, we also investigate a further refinement of this
86: approximation described by the following equation
87: \begin{equation}
88: \label{eqn:SLE-Eq-v2} \gatdelLE\lrp{\xx} =
89: \refinvdelX\;\lrp{\parasX+\logeffortX\,\fanout}
90: \end{equation}
91: where the dependency of $\paras$ and $\logeffort$ on $\xx$ is also
92: modeled. We call this model {\em second-degree stochastic logical
93:   effort} ($\slevv$).  As will become apparent later in the paper,
94: $\slevv$ is more accurate but computationally more expensive.
95: 
96: In both versions of SLE, in order to compute the
97: delay of a path $\aPath$ in a circuit, we simply add the delays of the
98: gates on $\aPath$:
99: \begin{equation}
100: \label{eqn:pathDelay1} \pathDelayLE{\aPath} = \sum_{r=1}^k
101: \gatdelLE\lrp{\xx}
102: \end{equation}
103: Here $\gatdelLE\lrp{\xx}$ is the delay of the $r$-th gate on the path
104: $\aPath$. $\gatdelLE\lrp{\xx}$ is computed by evaluating
105: \eq{SLE-Eq-v1} for $\slev$ and \eq{SLE-Eq-v2} for $\slevv$. For this
106: evaluation, a full transistor-level simulation of the whole circuit
107: containing the logic path is not necessary. However, the values of
108: $\refinvdelX$ (for both $\slev$ and for $\slevv$), and $\parasX$ and
109: $\logeffortX$ (for $\slevv$) at a given $\xx$ are needed. For the
110: results we present in this paper, we compute these at a given $\xx$ by
111: running transistor-level circuit simulations on small test circuits
112: which contain only the reference inverter (for $\refinvdelX$) or the
113: gate under consideration (for $\parasX$ and $\logeffortX$) together
114: with a proper driver and load circuitry. We envision that the
115: statistical characterizations (in the form of simple analytical
116: formulas, a look-up table or a response surface model generated by
117: running circuit simulations on appropriate test circuits) for these
118: quantities could become part of the characterizations supplied with a
119: standard-cell library. In this case, no circuit simulations will be
120: needed when evaluating the SLE delay formulas for circuits that are
121: built using gates from such a pre-characterized library.
122: \subsection{The Monte Carlo Method}
123: \label{sec:mc}
124: \noindent Monte Carlo (MC) techniques can be used
125: to estimate the value of a definite, finite-dimensional integral
126: of the form
127: \begin{equation}
128:  \GG = \int_\Omega \gfunc(\xx) \ffunc(\xx) d\xx
129: \label{eqn:vanil} \end{equation}
130: \noindent where $\Omega$ is a finite domain and $\ffunc(\xx)$ is a
131: probability density function (PDF) over $\xx$, i.e., $\ffunc(\xx) \geq
132: 0$ for all $\xx$ and $\int_\Omega \ffunc(\xx) d\xx = 1$.
133: MC estimation for the value of $\GG$ is accomplished by
134: drawing a set of independent samples $\xx_1, \xx_2, ..., \xx_N$ from
135: $\ffunc(\xx)$ and by using
136: 
137: \begin{equation}
138: G_N = (1/N) \sum_{i=1}^N \gfunc(\xx_i)
139: \label{vanil-estim} \end{equation}
140: The estimator $\Gn$ above is itself a random variable.  Its mean is
141: equal to the integral $\GG$ that it is trying to estimate, i.e.,
142: $E(\Gn)=\GG$, making it an unbiased estimator.  The variance of $\Gn$
143: is $Var(\Gn)= {\var}/{N}$, where $\var$ is the variance of
144: the random variable $\gfunc(\xx)$ given by
145: \begin{equation}
146: \var = \int_\Omega  \gfunc^2(\xx) \ffunc(\xx) d\xx - \GG^2
147: \label{eqn:sigma-sqr}
148: \end{equation}
149: The standard deviation of $\Gn$ can be used to assess its
150: accuracy in estimating $\GG$. If $N$ is sufficiently large, due to the
151: Central Limit Theorem, $\tfrac{\Gn-\GG}{\sigma/\sqrt{N}}$ has an
152: approximate standard normal ($N(0,1)$) distribution. Hence,
153: \begin{equation} P(\GG -
154:   1.96\tfrac{\sigma}{\sqrt{N}}\leq \Gn \leq \GG +
155:   1.96\tfrac{\sigma}{\sqrt{N}}) =
156:   0.95 \label{eqn:normal-error}
157: \end{equation}
158: where $P$ is the probability measure. The equation above means that
159: $\Gn$ will be in the interval $[\GG - 1.96\tfrac{\sigma}{\sqrt{N}},
160: \GG + 1.96\tfrac{\sigma}{\sqrt{N}}]$ with 95$\%$ confidence. Thus, one
161: can use the error measure
162: \begin{equation}
163: |Error| \approx {\tfrac {2 \sigma}{\sqrt{N}}}
164: \label{eqn:error-est} \end{equation}
165: in order to assess the accuracy of the estimator.
166: 
167: Several techniques exist for improving the accuracy of MC evaluation
168: of finite integrals. In these techniques, one tries to construct an
169: estimator with a reduced variance for a given, fixed number of
170: samples, or equivalently, the improved estimator provides the same
171: accuracy as the standard MC estimator but with considerably fewer
172: number of samples. This is desirable because computing the value of
173: $g(X_i)$ is typically computationally or otherwise costly.
174: \subsection{Importance Sampling}
175: \label{sec:is}
176: \noindent
177: One MC variance reduction technique is importance sampling
178: (IS)~\cite{KalosWhitlock86,StratMC}. IS improves upon the standard MC
179: approach described above by drawing samples for $\xx$ from another
180: distribution $\ftil$.  $\GG$ in \eq{vanil} is first rewritten as below
181: \begin{equation} \GG = \int_\Omega
182:   \left(
183:     \tfrac{\gfunc(\xx) \ffunc(\xx)}{\ftil(\xx)}
184:   \right)
185:   \ftil(\xx) d\xx
186:   \label{eqn:impSampl}
187: \end{equation}
188: If $\xx_1, \xx_2, ..., \xx_N$ are drawn from $\ftil$ instead of
189: $\ffunc$, the improved estimator $\tGG_N$ takes the form
190: \begin{equation}
191: \tGG_N = \frac{1}{N} \sum_{i=1}^N  \gfunc(\xx_i)\tfrac{\ffunc(\xx_i)}{\ftil(\xx_i)}
192: \label{eqn:estim}
193: \end{equation}
194: where the weighting factor ${\ffunc(\xx_i)}/{\ftil(\xx_i)}$ has been
195: used in order to compensate for the use of samples drawn from the
196: biased distribution $\ftil$.  In order for the improved estimator
197: above to be well-defined and unbiased, $\ftil(\xx_i)$ must be nonzero
198: for every $\xx_i$ for which $\ffunc(\xx_i) \gfunc(\xx_i)$ is
199: nonzero. We refer to this as the {\em safety requirement}. The ideal
200: choice for the biasing distribution $\ftil$ is
201:  \begin{equation}
202: \ftil_{ideal}(\xx) =
203:   \tfrac{\gfunc(\xx)\,\ffunc(\xx)}{G}
204: \end{equation}
205:  which results in an exact
206:   estimator with zero variance with a single sample! However,
207:   $\ftil_{ideal}$ obviously can not be used in practice since the
208:   value of $G$ is not known a priori. Instead, a practically
209:   realizable $\ftil$ that resembles $\ftil_{ideal}$ is used. The
210:   key in using IS in practical problems is the determination of
211:   an effective biasing distribution that results in significant
212:   variance reduction. We have identified one such biasing distribution
213:   by exploiting the SLE formalism that we use to
214:   construct an efficient and accurate estimator for the timing
215:   yield of digital circuits. This distribution will be described in
216:   Section~\ref{sec:method}.
217: \subsection{Monte Carlo Estimation of Timing Yield}
218: \label{sec:defn}
219: \noindent
220: A path $\pi$ in a circuit
221: $\Ckt$ is a sequence of gates $\gate_0, \gate_1, \gate_2,
222: ...,\gate_n$ where $\gate_0$'s inputs are primary inputs of the
223: circuit, and $\gate_n$'s output is a primary output of the circuit.
224: Given a circuit and values for the statistical parameters, a path is
225: said to be {\em critical} if (i) it is sensitizable, and (ii) its
226: delay is as large as the delays of other sensitizable paths. A
227: path $\aPath$ is said to be {\em statistically critical} if it is
228: a critical path of $\Ckt$ for some possible assignment to process
229: parameters. We denote by $\critPaths$ the set of statistically
230: critical paths. Then, the delay of a circuit is computed using
231: \begin{equation}
232: \circDelay = max_{\aPath \in \CritPaths} \:\: \pathDelay{\aPath}
233: \label{eqn:dc}
234: \end{equation}
235: where $\circDelay$ is the delay of the circuit and
236: $\pathDelay{\aPath}$ is the delay of path $\aPath$ when the
237: circuit and process parameters are given by $\aPP$.
238: %$\aPP$ is a vector containing all statistical process parameters.
239: 
240: A target delay $\timeConstr$ is specified for the circuit. Given a
241: PDF $\ffunc(\xx)$ for the statistical
242: parameters, we would like to compute the fraction of circuits that
243: satisfy $\circDelay \leq \timeConstr$, i.e., the {\em timing yield} of
244: the circuit.  We define an indicator random variable $\ind$ for the
245: entire circuit as follows: $\ind = 1$ if the circuit delay exceeds the
246: target, i.e., $\circDelay > \timeConstr$, and $\ind = 0$ otherwise. We
247: then define the {\em timing loss} or simply {\em loss} with
248: 
249: \begin{equation}
250: \Loss = 1 - \Yield = \int \ind \: \pdf{\aPP} \: d \aPP
251: \label{eqn:yield}
252: \end{equation}
253: as the mean of the indicator random variable $\ind$ over the PDF $\pdf{\aPP}$.
254: Evaluation of the integral above is the timing
255: yield (loss) estimation problem addressed in this paper.
256: 
257: In a straightforward application of the MC method to loss estimation,
258: one would draw samples $\xx_1, \xx_2, ..., \xx_N$ from the statistical
259: parameter space according to the PDF $\ffunc(\xx)$ and
260: construct the {loss} estimator
261: \begin{equation} \Loss_N = \frac{1}{N} \sum_{i=1}^N
262: \indi
263: \label{eqn:LossN-estim}
264: \end{equation}
265: With the MC method, full circuit simulations (transistor-level SPICE
266: simulations of the whole circuit containing the paths under
267: consideration) must be performed for each sample point, $\aPP_i$, in
268: order to compute $\circDelayi$ and determine whether $\indi=1$ or $0$.
269: The MC method is widely used as a golden reference in the literature
270: in assessing the accuracy and efficiency of timing yield estimation
271: techniques.  However, it is generally believed that it can not be used
272: in practice for estimating timing yield as it requires too many costly
273: full circuit simulations for acceptable accuracy, even though there
274: are some arguments to the contrary~\cite{SchefferTAU2004}. In the rest of
275: this paper, the {loss} estimator in (\ref{eqn:LossN-estim}) is
276: referred to as the standard MC (STD-MC) estimator.
277: 
278: {Loss} can also be estimated based on the SLE formalism,
279: without performing any full circuit simulations.  The delay of a
280: circuit can be computed analytically based on the SLE formalism as
281: follows
282: \begin{equation}
283:   \circDelayLE = max_{\aPath \in \CritPaths} \:\:
284:   \pathDelayLE{\aPath}
285:   \label{eqn:dcLE}
286: \end{equation}
287: where $\pathDelayLE{\aPath}$ is evaluated using the SLE formula in
288: (\ref{eqn:pathDelay1}) and using $\slev$ or $\slevv$.  We define a new
289: indicator random variable $\indSLE$, which takes the value $1$ if the
290: delay of a circuit computed analytically using the SLE equations
291: exceeds the target delay $\timeConstr$, i.e., $\indSLEi$ is $1$ if
292: $\circDelayLEi > \timeConstr$, and $0$ otherwise. The {loss} estimator
293: based on this new indicator variable takes the form
294: \begin{equation}
295: \lLE_N = \frac{1}{N} \sum_{i=1}^N \indSLEi
296: \label{eqn:lossLE-mc}
297: \end{equation}
298: In computing $\lLE_N$ above, no full circuit simulations are
299: performed. Only simple evaluations of the SLE delay formulas are
300: needed, based on pre-characterizations of
301: $\refinvdelX$, $\parasX$ and $\logeffortX$) in \eq{SLE-Eq-v1} and
302: \eq{SLE-Eq-v2}. In contrast, the {loss} estimator in
303: (\ref{eqn:LossN-estim}) requires $N$ full circuit simulations, one
304: for every sample. The loss estimator in (\ref{eqn:lossLE-mc}) will be
305: referred to as the {SLE-MC estimator} in the rest of this paper.
306: 
307: The estimation of {loss} based on the STD-MC estimator in
308: (\ref{eqn:LossN-estim}) will obviously be more accurate than the one
309: based on the SLE-MC estimator in (\ref{eqn:lossLE-mc}), but much more
310: costly. We use the cheap SLE-MC estimator not by itself for yield
311: estimation, by in a novel approach to constructing an IS-based {loss}
312: estimator with reduced variance.  This approach is called ISLE
313: (Importance Sampling based on Stochastic Logical Effort) and provides
314: the same accuracy as the STD-MC estimator but at a cost of much fewer
315: number of full circuit simulations.
316: