• No results found

Computing critical process perturbations

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 the

corresponding 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;

Related documents