Optimizing compression in scanbased ATPG DFT implementations
READ OTHER MARCH ARTICLES: Contents, March 2007 ALSO SEE: Limits of test time reduction by Chris Allsup June 2006 
In the 1990s, Carnegie Mellon researchers created a comprehensive scantest cost model that demonstrated how design for test (DFT) contributes to profitability (Ref. 1). With scan compression in wide use, it is time for a new economic model, consistent with the earlier framework but focused on scan compression, not just scan. To that end, I have developed an economic theory (Ref. 2) that unifies test data reduction and time reduction concepts and considers the impact of test pattern inflation.
I have written in these pages previously (Ref. 3) on test application time reduction (TATR), which along with test data volume reduction (TDVR) has diminishing returns as compression increases (Ref. 4). TATR is an asymptotic function. For a scancompression factor of x (assuming the scan chains are well balanced with no patterninflation issues), TATR can be expressed as:
TATR = 100% • (1  1/x)
Figure 1. An optimal compression level, λ, minimizes test cost. x_{C} is the compression level needed to fit a complete scan ATPG pattern set, P_{C}, into the fixed amount of tester memory. TATR denotes the economic benefits of increasing compression up to λ. 
Therefore, at 50X compression, you can expect at most a 98% test time reduction: 100% (1 – 1/50) = 98%. And at 100X compression, you can expect at most a 99% test time reduction: 100% • (1 – 1/100) = 99%.
An optimal compression level, λ, minimizes the total costs of test and, consequently, maximizes profits. Above this optimal compression level, the total costs of test gradually increase again. In Figure 1, the xaxis represents the ratio of the number of internal scan chains to the number of external scan chains.
In this article, I address the cost impact, in terms of dollars per good die, on digitalscan tests that employ automatic test pattern generation (ATPG), with respect to the following major cost components of test:

Cost of field escapes (C_{ESC}) is the cost of defective ICs that are incorrectly identified as good parts, so they “escape” to the field. (You can also consider the cost of escapes going from, say, wafer probe to systemlevel test). If your pattern set doesn’t fit within tester memory, you can use compression to significantly reduce this cost.

Test execution cost (C_{EXEC}) is the cost directly related to the test cycle count and the tester time spent running ATPG patterns. Compression can decrease this cost, although not always.

Silicon area overhead cost (C_{SILICON}) consists of the cost of the scancompression circuits and interconnects in your design. This cost is proportional to the amount of compression in a design.
In addition, there are two costs that are less affected by compression:

Cost of test preparation (C_{PREP}) is the engineering, computeresource, and tool costs related to preparing ATPG test patterns. Establishing a meaningful relationship between the scancompression level and C_{PREP} is difficult. For automated scan compression, there is not a large impact on C_{PREP} in going from, say, 10X compression to 50X compression.

Cost to diagnose failed parts (C_{DIAG}) can be significant, especially for highly compressed designs that you debug manually. But as with C_{PREP}, C_{DIAG} is difficult to quantify in terms of compression level. Because automated tools are getting better at diagnosing compressed designs, this cost is relatively insensitive to compression level.
Consequently, the only reason to implement scan compression is to reduce C_{ESC} and C_{EXEC}, but you must keep in mind that any increase in compression also increases the expense of C_{SILICON}.
TDVR and TATR revisited
TDVR can only reduce the cost of escapes, and TATR can only reduce test execution cost. To understand why, consider a complete highfaultcoverage ATPG pattern set. Call the number of patterns P_{C}, in which “C” denotes “complete.” Also assume that you can’t fit the entire pattern set into the tester memory, M, allocated for ATPG stimulus and response patterns, so you must use compression.
To load a subset of these patterns into tester memory, you need to compress by exactly the amount of test data volume corresponding to the pattern level, P, divided by M. This is just the ratio of P to P_{0}, the number of patterns you can load into memory without compression:
where F is the number of scan flops in the design. The coefficient 3 represents one scan stimulus bit, one response bit, and one mask or measure bit to determine if the response bit should be compared or not. For each unit increase in compression, you can load P_{0}additional patterns from the complete set into memory.
Somewhere between “no compression” and a high level of compression lies x_{C}, which represents the level needed to fit the complete scan ATPG pattern set, P_{C}, into the fixed amount of tester memory. The “TDVR phase” is defined as the range of compression that extends up to this compression level, x_{C} = P_{C}/P_{0}. Increasing compression above this level has no economic benefit in terms of reducing the cost of escapes, because there are no additional patterns being loaded to improve quality.
Above x_{C}, however, you do have potential cost savings from TATR, because the scanchain lengths continue to decrease with higher compression. You can define compression higher than x_{C} as the “TATR phase.”
In this phase, you can continue increasing compression up to λ, above which the area overhead cost of compression exceeds the benefit of decreasing test application time. The maximum TATR that is economically viable is the ratio of λ to x_{C}.
In Figure 1, the TDVR phase extends to 4X compression. The TATR phase starts at 4X, and the maximum costeffective TATR is at 20X, but this doesn’t imply a 20X, or even a 16X, test time reduction. Instead, you get 5X, or an 80%, reduction in test time, which works out to be exactly the ratio of the test cycle count at 20X and at 4X compression. The graph indicates that compression decreases the total costs of test by about 95%, with all but 4% of this reduction occurring in the TDVR phase.
To understand the disparity in cost reduction between TDVR and TATR, I’ll now examine the impact that compression has on the three component costs of test that are highly sensitive to compression level.
Impact of compression on cost of escapes
The following exponential approximates the convergence of fault coverage vs. pattern count using an ATPG tool, especially in the highcoverage region:
where f_{C} represents the maximum measured fault coverage of the complete pattern set, P_{C}, and Δ is the difference between f_{C} and the maximum predicted fault coverage. The smaller Δ is, the larger the exponential constant, and the faster the convergence.
a)  
b)  
Figure 2. a) If λ is greater than x_{C}, then you know there are cost savings to be gained by increasing compression to reduce tester time. b) Alternatively, if you find that λ is less than x_{C}, you know that the most costeffective compression strategy is to simply truncate the patterns. 
Recall that compression in the TDVR phase is just the ratio of the pattern count, P, to the number of patterns you can load into tester memory without compression, P_{0}. Therefore, if you substitute xP_{0} for P in the exponential formula, you can describe the fault coverage as a function of compression, and the exponential constant is simply scaled by P_{0}.
Once you have fault coverage as a function of compression, you can describe the escape rate using the Williams and Brown formula (Ref. 5) that expresses escape rate as a function of fault coverage and yield. The cost of escapes, at the least, will be the cost to manufacture and test these escapes.
Keep in mind, however, that the cost of escapes can actually be higher. The Carnegie Mellon cost model uses a parameter α_{ESC} to account for this escapemultiplier effect at any given stage of the test process. The higher the multiplier, the greater the cost of escapes across all compression levels.
As you increase compression, the cost of escapes drops off logarithmically as the additional patterns loaded into tester memory detect more faults, until all the patterns are loaded at x_{C}. Above x_{C}, the TDVR phase ends, and there is no further decrease in the cost of escapes; the curve is flat, as illustrated in Figure 2a.
Impact of compression on cost of test execution
Test execution time is constant during the TDVR phase, because every unit increase in compression adds another P_{0} number of patterns that must be tested, which exactly offsets any potential test time reduction. This test time is approximately T_{0}, the time it takes to execute all P_{0} patterns on the tester without compression:
where C is the number of scan I/O channels (or external scan chains) and f_{TEST} is the tester scanshift frequency. Above x_{C}, tester time declines by a factor of x_{C}/x, as shown in Figure 2a.
Impact of compression on the silicon area overhead cost
Independent of the compression phase, the silicon area cost will continue to increase as you increase the number of scan chains for compression. A simple linear formula that represents the circuit die size as a function of compression (Ref. 3) can model this increase. You can measure the slope, γ, of this area increase empirically or use a ratioofgates approach, given by:
where g is the number of compressioncircuit gates added per scan chain, G_{0} is the total number of gates in the design without compression, and C is again the number of scan I/O channels.
It’s useful to introduce a secondorder areascaling factor, ζ, to model a nonlinear area increase that can occur with higher compression. Even if the added gates per scan chain remains constant, wirerouting congestion at higher scan levels could increase the silicon area more than the linear formula predicts.
Note that higher values of γ and ζ tend to work against compression, lowering l. The silicon cost is displayed in Figure 2a. As you approach 100X compression, the cost increases by about two orders of magnitude, as expected.
Finding the optimal compression level
You can apply this methodology and these equations to find the optimal compression level. Start by running ATPG to measure the fault coverage as a function of pattern count. Next, derive the exponential constant, η, to curvefit f(P) in equation 2 to your data using appropriate values of Δ. Finally, calculate the optimal compression level, λ, that minimizes the total cost:
C_{TEST} = C_{ESC}+ C_{EXEC}+ C_{SILICON}
Once you know the optimal compression level, λ, you have insight into implementing the most costeffective compression strategy. If you calculate λ and it is identical to x_{C}, then you compress all the ATPG patterns knowing you have minimized the costs of test.
If you estimate that λ is greater than x_{C}, then you know there are cost savings to be gained by increasing compression to reduce tester time. Use the following equation to calculate λ exactly (Table 1 defines the parameters):
Say you need to apply a certain level of compression x_{C}= 4 to fit the complete pattern set into tester memory and your calculated value of λ is 20, greater than x_{C}. You’ll want to increase compression to x_{C} = 20 to take full advantage of more cost savings from test time reduction. λ occurs where the cost derivatives for the silicon area overhead and the test execution time are equal. Note that the fault coverage and the escape multiplier don’t even factor in, because the cost of escapes is flat during the TATR phase and has no impact on λ when it is greater than x_{C}.
Alternatively, if you estimate that λ is less than x_{C}, you can calculate it as follows:
In this case, you truncate the pattern set. In this situation (Figure 2b), all patterns, P_{C}, can be loaded into tester memory by compressing to 103X. But compressing more than λ = 47 just increases costs, so there is no economic benefit gained by compressing any higher.
λ occurs where the cost derivatives for silicon area overhead and escapes are equal. Although the cost of escapes is sensitive to the maximum fault coverage, f_{C}, the cost derivative always occurs in the highcoverage region and is therefore insensitive to f_{C} as long as fault coverage is high. In this case, λ is nearly independent of f_{C}.
Pattern inflation
Figure 3. For any pattern level, the compression level increases relative to the baseline condition without pattern inflation. 
So far, I have ignored the phenomenon of pattern inflation caused by compression. But you really can’t disregard it, because the higher the compression level, the more patterns that ATPG produces. Although linearity of pattern inflation is not a strict requirement for this economic model, inhouse experiments on many designs have revealed that pattern inflation behaves linearly across a wide range of compression levels. You can describe the effects of pattern inflation using a parameter, ε, that represents the fractional increase in pattern count per unit increase in compression.
First, examine the effect pattern inflation has on TDVR. Remember that in the TDVR phase, the compression level is just the ratio of the number of patterns, P, that fit in memory at this level to the number of patterns, P_{0}, that fit in memory without compression. It follows that for any pattern level, the compression level increases relative to the baseline condition without pattern inflation in the manner displayed in Figure 3. Essentially, more compression is needed to load the same amount of patterns into tester memory than before.
This implies that x_{C} also increases with pattern inflation. For a design with λ in the TATR phase, sufficiently high ε can increase x_{C} above the predicted value of λ in equation 5. The result is that test time reduction is no longer cost effective, and you will find it more beneficial to compress to the level x_{C} or less. To determine how much to compress, solve the following formula for x:
where the righthand side represents equation 6, the formula for λ ≤ x_{C} that assumes zero pattern inflation. The magnitude of λ in the TDVR phase will be higher when you account for pattern inflation than that predicted by equation 6. Note that it’s easy to solve equation 7 by obtaining the intersection of the curves corresponding to each term.
Now, examine the effect pattern inflation has on TATR. Pattern inflation increases the TDVR phase. The effect of an increase in x_{C}, however, is completely offset by a corresponding decrease in the rate (per unit increase in compression) of test time reduction due to the patterninflation term, 1 + εx. Therefore, while pattern inflation increases the execution cost, there is no net change in the magnitude of λ.
You can thus use simple criteria to decide if you even need to account for pattern inflation to determine the optimal level of compression. If λ is much larger than x_{C} with no pattern inflation, then there is a strong likelihood that it will still be larger than x_{C} even after pattern inflation is factored in. Equivalently,
If this condition is true, you need not measure ε. If the condition is false, then you need to extract the value of ε to find λ using equation 7. To do this, run ATPG on your design with several different compression levels. Figure 4 plots pattern count vs. compression for an industrial design implemented at five different compression levels, where each point corresponds to the same faultcoverage level.
Figure 4. This graph plots pattern count vs. compression for an industrial design implemented at five different compression levels, where each point corresponds to the same fault coverage level. Once you calculate the leastsquares curve fit, ε is just the ratio of the slope of the line to its yintercept. 
Once you calculate the leastsquares curve fit, ε is the ratio of the line’s slope to its yintercept. Subsequently, use the yintercept in the formulas instead of P_{C}.
In summary, most savings from compression arise from either TDVR or TATR. If you must compress your patterns to load them into memory, then TDVR will be the dominant factor contributing to savings and you can use even more compression to derive incremental savings from test time reduction. Conversely, if most of your patterns fit into memory without compression, then TATR savings can be significant, especially if you have few scan I/O channels.
But the siliconareaoverhead cost places a limit on the full benefits of compression. For any design, an optimal compression level, λ, maximizes profits by minimizing test costs. The optimal compression level is unique for each product and is a function of process, design, DFT and compression architecture, tester configuration, and cost infrastructure. Table 1 summarizes how these parameters influence x_{C} and λ. You can use this table as a convenient guide on your way to discovering the most costeffective compression strategy.
Table 1. Parameters affecting optimal compression level
Compression  x _{C}  λ &x_{C}  λ >x_{C} 
Process  Y_{0}  Y_{0}  
Design  F  F, A_{0}  F, A_{0} 
DFT  P_{C}, ε  P_{C}, ε, γ, ζ, η, f_{C}  P_{C}, γ, ζ, C 
Tester  M  M  f_{TEST} 
Const infrastructure  α_{ESC}  C_{S}, R_{ACT}  
Strategy  Truncate patterns  Reduce test time  
(Parameters in red have a positive correlation; those in blue have a negative correlation.)  
α_{ESC}  Escaperate multiplier  
γ  Scan compression areascaling factor  
ε  Pattern inflation factor for compression  
ζ  Secondorder area scaling coefficient  
η  Exponential constant affecting faultcoverage convergence  
A_{0}  Die area without compression  
C  Number of external scan chains or scan I/O pairs  
C_{S}  Siliconarea cost multiplier  
F  Number of scan flip flops  
f_{C}  Fault coverage of complete pattern set  
f_{TEST}  Tester scanclock frequency  
M  Memory allocated for stimulus/response patterns  
P_{C}  Scan ATPG pattern count before inflation  
R_{ACT}  Cost of active tester  
Y_{0}  Manufacturing yield 
REFERENCES 

Simple tester checks Christmastree lights
Move ICs from defects per million to defects per billion
Eye Diagram Basics: Reading and applying eye diagrams
Try an oscilloscope for under $200
RF energy: Measurements improve cooking, lighting, and more
Sensor basics: Types, functions and applications
How to Measure Electrical Power
Almost Done
Please confirm the information below before signing in.
{* #socialRegistrationForm *} {* firstName *} {* lastName *} {* displayName *} {* emailAddress *} {* addressCountry *} {* companyName *} {* ednembJobfunction *} {* jobFunctionOther *} {* ednembIndustry *} {* industryOther *}