^{1}

^{2}

^{1}

^{1}

^{2}

The run length based coding schemes have been very effective for the test data compression in case of current generation SoCs with a large number of IP cores. The first part of paper presents a survey of the run length based codes. The data compression of any partially specified test data depends upon how the unspecified bits are filled with 1s and 0s. In the second part of the paper, the five different approaches for “don't care” bit filling based on nature of runs are proposed to predict the maximum compression based on entropy. Here the various run length based schemes are compared with maximum data compression limit based on entropy bounds. The actual compressions claimed by the authors are also compared. For various ISCAS circuits, it has been shown that when the X filling is done considering runs of zeros followed by one as well as runs of ones followed by zero (i.e., Extended FDR), it provides the maximum data compression. In third part, it has been shown that the average test power and peak power is minimum when the don't care bits are filled to make the long runs of 0s as well as 1s.

As a result of the emergence of new fabrication technologies and design complexities, standard stuck-at scan tests are no longer sufficient. The number of tests, corresponding to data volume and test time, increases with each new fabrication process technology just to maintain test quality requirements.

Conventional external testing involves storing all test vectors and test response on ATE. But these testers have limited speed, memory, and I/O channels. Testing cannot proceed any faster than the amount of time required to transfer the test data:

Test time ≥

As a result, some companies are looking for compression well beyond 100X tester cycle reduction [

The paper is organized as follows. Section

Test data compression involves adding some additional on-chip hardware before and after the scan chains. This additional hardware decompresses the test stimulus coming from the tester. This permits storing the test data in a compressed form on the tester. With test data compression, the tester still applies a precise deterministic (ATPG-generated) test set to the circuit under test (CUT).

The quantity of test data rapidly increases, while, at the same time, the inner nodes of dense SoCs become less accessible than the external pins. The testing problem is further exacerbated by the use of

The Code-based schemes use data compression codes to encode the test cubes. This involves partitioning the original data into symbols, and then replacing each symbol with a code word to form the compressed data. To perform decompression, a decoder simply converts each code word in the compressed data back into the corresponding symbol.

A few important quality factors [

The amount of compression possible.

The area overhead of the decoding architecture.

The reduction in test time. Transferring compressed test vectors takes less time than transferring the full vectors at a given bandwidth. However, in order to guarantee a reduction in the overall test time, the decompression process should not add much delay.

The scalability of compression with various design sizes, scan channels, and design types

Test compression method should effectively use do not cares for compression as well as power reduction.

The robustness in the presence of X states (can the design maintain compression while handling X states without losing coverage?).

The ability to perform diagnostics of failures when applying compressed patterns.

Type of decoder: data-independent decoder or data-dependant decoder.

During these years, the researchers have developed a large number of variants of the above schemes.

The first data compression codes that researchers investigated for compressing scan vectors were encoded by runs of repeated values.

In Table

3-Bits Run Length Code [

Code Word | Symbol | Symbol |

for 3-bit run | for modified 3-bit | |

length code | run length code | |

000 | 1 | 10 |

001 | 01 | 11 |

010 | 001 | 01 |

011 | 0001 | 001 |

— | ||

111 | 0000000 | 000000 |

As shown in Table

Golomb code for group length = 4 [

Group | Run length | Group prefix | Tail | Code word |
---|---|---|---|---|

A_{1} | 0 | 0 | 00 | 000 |

1 | 01 | 001 | ||

3 | 11 | 011 | ||

A_{2} | 4 | 10 | 00 | 1000 |

— | — | — | ||

7 | 11 | 1011 | ||

— | — | — | — | — |

Encoded sequence corresponding to 001 0000001 001

Original Test Data:

Run Length: 2 0 0 0 0 4 0 0 0 0 0.

Encoded Test Data: 1000 00 00 00 00 1010 00 00 00 00 00.

In 2001, Chandra and Chakrabarty [

Frequency-directed run-length code [

Group | Run length | Group prefix | Tail | Code word |
---|---|---|---|---|

1 | 0 | 0 | 0 | 00 |

1 | 1 | 01 | ||

2 | 2 | 10 | 00 | 1000 |

— | — | — | ||

5 | 11 | 1011 | ||

3 | 6 | 110 | 000 | 110000 |

7 | 001 | 110001 | ||

— | — | — |

The FDR code is very efficient for compressing data that has few 1s and long runs of 0s but inefficient for data streams that are composed of both runs of 0s and runs of 1s

Extended FDR code [

Group | Run length | Group prefix | Tail | Code word | Code word |

Runs of 0s | Runs of 1s | ||||

1 | 1 | 0 | 0 | 000 | 100 |

2 | 1 | 001 | 101 | ||

2 | 3 | 10 | 00 | 01000 | 11000 |

— | — | — | — | ||

6 | 11 | 01011 | 11011 | ||

3 | 7 | 110 | 000 | 0110000 | 1110000 |

8 | 001 | 0110001 | 1110001 | ||

— | — | — | — |

Generally, the test set

Original Test Data:

Run Length: 2 4 3 5.

Encoded Test Data: 1000 1010 1001 1011.

One more scheme for alternate runs of 1s and 0s has been proposed by Hellebrand and Würtenberger [

Original test data: 00 11111 0000 111111.

Run of length: 2 5 4 6.

Encoded test data:

For Alternating FDR: 0 1000 1011 1010 110000.

For Shifted Alternating FDR: 0 01 1010 1001 1011.

In order to decompress an FDR code, the on-chip decoder has to identify the group prefix as well as the tail. Because the code is not dependent on a group size as Golomb codes, the decoder has to detect the length of the prefix in order to decode the tail. So, the FDR code requires a more complicated decoder with higher area overhead. So a mix of Huffman and FDR is proposed which instead of using only patterns of

Spilt VIHC [

One more scheme based on probability of 0s and FDR is MFDR (Modified Frequency-Directed Run-length) [

Modified FDR code [

Group | Run length | Group prefix | Tail | Code word |
---|---|---|---|---|

A_{1} | 0 | 01 | 00 | 000 |

1 | 01 | 001 | ||

2 | 10 | 010 | ||

3 | 11 | 011 | ||

A_{2} | 4 | 10 | 00 | 1000 |

— | — | — | ||

7 | 11 | 1011 | ||

A_{3} | 8 | 001 | 00 | 11000 |

— | — | — | ||

11 | 11 | 11011 | ||

A_{4} | 12 | 110 | 000 | 110000 |

13 | 001 | 110001 | ||

— | — | — | ||

19 | 111 | 110111 | ||

A_{5} | 20 | 0001 | 000 | 0001000 |

— | — | — |

In 2003, Kajihara et al. [

Ruan and Katti [

Stuck-at fault based-test patterns can be reordered without any loss of fault coverage. The test patterns are reordered based on the minimum hamming distance between them. The Run-Based Reordering approach [

In 2007, Zhan et al. [

Fixed plus variable length coding [

Group | Run length | Head (K=2) | Tail | Code word |
---|---|---|---|---|

1 | 0 | 00 | 10 | 000 |

1 | 11 | 001 | ||

2 | 2 | 01 | 100 | 0100 |

— | — | — | ||

5 | 111 | 0111 | ||

3 | 6 | 10 | 1000 | 10000 |

— | — | — | ||

13 | 1111 | 10111 | ||

4 | 14 | 11 | 10000 | 110000 |

— | — | — | ||

29 | 11111 | 111111 |

In 2008, Sheng et al. [

To get the maximum compression, the do not care bits should be filled to get the longer runs. The way do not care bits should be filled with 1s or 0s depends upon the different natures of code. The nature of run-length codes can be broadly classified into three categories.

Codes considering the runs of zeros followed by bit one, that is, simple run-length code, Golomb Code, FDR Code, and MFDR Code

Codes considering runs of zeros followed by one as well as runs of ones followed by zero, that is, Extended FDR

Codes considering alternate runs of zeros followed by ones and runs of ones followed by zeros, that is, Alternate FDR

Codes considering the alternate runs of only zeros and only ones without any follower bit, that is, Shifted Alternate FDR

Codes considering the runs of ones followed by zero. This is a hypothetical case only. No such code is proposed in literature but we have taken this case to compare it with the above four styles and analyze the results.

Considering the above five cases, the fillings of do not care bits of partially filled test vectors are done as per the following schemes.

For codes like Golomb [

The code Extended FDR [

For code like Alternate FDR [

This is a hypothetical case introduced to analyze the compression results for VLSI test data. The symbols are made of runs of 1s followed by bit “0.” Here all Xs are replaced by 1s. So the runs of 1s will increase.

Considering the above cases, we can divide these methods in two categories:

Entropy is an important concept to data compression. The entropy of a symbol

We have implemented all the X filling techniques using MATLAB7.0 language. The experiments are conducted on a workstation with a 3.0 GHz Pentium IV processor and 1GB memory. Experiments were performed for X filling to calculate the theoretical limit on test data compression for the dynamically compacted test cubes generated by MINTEST for the largest ISCAS89 benchmark circuits. These are the same test sets used for experiments in [

Comparison of total no. of symbols needed to be encoded and % compression for various schemes of do not care bits filling.

Total No. of Symbols Needed to be Encoded | % Compression | ||||||||||

Original | Runs of 0s | Runs | Runs of 0s | Alternating | Alternating | Runs | Runs | Runs of 0s | Alternating | Alternating | |

ISCAS | test | followed | of 1s | followed | runs of | runs of | of 0s | of 1s | followed | runs of | runs of 0s |

circuits | data | by 1 | followed | by 1 and 1s | only | 0s followed | followed | followed | by 1 | only 0s | followed |

bits | by 0 | followed | 0s and | by 1 and 1s | by 1 | by 0 | and 1s | and | by 1 and 1s | ||

by 0 | only 1s | followed by 0 | followed by 0 | only 1s | followed by 0 | ||||||

S5378 | 23754 | 3538 | 2969 | 3129 | 3130 | 52.36 | 54.33 | 40.73 | 38.94 | ||

S9234 | 39273 | 4817 | 5786 | 4904 | 4905 | 47.80 | 44.34 | 35.92 | 35.33 | ||

S13207 | 165200 | 5021 | 6294 | 5427 | 5428 | 83.65 | 81.12 | 79.72 | 79.59 | ||

S15850 | 76986 | 5330 | 7329 | 5628 | 5629 | 68.18 | 62.49 | 60.72 | 60.32 | ||

S38417 | 164736 | 29473 | 23110 | 13751 | 13752 | 54.50 | 57.44 | 55.77 | 55.14 | ||

S38584 | 199104 | 16814 | 18474 | 16275 | 16275 | 62.49 | 60.09 | 54.65 | 54.21 |

The goal of X filling was to reduce the number of runs. As the number of runs will decrease, the number of transitions should be reduced, which should lower the test power. In this paper, a widely used weighted transitions metric (WTM) introduced in [

For the given test set, the different method of X filling gives the different numbers of total symbols, entropy, and hence compression. For the ISCAS89 benchmark circuits, Table

Comparison of entropy and total no. of unique symbols for various schemes of do not care bits filling.

Entropy | Total No. of unique symbols | ||||||||||

Runs of 0s | Alternating | Alternating | Runs | Alternating | Alternating | ||||||

Original | runs | runs | followed | runs | runs of 0s | runs | runs | of 0s | runs of | runs of 0s | |

ISCAS | test | of 0s | of 1s | by 1 | of | followed | of 0s | of 1s | Followed | only | followed |

circuits | Data | followed | followed | and 1s | only 0s | by 1and 1s | followed | followed | by 1 and 1s | 0sand | by 1 and 1s |

bits | by 1 | by 0 | followed | and | followed | by 1 | by 0 | followed | only 1s | followed | |

by 0 | only 1s | by 0 | by 0 | by 0 | |||||||

S5378 | 23754 | 3.1983 | 3.6537 | 4.4995 | 4.6338 | 79 | 87 | 131 | 136 | ||

S9234 | 39273 | 4.2556 | 3.7778 | 5.1312 | 5.1780 | 74 | 86 | 133 | 134 | ||

S13207 | 165200 | 5.3792 | 4.9558 | 6.1745 | 6.2113 | 211 | 178 | 314 | 314 | ||

S15850 | 76986 | 4.5955 | 3.9401 | 5.3736 | 5.4267 | 173 | 145 | 230 | 229 | ||

S38417 | 164736 | 2.5432 | 3.0332 | 5.2987 | 5.3742 | 121 | 154 | 233 | 238 | ||

S38584 | 199104 | 4.4418 | 4.3018 | 5.5474 | 214 | 191 | 333 | 333 |

Golomb, FDR, and MFDR scheme are based on run of 0s. EFDR is based on runs of 0s followed by “1” and 1s followed by “0.” Alternating FDR is based on alternate runs of 0s followed by “1” and 1s followed by “0.” Table

Comparison of % compression predicted by entropy with corresponding actual compression claimed in literature.

Code based | Code based on | ||||||||

Original | Codes based on run length of zeroes | on run length | aternate runs | ||||||

ISCAS | test | of zeros and ones | of zeros and ones | ||||||

circuits | data | Golomb | % compression | % compression | alternating | % compression | |||

bits | code | FDR | MFDR | predicted | EFDR | predicted | FDR | predicted | |

[ | [ | [ | by entropy | [ | by entropy | [ | by entropy | ||

S5378 | 23754 | 40.70 | 48.02 | 51.47 | 52.36 | 51.93 | 56.32 | -NA- | 51.44 |

S9234 | 39273 | 43.34 | 43.59 | 47.80 | 45.89 | 53.37 | 44.96 | 47.26 | |

S13207 | 165200 | 74.78 | 81.30 | 83.42 | 83.65 | 81.85 | 85.54 | 80.23 | 82.45 |

S15850 | 76986 | 47.11 | 66.22 | 66.93 | 68.18 | 67.99 | 71.90 | 65.83 | 67.25 |

S38417 | 164736 | 44.12 | 43.26 | 54.50 | 60.57 | 65.84 | 60.55 | 62.93 | |

S38584 | 199104 | 47.71 | 60.91 | 59.32 | 62.49 | 62.91 | 66.67 | 61.13 | 62.23 |

Table

Comparison of actual compression claimed in literature for various run based coding schemes.

ISCAS | Original | Golomb | Alternating | data independent | run based | ||||

circuits | test | code | FDR | EFDR | FDR | MFDR | pattern | reordering | FPVL[ |

data | [ | [ | [ | [ | [ | run length [ | with EFDR [ | ||

S5378 | 23754 | 40.70 | 48.02 | 51.93 | NA | 51.47 | 60.53 | 52.15 | |

S9234 | 39273 | 43.34 | 43.59 | 45.89 | 44.96 | 57.74 | 61.46 | 45.82 | |

S13207 | 165200 | 74.78 | 81.30 | 81.85 | 80.23 | 83.42 | 88.66 | 81.58 | |

S15850 | 76986 | 47.11 | 66.22 | 67.99 | 65.83 | 66.93 | 75.53 | 67.70 | |

S38417 | 164736 | 44.12 | 43.26 | 60.57 | 60.55 | 57.95 | 58.72 | 43.06 | |

S38584 | 199104 | 47.71 | 60.91 | 62.91 | 61.13 | 59.32 | 75.45 | 32.29 |

Comparison of peak power and average power for various methods of do not care bit filling.

Peak power | Average power | ||||||||

ISCAS | Original | Runs | Runs | Alternating | Runs of 0s | Runs | Runs | Alternating | Runs of 0s |

circuits | test | of 0s | of 1s | runs of 0s and 1s | followed by | of 0s | of 1s | runs of | followed by 1 |

data bits | 1 and 1s followed by 0 | 0s and 1s | and 1s followed by 0 | ||||||

S5378 | 23754 | 12085 | 12375 | 11522 | 4300 | 4087 | 3526 | ||

S9234 | 39273 | 15395 | 15640 | 14103 | 6706 | 6521 | 4022 | ||

S13207 | 165200 | 110129 | 126820 | 94886 | 12318 | 1453 | 7887 | ||

S15850 | 76986 | 84360 | 88794 | 70894 | 19448 | 25636 | 13659 | ||

S38417 | 164736 | 514716 | 539019 | 437935 | 194843 | 193140 | 118080 | ||

S38584 | 199104 | 530464 | 533975 | 481171 | 133320 | 142220 | 86305 |

In this survey paper, we have covered the wide variety of test data compression techniques based on run-length scheme and their variants. Five different techniques of do not care bit filling based on the nature of the runs are used to increase the run length and hence the % compression. The entropy-based % compression for each of these five techniques is calculated and the analysis proves that run-length-based code which includes run of ones followed by zero as well as run of zeros followed by one gives the best compression for VLSI test data. The same conclusion is further emphasized by comparison of actual compression claimed by literature where EFDR gives the maximum compression. The run-based reordering and other techniques used to enhance the run length further improve-compression which is proven by Run-Based Reordering with Extended FDR scheme. The researchers can start with this method and explore the possibilities of further compression with consideration of area overhead of on-chip decoder and overall test time and test power.

We are thankful to Prof. Nur A. Tauba for providing test sets. Our thanks are also due to Prof. Virendra Singh for his valuable suggestions.