Why Masking Is Needed: Scan Chain Masking in The Acompactor
Why Masking Is Needed: Scan Chain Masking in The Acompactor
Why Masking Is Needed: Scan Chain Masking in The Acompactor
This section describes how and why scan chain masking is used in the compactor to ensure
accurate scan chain observations.
Why Masking is Needed
To facilitate compression, the tool inserts a compactor between the scan chain outputs and the
scan channel outputs. In this circuitry, one or more stages of XOR gates compact the response
from several chains into each channel output. Scan chains compacted into the same scan
channel are said to be in the same compactor group.
One common problem with different compactor strategies is handling of Xs (unknown values).
Scan cells can capture X values from un modeled blocks, memories, non-scan cells, and so forth.
Assume two scan chains are compacted into one channel. An X captured in Chain 1 will then
block the corresponding cell in Chain 2. If this X occurs in Chain 1 for all patterns, the value in
the corresponding cell in Chain 2 will never be measured. This is illustrated in Figure 9-32,
where the row in the middle shows the values measured on the channel output.
Figure 9-34 shows how scan chain masking would work for the example of the preceding
section. For one pattern, only the values of Chain 2 are measured on the scan channel output.
This way, the Xs in Chain 1 will not block values in Chain 2. Similar patterns would then also
be produced where Chain 2 is disabled while the values of Chain 1 are observed on the scan
channel output.
Special Topics
Figure 9-34. Example of Scan Chain Masking
When using scan chain masking, the tool records the actual measured value for each cell in the
unmasked, selected scan chain in a compactor group. The tool masks the rest of the scan chains
in the group, which means the tool changes the values to all Xs. With masking, the capture data
for Chain 1 and Chain 2 that you would see in the ASCII pattern file would look similar to
Figure 9-35, assuming Chain 2 is to be observed and Chain 1 is masked. The values the tool
changed to X for the masked chain are shown in red.
Figure 9-35. Handling of Scan Chain Masking
Following is part of the transcript from a pattern generation run for a simple design where
masked patterns were used to improve test coverage. The design has three scan chains, each
containing three scan cells. One of the scan chain pins is shared with a functional pin, contrary
to recommended practice, in order to illustrate the negative impact such sharing has on test
coverage.
A mask code (prepended with a decoder mode bit) is generated with each test pattern to
determine which scan chains are masked or observed. The Xpress compactor determines which
chains to observe or mask using the mask code as follows:
1. Each test pattern is loaded into the decompressor through a mask shift register on the
input channel.
2. The mask code is appended (சேர்க்கப்பட்டிருக்கும்) to each test pattern and remains in the
mask shift register once the test pattern is completely loaded into the decompressor.
3. The mask code is then parallel-loaded into the mask hold register.
where the decoder mode bit determines whether the basic decoder or the XOR decoder is used
on the mask code.
o The basic decoder selects only one scan chain per compactor. The basic decoder is
selected when there is a very high rate of X values during scan testing or during
chain test to allow failing chains to be fully observed and easy to diagnose.
o The XOR decoder masks or observes multiple scan chains per compactor, depending
on the mask code. For example, if the mask code is all 1s, then all the scan chains are
observed.
4. The decoder output is shifted through a multiplexer, and each bit drives one input on the
masking AND gates in the compactor to either disable or enable the output, depending
on the decoder mode and bit value