Appnote HighCompression
Appnote HighCompression
A P P N O T E S SM
Table of Contents
Achieving High Compression ........................................................................................................................ 1
Analyze_compression............................................................................................................................... 2
Compression Advisor................................................................................................................................ 2
Design Characteristics that can Hurt Compression ...................................................................................... 3
False and multicycle paths ....................................................................................................................... 3
Specific Guidelines for Higher Compression ................................................................................................ 3
Encoding Capacity .................................................................................................................................... 3
Low power settings ............................................................................................................................... 3
Clustering.............................................................................................................................................. 3
Highly specified bits .............................................................................................................................. 4
Compaction ............................................................................................................................................... 4
X-bounding ........................................................................................................................................... 4
Memories .............................................................................................................................................. 4
False and multicycle paths ................................................................................................................... 5
Additional Enhancements for Higher Compression ...................................................................................... 5
EDT Test Points ........................................................................................................................................ 5
Logic BIST ................................................................................................................................................ 5
Hierarchical DFT ....................................................................................................................................... 5
Broadcast of input channels ................................................................................................................. 5
Dual mode compression ........................................................................................................................... 5
Impact of very high compression ratios ........................................................................................................ 6
Potential for routing congestion ................................................................................................................ 6
Logic size .................................................................................................................................................. 6
Performance ............................................................................................................................................. 6
Analyze_compression
Analyze_compression is a command that can be used on any scan inserted design to report the
maximum chain to channel ratio before you start to lose coverage. It reports the compression ratio limit
but this limit is rarely the optimal confi
configuration that results in the best compression.
Compression Advisor
One utility that is very helpful in determining the best compression results possible is the
compression_advisor utility. It is available in circuits and solutions which the application engineers have
access to. The utility will report the best compression configuration and results based on a design and
channel or chain constraints that are defined by the user. T This is a logical first starting point when
assessing a designs potential compression. It will automatically make tradeoffs of how to most efficiently
allocate channel pins available to input and output channels. Often the best compression configuration
has asymmetric input to output channels.
The higher the number of internal chains, the shorter the chains and the less test time per pattern.
However, at some point there are diminishing returns with shortening the scan chains because we include
additional
nal bits with each pattern for low power controls (if used), x masking, and initialization.
Compression_advisor utility takes this into consideration when selecting the optimal compression
configuration.
The x_statistics report shown below is a good method of finding the SDC definitions which are hurting
ATPG results the most.
Encoding Capacity
The TestKompress decompressor has a ring generator and XOR cloud. They decode the incoming serial
data from the tester scan channels and convert it into the specified bits in the scan chains needed to
detect targeted faults. The other non-specified bits are produced as random values by the decompressor.
Encoding capacity is the the amount of specified bits that can be provided through the decompressor.
Some characteristics that can hinder encoding capacity or require too many specified bits are described
below.
Clustering
If there are too many specified bits that are clustered together in the scan scan chain positions then it
might not be possible to provide those bits through the decompressor. This situation can occur due to
condition bits or enable bits being placed in the same position of many scan chains. If this occurs then
you will see a message during ATPG about clustering and the amount of impact that it is having on test
coverage.
The report_edt_abort_analysis command can identify the cause of clusting and the scan chain cells that
cause the most conflicts as shown below.
Compaction
The TestKompress compactor is a series of XOR gates that combine the internal chains into few output
channels. Often compression_advisor will report a channel configuration that has a lot fewer channel
outputs than inputs for the optimal compression configuration. However, if there are many internal X
states then more output channels would be needed.
X-bounding
The higher the number of X states, the bigger impact on compression. Unknown or X states are reported
as E5 DRCs. One method of removing X states is to perform x-bounding. This is typically used for logic
BIST but is available for ATPG purposes as well using a LogicBIST or ScanPro license. X-bounding is a
form of test logic insertion to prevent X states from propogating through the circuit. It will help improve
the compression results in designs with many X states.
Memories
Memories can be a source of X states. To simplify ATPG and improve the compression results,
memories can be bypassed during test. This will prevent the X states from propagating from the memory
outputs. Note that during at-speed tests it is often desireable to model memories and test through them.
Logic BIST
Often Logic BIST is viewed as a method of high compression. It can normally run at very high
frequencies since the input and output data is produced internally and isnt slowed down by tester
capabilities or IO pad frequency limitations.
Hierarchical DFT
Hierarchical DFT is the allocation of the full channel bandwidth to one block or group of blocks at a time.
Often it is utilized for large designs since the patterns can be completed at the block level and retargeted
or merged at the top with other blocks. It requires adding wrapper chains to the hierarchical blocks so
they can be isolated during test. Moving ATPG to the block level often results in 10x faster ATPG run
time and 10x smaller compute resources. However, hierarchical DFT also often produces 2x to 3x better
compression results (fewer test cycles) than running flat ATPG.
It is also possible to broadcast input channels to non-identical blocks. The most efficient test of non-
identical blocks is usually hierarchical DFT but if that isnt available then channel sharing for non-identical
blocks will provide an average of 2x better compression compared to modular TestKompress.
One usage of dual mode in this manner is for multisite test. Some designs can use 1000x or 2000x
compression ratio with less than 2% coverage loss for multisite wafer test with just one scan channel.
Then later during packaged part test run a different compression configuration with perhaps 12 channels
for full coverage and a compression in the 100x range.
By default, TestKompress will recognize where there are more than 500 chains being fed by a
decompressor. In such a case, TestKompress automatically will segment the EDT decompressor logic
into instances that feed groups of 500 or fewer chains. As a result, these segmented decompressor
instances will get placed in the vicinity of the chains they connect to and avoid routing issues. There are
only a few signals that pass from one decompressor segment to another.
Logic size
The number of levels in the spatial compactor is logarithmic of the number of scan chains. If there are 200
chains going to a compactor, there will be about 8 levels of logic. The area overhead for the compactor
doesnt change much if you have two compactors each of size 100 inputs (with 1 outputs) versus one of
size 200 inputs (with 1 output).
Performance
As the numbers of levels in the spatial compactor varies in the log-scale, the depth is not very high. Given
that by default we register the output of the compactor today, there is very little impact on performance.
With chains/channels ratio of 200-300 there is no impact on the shift speed.
If shift speed is a concern, one can always use compactor pipelining. And for long wires between the
channel pins at the EDT IP interface and the chip-level pins, one can always use channel pipelining.