Test Compression – VLSI Tutorials
Test Compression – VLSI Tutorials
VLSI Tutorials
Test Compression
The test data volume increases exponentially with increase in circuit size. For
large circuits, the growing test data volume causes a significant increase in test
cost because of much longer test time and elevated tester memory requirements
to store the test data. Therefore test compression techniques are essential to
reduce the test cost by reducing the Scan patterns while trying to keep the same
test quality.
Test Data Volume ≈ Number of Scan Cells in all the Scan Chains × Scan Patterns
https://vlsitutorials.com/test-compression-edt/ 1/10
22/02/2025, 17:05 Test Compression – VLSI Tutorials
https://vlsitutorials.com/test-compression-edt/ 2/10
22/02/2025, 17:05 Test Compression – VLSI Tutorials
Figure 2: A typical implementation with test compression logic (Note: N2 < N1 and M2 > M1)
One of the most common hardware test compression technique is EDT. Tessent
TestKompress is the tool that can generate the decompressor and compactor logic
at the RTL level. As shown in Figure 2, the decompressor drives the scan chain
inputs and the compactor connects from the scan chain outputs.
https://vlsitutorials.com/test-compression-edt/ 3/10
22/02/2025, 17:05 Test Compression – VLSI Tutorials
But EDT processes the desired bits of the ATPG pattern and determines how to
load them through the decompressor in the form of EDT pattern. After
processing, the resulting compressed pattern (or EDT pattern) is loaded through
the decompressor, and the specified bits of the ATPG pattern get loaded into its
respective scan flops. A side effect of the decompressor is that all the unspecified
bits get loaded with random data, this side effect is in fact the reason aiding the
compression. Thus test volume decreases by not having to store these unspecified
bits and many of tester cycles are saved by not having to specifically load random
data.
Decompressor
We have already discussed about the Ring LFSR and its advantages here. Now we
will discuss about the advantages of external chains in LFSR. Consider a simple
LFSR with external inputs as shown in Figure 4.
https://vlsitutorials.com/test-compression-edt/ 4/10
22/02/2025, 17:05 Test Compression – VLSI Tutorials
https://vlsitutorials.com/test-compression-edt/ 5/10
22/02/2025, 17:05 Test Compression – VLSI Tutorials
First ATPG is run to determine the value of S1, S2, . . , S12, then solve the linear
equations (similar to How to find the seed of a LFSR discussed earlier).
Note: In the first chain (having flops S1 S5 and S9), S1 s5 and s9 values will be loaded to the chain
serially such that S1 will be loaded first to the chain in the 1st clock cycle and then will be shifted to
the right in the next clock cycle and simultaneously S5 will be loaded to the chain. This continues for
3 clock cycles till all the values are loaded at its required position. And in a similar way the other 3
chains are loaded.
S9 = S6 ⊕ E5
S1 = Q1 ⊕ E1 S5 = Q2 ⊕ E3
= Q0 ⊕ Q3 ⊕ E5
https://vlsitutorials.com/test-compression-edt/ 6/10
22/02/2025, 17:05 Test Compression – VLSI Tutorials
S6 = S3 S10 = S7
S2 = Q2
= Q0 ⊕ Q3 = Q0 ⊕ E2 ⊕ Q1 ⊕ E1
S11 = S5 ⊕ S8
S7 = S4 ⊕ S1
S3 = Q0 ⊕ Q3 = Q2 ⊕ E3 ⊕ Q1 ⊕ E1 ⊕
= Q0 ⊕ E2 ⊕ Q1 ⊕ E1
E4
S8 = S1 ⊕ E4 S12 = S5 ⊕ E6
S4 = Q0 ⊕ E2
= Q1 ⊕ E1 ⊕ E4 = Q2 ⊕ E3 ⊕ E6
Thus there are 12 equations and 10 variables (where variables are – LFSR seed
value and external chain inputs).
Suppose the external chains are not there in the figure, then in the absence of
External Chains –
S9 = S6
S1 = Q1 S5 = Q2
= Q0 ⊕ Q3
S6 = S3 S10 = S7
S2 = Q2
= Q0 ⊕ Q3 = Q0 ⊕ Q1
S7 = S4 ⊕ S1 S11 = S5 ⊕ S8
S3 = Q0 ⊕ Q3
= Q0 ⊕ Q1 = Q2 ⊕ Q1
S8 = S1 S12 = S5
S4 = Q0
= Q1 = Q2
Thus there are 12 equations and 4 variables (where variables are – LFSR seed
value).
So it is evident that the external chains introduce more variables; thus probability
of solving the equations improve, implies better fault coverage as we have a better
chance of solving a set of equations targeting any fault.
Compactor
https://vlsitutorials.com/test-compression-edt/ 7/10
22/02/2025, 17:05 Test Compression – VLSI Tutorials
1. Spatial compactor [reduces the number of output pins compared to input pins]
2. Time compactor [reduces the length of the output bit stream compared to the
length of input bit stream]
EDT uses the spatial compactor which consists of group of XOR trees. It allows
multiple scan chains to be observed at the same time on a given scan output
channel. Several scan chains are XOR-combined into individual scan channels as
shown below –
https://vlsitutorials.com/test-compression-edt/ 8/10
22/02/2025, 17:05 Test Compression – VLSI Tutorials
Figure 5: A typical spatial compactor used for test response compaction in EDT
Scan cells can capture unknown or’X’ values from black boxes, non-scan cells,
false paths, etc. Let’s assume we have two scan chains that are compacted into
one scan channel using one XOR gate, as shown below. An X captured in one of the
chain will then block the corresponding cell in other chain, resulting in loss of
observability.
https://vlsitutorials.com/test-compression-edt/ 9/10
22/02/2025, 17:05 Test Compression – VLSI Tutorials
Note: Cases in which a fault is always aliased and requires a masking pattern to detect it are rare.
To deal with these issues, a mask controller is also found as a part of compactor
logic. This mask controller along with masking logic at the scan chain output can
selectively mask scan chains based on few bits (called mask code) at the end of the
pattern shifted-in, that don’t make it to the decompressor.
https://vlsitutorials.com/test-compression-edt/ 10/10