Wafer-Probe and Assembled-Package Co-optimization to Minimize Overall Test Cost
2.6. Test algorithm
2.6.1. Computing critical process perturbations
For given process statistics, N process vectors, each consisting of different assignments
of the n process parameters, [p1, p2, … pn], can be generated using statistical sampling.
For this purpose, the process parameters are varied around a mean value, with a specific
standard deviation, and the process and circuit parameter vectors are generated in such a
way that they cover the whole process space within the standard deviation limits. These
process vectors (that impact the DUT’s performance) are applied to the DUT, and
corresponding sets of m specification values of interest constituting the specification
vector [s1, s2 … sm] are measured. Hence, N specification vectors are generated,
corresponding to each of the N process vectors.
Once the process parameter and specification vectors are generated, nonlinear
modeling using multivariate adaptive regression splines (MARS) [19], explained in
models generated, critical process parameters are identified following a greedy search
algorithm, as explained in Section 2.6.1.2.
The relation between the responses of the DUT and the specifications is nonlinear.
Using a simpler modeling option, e.g., Taylor series expansion, for constructing the
models may not capture all the nonlinear relationships between the responses and the
specifications. For the above-mentioned reason, MARS was used for modeling.
2.6.1.1. MARS model generation
MARS are used for developing the nonlinear model that relates the process parameters
to the DUT’s test specifications. The MARS algorithm mainly depends on the selection
of a set of basis functions and a set of coefficient values corresponding to each basis
function to construct the nonlinear model. The model can also be visualized as a
weighted sum of basis functions from the set of basis functions that spans all values of
each of the independent variables. MARS use two-sided truncated functions of the form
(t-x)+ and (x-t)+ as basis functions for linear and nonlinear relationships between the
dependent and independent variables, t being the knot positions. The basis function has
the form as shown in (1).
−
>
=
−
otherwise
t
x
t
x
t
x
0
)
(
(1)The basis functions together with the model parameters are combined to generate the
model, which can predict the dependent variables from the independent variable values.
The MARS model for a dependent variable y, independent variable x, and M basis
functions, is summarized in (2).
∑
= + = = M m m k v km mH x x f y 1 ) , ( 0 ( ) ) ( β β (2)where the summation is over the M independent variables, and β0 and βm are parameters of the model (along with the knots t for each basis function, which are also
estimated from the independent data). The function H is defined as
∏
= = K k km m k v km x h H 1 ) , ( ) ( (3)where xv(k,m) is the kth independent variable of the mth product. During the forward stepwise placement, basis functions are constantly added to the model. After this
implementation, a backward procedure is applied when the basis functions associated
with the smallest increase in the least squares fit are removed, producing the final model.
At the same time, the generalized cross validation error (GCVE), which is a measure of
goodness of fit, is computed to take into account the residual error and the model
complexity. The above equation can be further decomposed into the sum of linear, square
products, cubic products, and so forth. Introducing a larger or smaller number of basis
functions can also change the accuracy. Changing the order of products can change the
degree of nonlinearity of the model.
2.6.1.2. Selection of critical process parameters
As described above, a nonlinear mapping from the n-dimensional process vector space
(∆p) to the m-dimensional specification vector space (∆s) is constructed using MARS, as shown in (4).
( ) ( )p
p
s
=
Ψ
∆
⋅
∆
∆
(4)A set of critical process parameters is identified using a greedy algorithm-based search
method. First, one set process vector and the corresponding specification vector is
( )
∆s ′ = Ψ ′(
∆p′) ( )
⋅ ∆p ′ (5) N such models are created, each time eliminating one process vector and thecorresponding specification vector. Each model is then used to predict the eliminated
specification vector by using the corresponding eliminated process vector, used as the
input to the model. Next, the error between the estimated and the actual specification
vector is computed. The process vector, the exclusion of which produces the largest error,
is considered the most critical process parameter vector. The eliminated process vectors,
for which the corresponding model produces error values above a certain threshold, are
selected as “critical vectors.” The algorithm is shown in Figure 2.6.
function Selection(P,S,k) P = Process matrix (N X p);
S = Specification matrix (N X s);
p = Number of process and circuit parameters; s = Number of specifications;
N = Total number of process vectors; k = Number of critical process vectors;
for i = 1,2 … s { Svalidation = S(i,:); Ptemp = P; Stemp = S; for x = N, (N-1) … (N-k+1) { for j = 1,2 … x { Pvalidation = Ptemp(j,:); Svalidation = S(j,:);
Preduced = Ptemp - Pvalidation;
Sreduced = Stemp - Svalidation;
Mj = BuildMARSModel(Preduced, Sreduced);
Error(j) = Svalidation – EvalMARSModel(Mj,Pvalidation);
}
Index = maxIndex(Error); /*returns index for maximum error */
Append(CriticalProc(i), Ptemp(Index));
Ptemp = Ptemp – CriticalProc(i);
} }
return CriticalProc;