A Test Data Compression Scheme Based on Irrational Numbers Stored Coding

Test question has already become an important factor to restrict the development of integrated circuit industry. A new test data compression scheme, namely irrational numbers stored (INS), is presented. To achieve the goal of compress test data efficiently, test data is converted into floating-point numbers, stored in the form of irrational numbers. The algorithm of converting floating-point number to irrational number precisely is given. Experimental results for some ISCAS 89 benchmarks show that the compression effect of proposed scheme is better than the coding methods such as FDR, AARLC, INDC, FAVLC, and VRL.


Introduction
According to Moore's law, the integration level of the microchips doubles every 18 to 24 months. As a result, the volume of test data increased dramatically; the test costs become higher; the contradictions between test efficiency and test quality are sharpening. The test data compression technology comes into being to solve the above problems.
Coding compression technology has been widely used because it has such advantages as simple encoding and decompression structure which is independent of the tested chip. A certain encoding scheme is used to encode the original test set. The length of the encoded data is less than the original test set, so as to reduce the test data.
The test set is divided into the sequences of specific law, which can be replaced with new codeword generated by some kinds of coding method. According to the change rule of the length from the original sequence to the codeword, coding methods can be divided into four categories. The first category is fixed-to-fixed coding method, such as dictionary code [1]. The second category is fixed-to-variable coding method, such as Huffman code [2], 9C code [3]. The third category is variable-to-fixed encoding method, such as runlength code [4]. The fourth category is variable-to-variable coding method, such as Golomb code [5], FDR code [6], EFDR code [7], and alternation and run-length code [8].
Among them, the compression method of the first category is the most simple one, but it has the lowest compression efficiency. The compression efficiency of the fourth category is high, but its hardware overhead is larger. The second and third categories have good applicability, which are between the first and fourth categories in terms of compression method, compression efficiency, hardware overhead, and so forth.
It is a new original method to use irrational number to compress test data. It is creative. A scheme of test data compression based on irrational number dictionary code [9] is presented. The encoding rule of this scheme is simple, and the do not-care bit need not be assigned, but it takes extra storage space to store the data dictionary additionally.
A new test data compression scheme based on irrational numbers stored (INS) is presented. It is a fixed-to-variable coding method, which has simple encoding rule and can obtain good compression effect. In this scheme, the test set is converted into floating-point numbers firstly, and then the floating-point numbers are converted into irrational numbers in form of √ (where the numbers and are integers) by the successive approximation method. So the storage of the test set can be translated into the storage of 2 The Scientific World Journal radicand (integer) and root number (integer). The minimum of corresponding radicand and root number can be found with faster convergence speed. Better compression effect can be obtained when using the INS coding scheme.
The organization of the paper is as follows. Section 2 explains the algorithm of the proposed scheme and gives an example. Section 3 proves the feasibility of the algorithm of the proposed scheme theoretically. The structure of decompressor is presented in Section 4. Section 5 reports the experimental results and analyzes the compression ratio theoretically. Finally Section 6 concludes the paper.

INS Coding
In this section, the algorithm of INS coding is described firstly. Then, the flowchart of the scheme is given. Lastly, an example is provided. (1) At first, generate the determinate complete test set named by automatic test pattern generation tools.
(2) Then cascade the entire test vector, and connect the head of a vector to the tail of previous vector, remembered as .
(3) Take the first bits of the test set, and then convert them into a hexadecimal number every four bits a group according to the rules shown in Table 1. Add a decimal point after the first digit, and a hexadecimal floating-point number named is formed.
(4) Calculate the value of and in the formula √ = , by dichotomy to successive approximate . In this scheme, if the first several bits of and the root of √ are exactly the same, that is to say, the two are approximately equal to, then consider the following. (I) Calculate 2 first; set bot = ⌊ 2 ⌋, top = bot + 1, = 2. (II) Calculate √ bot, if its value is equal to , note = bot, , and then go to step (5). Otherwise, calculate √top, if its value is equal to , note = top, , and then go to step (5). (III) Considerbot = ⌊bot * √ bot⌋, top = ⌈top * √top⌉, and = + 1. (IV) Set mid = ⌊(bot + top)/2⌋, calculate √ mid, if its value is equal to , note = mid, , and then go to step (5). If its value is greater than , top = mid − 1. If its value is less than , bot = mid + 1. Repeat step (IV) until bot > top, and then go to step (V). (V) If top is less than mid, set bot = top, top = mid. Otherwise, set top = bot, bot = mid. Repeat step (4) until √ = is valid and go to step (5). In this step, the median (mid) is always integer in operation process. That can reduce the computation complexity, save the running time, and accelerate the operation process.
(5) Encode and in the form of CEBM [10]. Remove the first bits of and repeat steps (3) and (4), until is empty. Figure 1 shows the detailed flowchart of the scheme. CEBM is shown in Table 2. Because ≥ 2, ≥ 2, the runlength starts from 2. The first column is the length of runs and the second column is the number of group. The third column is odd bits of the codeword and the fourth column is even bits. The last column is the corresponding codeword. As can be seen, CEBM has the following characteristics. (1) The length of the odd bits and the even bits is equal to every codeword.
(2) The odd bits show the run-length. Add data "1" before the odd bits; the new odd bits are just the corresponding binary number of the run-length. The even bits show the end of the codeword. The codeword continues if the even bit is 0 and finishes if it is 1. (3) The length of codeword increases by two bits from group to group +1 ; both the odd bits and the even bits increase one bit. (4) Group contains 2 elements. (5) The corresponding relationship between the run-length and group is like = ⌈Log 2 ( + 1) − 1⌉.
For an example, the codeword of 9 is 000011. The odd bits are 001 and the even bits are 001. The even bit needs to be monitored when decoding. If the even bit is 0, it means that codeword continues. If the even bit is 1, it means that codeword finishes. Add data "1" before the odd bits (001); we can get the data 1001, whose corresponding decimal value is 9. CEBM is widely used because of decoding simply and small hardware overhead.
Through the analysis, the scheme has the following three characteristics. (1) The root number is calculated from 2 and increases successively. It can guarantee that the radicand and root number found are minimum.   The Scientific World Journal

Theoretical Analysis
In this section, the theoretical analysis of the algorithm is given.
For any floating-point number , there exist positive integers , , which make the first several bits of and the root of √ to be exactly the same; that is to say, the two are approximately equal.
The process of proof is as follows.   Therefore, we only need to prove that √ bot is infinitely close to √top when → ∞. That is to prove That is to say, we can always find positive integers and to make √ and to be approximately equal when is increasing.

Structure of Decompressor
In this section, the structure and basic operation principle of the decompressor for the INS coding scheme are illustrated. Figure 2 shows the structure of decompressor, which contains a finite state machine, a T flip-flop, a special +1 bits counter and some combinational logic, and the CPU module on SoC chip. The Scientific World Journal 5 This special + 1 bits counter is unique. Set its lowest bit as 1; move this bit to high with other data when the data needed to be decoded is moved to the counter. The function can be realized by a combination of some simple circuit, and the hardware overhead will not increase significantly. In the + 1 bits counter, the value of is decided by the maximum of the radicand and the boot number (named as max ) in compression result, = ⌈log 2 ( max + 1)⌉ − 1.
The root operation can be realized by the CPU module on SoC chip as long as the floating-point processing unit ×87 FPU integrated in CPU. ×87 FPU has its own instruction system, including the commonly used instruction types: floating-point move instructions, floating-point arithmetic operation instructions, floating-point transcendental function instructions, floating-point comparison instructions, and FPU control instructions [11]. Floating-point transcendental function instructions can realize exponent operation (F2XM1 instruction) and logarithmic operation (FYL2X instruction). √ can be converted into 2 (log 2 )/ , which can be calculated by exponent operation instruction and logarithmic operation instruction.
Decompressor works as follows.
(1) First, the FSM makes an enable signal named en into high level, and the encoded data named bit in is split into two parts: odd bits and even bits by the position of data. That is implemented by the T flipflop. Odd bits are directly shifted into the + 1 bits counter, and even bits are shifted into FSM. (2) Then, FSM repeats to read the encoded data until the value of even bit equals 1. Meanwhile, the odd bit is shifted into the + 1 bits counter.
(3) The data (named ) of the + 1 bits counter is shifted into CPU after all odd bits of data are received in the special + 1 bits counter. Repeat step (2); the data of the + 1 bits counter (named ) is shifted into CPU. (4) √ is calculated by floating-point processing unit ×87 FPU in CPU, and the first bits of its binary form are outputted.

Experimental Results
In this section, the effectiveness of the INS coding scheme is verified by using experimental results. INS coding is applied to the MinTest test sets of the largest ISCAS 89 benchmark circuits. The experimental results are shown in Table 3. The first column shows the circuit name, the second column shows the total number of the data in the original test sets, the third column shows the total number of the compressed data, and the fourth column shows the compression ratio.
In order to verify the validity of this scheme, compare with the similar algorithm, as shown in Table 4. Among them, the first column shows the circuit name, the second to sixth columns, respectively, show the compression effect of FDR code [6], INDC code [9], AARLC code [8], FAVLC code [12], and VRL code [13], and the seventh column shows compression effect of the scheme presented. Data from Table 3 shows this scheme besides lower compression ratio in the fifth circuit, and the rest of the circuit has higher compression ratio. And this scheme has a good compression effect on the whole. The average compression ratio reaches 65.79%, which is 20.46%, 9.42%, 7.36%, 5.36%, and 1.85% higher than those of FDR, RLR, AARLC, FAVLC, and VRL. In order to further demonstrate the effectiveness, the results of proposed scheme are compared with other schemes under the same circumstances by the hard fault set of some ISCAS 89 benchmark circuits. The results as shown in Table 5. As can be seen from Table 4, the overall effect of proposed scheme is better. The average compression ratio of the proposed scheme is 3.87%, 3.82%, and 3.31% higher than those of FDR, AR [14], and ARL [15]. These data show the effectiveness of INS Code.
The experimental results indicate the following. (1) Regardless of the fact that the determined bit of the test data is 0 or 1, it has a little effect on compression ratio in the process of finding the irrational number. (2) Do not-care bit can accelerate the search speed of irrational number, reduce the value of irrational number used to store the test data, and improve the compression ratio.
The influence of the do not-care bit probability on compression is explored. The length of the test data fragment is set to be , and the probability of do not-care bit is set to be . Their relationship can be expressed in the following formula: √ − < 10 −( /4)+1 , = 1, 2, . . . , 2 ⋅ , where, , , and are integers and is a floating-point number.