<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ep-patent-document PUBLIC "-//EPO//EP PATENT DOCUMENT 1.1//EN" "ep-patent-document-v1-1.dtd">
<ep-patent-document id="EP04729698B1" file="EP04729698NWB1.xml" lang="en" country="EP" doc-number="1620740" kind="B1" date-publ="20071031" status="n" dtd-version="ep-patent-document-v1-1">
<SDOBI lang="en"><B000><eptags><B001EP>ATBECHDEDKESFRGBGRITLILUNLSEMCPTIESI....FIRO..CY..TRBGCZEEHUPLSK................</B001EP><B003EP>*</B003EP><B005EP>J</B005EP><B007EP>DIM360 (Ver 1.5  21 Nov 2005) -  2100000/0</B007EP></eptags></B000><B100><B110>1620740</B110><B120><B121>EUROPEAN PATENT SPECIFICATION</B121></B120><B130>B1</B130><B140><date>20071031</date></B140><B190>EP</B190></B100><B200><B210>04729698.3</B210><B220><date>20040427</date></B220><B240><B241><date>20051129</date></B241><B242><date>20060210</date></B242></B240><B250>en</B250><B251EP>en</B251EP><B260>en</B260></B200><B300><B310>03101186</B310><B320><date>20030429</date></B320><B330><ctry>EP</ctry></B330></B300><B400><B405><date>20071031</date><bnum>200744</bnum></B405><B430><date>20060201</date><bnum>200605</bnum></B430><B450><date>20071031</date><bnum>200744</bnum></B450><B452EP><date>20070503</date></B452EP></B400><B500><B510EP><classification-ipcr sequence="1"><text>G01R  31/319       20060101AFI20041117BHEP        </text></classification-ipcr></B510EP><B540><B541>de</B541><B542>DATENKOMPRIMIERUNG</B542><B541>en</B541><B542>DATA COMPRESSION</B542><B541>fr</B541><B542>COMPRESSION DE DONNEES</B542></B540><B560><B562><text>VENKATARAMAN S ET AL: "An Efficient Bist Scheme Based On Reseeding Of Multiple Polynomial Linear Feedback Shift Registers" IEEE/ACM INTERNATIONAL CONFERENCE ON COMPUTER AIDED DESIGN. DIGEST OF TECHNICAL PAPERS (ICCAD). SANTA CLARA, NOV. 7 - 11, 1993, LOS ALAMITOS, IEEE. COMP. SOC. PRESS, US, vol. CONF. 11, 7 November 1993 (1993-11-07), pages 572-577, XP010216592 ISBN: 0-8186-4490-7</text></B562><B562><text>WANG,CHIOU: "Generating efficient Tests for continous scan" PROCEEDINGS OF THE 38TH CONFERENCE ON DESIGN AND AUTOMATION, 2001, XP002255259</text></B562><B562><text>REDA, ORAILOGLU: "Reducing Test Application Time through test mutation encoding" PROCEEDINGS OF DATE 2002, 4 March 2002 (2002-03-04), - 8 March 2002 (2002-03-08) XP002255260 Paris</text></B562><B562><text>BUSHNELL, AGRAWAL: "Essentials of electronic testing" 2000, KLUWER , NORWELL, DORDRECHT , XP002255296 page 489 - page 529</text></B562></B560></B500><B700><B720><B721><snm>VRANKEN, Hendrikus, P., E.</snm><adr><str>c/o Prof. Holstlaan 6</str><city>NL-5656 AA Eindhoven</city><ctry>NL</ctry></adr></B721><B721><snm>HOLLMANN, Hendrik, D., L.</snm><adr><str>c/o Prof. Holstlaan 6</str><city>NL-5656 AA Eindhoven</city><ctry>NL</ctry></adr></B721></B720><B730><B731><snm>NXP B.V.</snm><iid>07652150</iid><irf>PHNL030461EP2</irf><adr><str>High Tech Campus 60</str><city>5656 AG Eindhoven</city><ctry>NL</ctry></adr></B731></B730><B740><B741><snm>White, Andrew Gordon</snm><sfx>et al</sfx><iid>09247971</iid><adr><str>NXP Semiconductors 
Intellectual Property Department 
Cross Oak Lane</str><city>Redhill, Surrey RH1 5HA</city><ctry>GB</ctry></adr></B741></B740></B700><B800><B840><ctry>AT</ctry><ctry>BE</ctry><ctry>BG</ctry><ctry>CH</ctry><ctry>CY</ctry><ctry>CZ</ctry><ctry>DE</ctry><ctry>DK</ctry><ctry>EE</ctry><ctry>ES</ctry><ctry>FI</ctry><ctry>FR</ctry><ctry>GB</ctry><ctry>GR</ctry><ctry>HU</ctry><ctry>IE</ctry><ctry>IT</ctry><ctry>LI</ctry><ctry>LU</ctry><ctry>MC</ctry><ctry>NL</ctry><ctry>PL</ctry><ctry>PT</ctry><ctry>RO</ctry><ctry>SE</ctry><ctry>SI</ctry><ctry>SK</ctry><ctry>TR</ctry></B840><B860><B861><dnum><anum>IB2004050520</anum></dnum><date>20040427</date></B861><B862>en</B862></B860><B870><B871><dnum><pnum>WO2004097438</pnum></dnum><date>20041111</date><bnum>200446</bnum></B871></B870><B880><date>20060201</date><bnum>200605</bnum></B880></B800></SDOBI><!-- EPO <DP n="1"> -->
<description id="desc" lang="en">
<p id="p0001" num="0001">This invention relates to a method and apparatus for use in data compression and, more particularly but not necessarily exclusively, to a method and apparatus for reducing the volume of, or compressing, test data for use in testing logic products such as integrated circuit chips and the like, so as to economize on the amount of computer memory, disk storage and time required to test such products.</p>
<p id="p0002" num="0002">Each manufactured integrated circuit (IC) has to be tested thoroughly for manufacturing defects before it can be shipped to a customer. Conventional methods for testing IC's consist of automated generation of test patterns using an ATPG (Automated Test Pattern Generation) tool, and application of these test patterns to the IC using ATE (Automated Testing Equipment) and on-chip design-for-testability (DfT) structures.</p>
<p id="p0003" num="0003">A common DfT technique for digital logic circuits is 'scan design', which allows the flip-flops in the circuit to be configured into serial shift registers ('scan chains') during test mode. Referring to Figure 6 of the drawings during scan testing, a test stimulus is shifted via one or more pins 204 first into the scan chains 200. After the complete test stimulus has been shifted in, the circuit 208 operates for one or more clock cycles in functional (or 'normal') mode. During a normal mode cycle, the stimulus in the flip-flops is applied to the logic cells 202 in the circuit, and the responses are captured in the flip-flops. After the normal mode cycles, the circuit is configured again into test mode, and the captured responses in the flip-flops are shifted out. This process is repeated until all test stimuli have been applied. Typically, shifting in a new test stimulus into the scan chains and shifting out the test responses of the previous test stimulus can be done substantially simultaneously.</p>
<p id="p0004" num="0004">An ATPG tool generates test patterns for a digital logic circuit, considering a particular fault model. This fault model is used to model the physical defects that can occur in a circuit, like short circuits, (resistive) open circuits, or bridges between wires. Each pattern as generated by the ATPG tool can be used to detect some of the modeled faults. The fault coverage (FC) of an ATPG test pattern set is defined as the ratio of the number of modeled faults that are detected by the test patterns, and the total number of modeled faults. Each test pattern consists of a test stimulus and the corresponding test responses.<!-- EPO <DP n="2"> --></p>
<p id="p0005" num="0005">A test pattern set as generated by an ATPG tool consists of p test patterns. Combinatorial ATPG is typically used for combinatorial circuits or full-scan sequential circuits, while sequential ATPG is typically used for partial-scan or non-scan sequential circuits. For pattern sets generated by combinatorial ATPG, the order of the patterns in the set is often arbitrary. For sequential ATPG, the patterns in a set are typically grouped, and the order of the patterns within each group is fixed.</p>
<p id="p0006" num="0006">Conceptually, each test pattern is made up of test vectors. A test vector is typically a sequence of '0' and '1' values, and contains stimulus bits for the IC input pins, and response bits for the IC output pins. If an IC has <i>n</i> pins, then the test vector for this IC will contain <i>n</i> bits, one bit for each pin. A test pattern typically consists of a sequence of ν subsequent test vectors that are applied to the IC in a particular order.</p>
<p id="p0007" num="0007">The test vectors are stored in the ATE vector memory. The ATE reads the stimulus data in a particular test vector from the vector memory, and applies it to the IC pins. The responses on the IC output pins are captured by the ATE, and compared with the fault-free responses as stored in the ATE vector memory. The ATE is able to indicate for each test vector whether it passes or fails, and in the case of a fail, the ATE can report all IC pins that output a faulty response.</p>
<p id="p0008" num="0008">The current trend is to integrate more and more transistors on a single IC. According to Moore's law, this growth is exponential and the amount of transistors per IC roughly doubles every 1.5 years. As the size of a typical IC increases, it follows that the test data volume required to test such IC's must also increase. Furthermore, deep sub-micron IC process technologies introduce new defect types, which did not occur in previous process technologies. These new defects typically have an impact on the timing behavior of a circuit, and additional test patterns are required to detect these defects. As a consequence, the test data volume is increasing super-linear with the increasing IC sizes. In fact, test data volumes are expected to grow to the extent that they will no longer fit into a conventional ATE vector memory.</p>
<p id="p0009" num="0009">There are a number of possible solutions to this problem:
<ol id="ol0001" compact="compact" ol-style="">
<li>1. Limiting the test data volume to the capacity of the ATE vector memory. However, this implies that not all test patterns will be used to test an IC, such that the test quality is reduced, which is obviously undesirable.</li>
<li>2. Dividing the test data volume into multiple test sets, such that each individual test set fits into the ATE vector memory. However, the 'reloading' of the ATE vector<!-- EPO <DP n="3"> --> memory to accommodate each test set increases the overall test time for an IC, which is also undesirable.</li>
<li>3. Extending the ATE vector memory. However, vector memory is expensive and, in any case, the ATE architecture imposes an upper limit for memory extension.</li>
<li>4. Replacing the conventional ATE with a newer ATE, which offers more vector memory. However, this is very expensive.</li>
</ol></p>
<p id="p0010" num="0010">Thus, none of the above four possible solutions is truly adequate for dealing with increasing test data volume. In an alternative solution, the test data may be stored in the ATE vector memory in a compressed format. The data is decompressed by circuitry that resides either on the ATE itself, on the chip, or in the communication path between the ATE and the IC (e.g. on the 'load board').</p>
<p id="p0011" num="0011">In recent years, a large amount of test data compression techniques has been proposed. Most test data compression techniques exploit the fact that a large amount of the test data is in fact random data. In each test pattern, only a limited amount of stimulus bits is specified (usually only a few percent), i.e. 'care' bits, while most stimulus bits are 'don't care' and can be filled at random. In principle, only the specified stimulus bits have to be stored in the ATE, and this offers the possibility to compress the test data volume that has to be stored.</p>
<p id="p0012" num="0012">While generating test patterns, the ATPG tool inserts random values for the don't care stimulus bits. This process is referred to as 'random padding'. Published US Patent Application Numbers <patcit id="pcit0001" dnum="US20020099991A1"><text>US 2002/0099991 A1</text></patcit> and <patcit id="pcit0002" dnum="US20020099992A1"><text>US 2002/0099992 A1</text></patcit> describe arrangements in which test vectors are generated which contain both care bits and don't care bits. The don't care bits are filled with a repeated value, and the resulting test vectors are compressed using vector repeat. The filling strategies (or 'padding' types) proposed in the above-mentioned prior art documents are:
<ul id="ul0001" list-style="dash" compact="compact">
<li>a) filling the don't cares using 'repeat fill'; or</li>
<li>b) filling the don't cares using repetitive background data.</li>
</ul></p>
<p id="p0013" num="0013">Using repetitive background data corresponds to 0-fill or 1-fill, where all of the don't care bits are filled with '0' or '1'. Repeat fill implies that each don't care bit in a sequence is given the same value as the most recent care bit.</p>
<p id="p0014" num="0014">For example, consider the sequence 0XX1XX, where the symbol X denotes a don't care bit. Applying a 0-fill to this sequence results in 000100 (i.e. all X's replaced with 0's). Applying a 1-fill to the same sequence results in 011111. Applying repeat fill results in<!-- EPO <DP n="4"> --> 000111 (i.e. the X's after the 0 and before the 1 are assigned the value 0, whereas the X's after the 1 are assigned the value 1).</p>
<p id="p0015" num="0015">Test vectors can be compressed by using the vector repeat capability as supported by most ATE configurations. Figure 1A is a schematic block diagram illustrating a typical ATE architecture. The test vectors are stored in the ATE vector memory 100, while the instruction memory 102 contains instructions as to how to apply these vectors to the IC 104. The instruction memory 102 may, for example, contain instructions to apply a particular vector for a number of cycles, which is called 'vector repeat'. This allows test data compression, since a sequence of ν identical test vectors can be stored on the ATE using a single vector in the ATE vector memory 100 and an instruction in the ATE instruction memory 102 to repeat this vector ν times.</p>
<p id="p0016" num="0016">In 'An efficient BIST shift scheme based on reseeding of multiple polynomial linear feedback shift registers' by <nplcit id="ncit0001" npl-type="s"><text>S. Venkataraman et al. in IEEE/ACM International Conference on Computer Aided Design, Digest of Technical Papers 1993, 11, pages 572-577</text></nplcit>, a method of compacting a set of testcubes is disclosed. The testcubes are checked pairwise for containment to remove redundant test cubes after which pairwise consistent test cubes are merged. A pair of testcubes is considered consistent if the corresponding bits in the respective testcubes have non-conflicting values.</p>
<p id="p0017" num="0017">In <nplcit id="ncit0002" npl-type="s"><text>'Generating Efficient Scan Tests for Continuous Scan' by S-J Wang et al. in Proc. of the 38th Conference on Design and Automation (DAC), 2001, pages 162-165</text></nplcit>, a combination of the merging of compatible test vectors with a reduction in the number of shift operations required for shifting two subsequent vectors into a circuit under test is disclosed. The latter is achieved by finding matching a suffix of a first vector to a prefix of the next vector in the set of vectors such that only the suffix of the next vector has to be shifted in. The test vectors in the set are reordered before compression to optimize the reduction in the required number of shift operations.</p>
<p id="p0018" num="0018">An alternative ATE architecture is illustrated in Figure 1B, where the vector memory 100 and instruction memory 102 are distributed. Each vector memory 100a, 100b, and its corresponding instruction memory 102a, 102b, is now used to apply data on a sub-set of the IC pins. Such a sub-set of IC pins is referred to herein as a pin-group or port. Figure 1B only shows two ports, but this can be extended to more than two ports, if desired. The number of pins per port may vary per port. In some cases, each port may correspond to a single IC pin, whereas in other cases, n-pin ports may be used, where n is an integer &gt; 1.</p>
<p id="p0019" num="0019">Since each port has its own vector memory and instruction memory, it is possible to repeat vector data per port.<!-- EPO <DP n="5"> --></p>
<p id="p0020" num="0020">We have now devised an improved arrangement.</p>
<p id="p0021" num="0021">In accordance with the present invention, there is provided a method of compressing data comprising at least two subsequent vectors, wherein a vector comprises one or more bits, the method being characterized by the steps of:
<ol id="ol0002" compact="compact" ol-style="">
<li>i) comparing corresponding bits in two subsequent vectors to determine if they are compatible; and, if said bits are compatible,</li>
<li>ii) merging said vectors to create a single vector representative thereof;</li>
</ol>
wherein compatibility of two bits is achieved provided that they do not have specifically incompatible or opposite values.</p>
<p id="p0022" num="0022">Two bits are said to be incompatible if they are guaranteed to be distinct, i.e., two bits b<sub>1</sub> and b<sub>2</sub> are incompatible if b<sub>1</sub> ≠ b<sub>2</sub>, and b<sub>1</sub> ≠ X, and b<sub>2</sub> ≠ X.</p>
<p id="p0023" num="0023">In a preferred embodiment, the method includes the step of generating a repeat value in respect of one or more vectors, said repeat value being indicative of a number of<!-- EPO <DP n="6"> --> times the respective merged vector should be repeated to reconstruct the original vector sequences of which the merged vector is representative.</p>
<p id="p0024" num="0024">Preferably, the data comprises test vector data for use in testing a logic product, and the method includes the steps of generating original test vector data comprising "care" and "don't care" bits, and compressing said test vector data according to steps i) and ii) defined above.</p>
<p id="p0025" num="0025">The original test vector data may be generated by means of an Automated Test Pattern Generation (ATPG) tool.</p>
<p id="p0026" num="0026">The present invention further extends to a data set comprising test vector data for use in testing a logic product, the test vector data being compressed by the above-defined method.</p>
<p id="p0027" num="0027">Also in accordance with the present invention, there is provided a method of testing a logic product, the method comprising the steps of generating compressed test vector data as defined above, reconstructing the care bits in the test vector data by repeating the merged vector one or more times according to its respective repeat value, applying the reconstructed test vector data to an input of the logic product, and obtaining the resultant output data. It will be appreciated that, in the original test vectors, there are care and don't care bits. After compression, information is lost with regard to the don't care bits. Thus, the term "reconstructing" used herein means reconstructing the care bits in the vectors i.e. without don't care bits. The original test vectors (with the don't care bits) cannot be reconstructed in this manner.</p>
<p id="p0028" num="0028">The method defined above may further include the step of compressing the output data in accordance with the method of compressing data as defined above.</p>
<p id="p0029" num="0029">Still further in accordance with the present invention, there is provided apparatus for compressing data comprising a sequence of at least two subsequent vectors, wherein a vector comprises one or more bits, the apparatus being characterized by:
<ol id="ol0003" compact="compact" ol-style="">
<li>i) means for comparing corresponding bits in two or more subsequent vectors to determine if they are compatible; and</li>
<li>ii) means for merging said two or more vectors in which all corresponding bits of said vectors are compatible, to create a single vector representative of said two or more vectors;</li>
</ol>
wherein compatibility of two bits is achieved provided that they do not have specifically incompatible or opposite values.<!-- EPO <DP n="7"> --></p>
<p id="p0030" num="0030">It will be appreciated that a vector may comprise n bits, where n is a positive integer (i.e. 1 or more). In other words, a vector may comprise one or more bits.</p>
<p id="p0031" num="0031">Once again, the data may comprise test vector data for use in testing a logic product, and the apparatus includes means for generating or receiving original test vector data comprising two or more vectors including "care" bits and "don't care" bits.</p>
<p id="p0032" num="0032">Still further in accordance with the present invention, there is provided apparatus for testing a logic product, including means for generating original test vector data, apparatus for compressing the original test vector data as defined above, means for reconstructing the care bits in the test vector data, means for applying the reconstructed data to an input of the logic product, and means for obtaining the resultant output data.</p>
<p id="p0033" num="0033">The output data may also be compressed by means of the data compression apparatus defined above. The apparatus may further comprise means for reordering a test pattern, prior to compression thereof. Once again, the means for generating the original test vector data may comprise an Automated Test Pattern Generation (ATPG) tool.</p>
<p id="p0034" num="0034">The apparatus may comprise means for storing merged data sequences in the form of a data set for use in testing a logic product, and the present invention extends to electronic data storage means on which is stored a data set created by means of such apparatus.</p>
<p id="p0035" num="0035">Thus, in summary, test vectors typically contain a large amount of "don't care" bits (often &gt; 90%), and these don't care bits can be modified without affecting the fault coverage of these vectors. These don't care bits can be exploited, in accordance with the present invention, for compressing the test vectors, and hence for reducing the test data volume. Run-length encoding is employed to compress a sequence of test vectors. Such compression can be made optimal if the average run-length is maximal, and this optimum is achieved by the present invention by applying "merge fill".</p>
<p id="p0036" num="0036">The basic idea of merge fill is to fill the don't care bits in such a way that sequences of compatible test vectors are created. Each sequence of compatible test vectors can be merged into a single test vector plus, preferable, a repeat count value. Storing the merged test vectors and repeat counts requires less ATE memory when compared to storing the original test vectors. The net result is that the use of merge fill permits optimal run-length encoding, and allows larger reduction of test data volume compared with prior art techniques.</p>
<p id="p0037" num="0037">Thus, the method of the present invention differs from conventional padding methods because the don't care bits are padded by not only considering the bits that are being applied on a single pin, but on all pins on a port (in the case where n-pin ports are employed).<!-- EPO <DP n="8"> --> Prior art configurations only consider padding for the ATE configuration illustrated in Figure 1A, where all IC pins are connected to a single IC memory, whereas the present invention can also be used in ATE configurations as shown in Figure 1B. For both ATE configurations, merge fill allows much higher repeat counts than other padding types, thereby significantly reducing the test data volume required to be stored.</p>
<p id="p0038" num="0038">An additional degree of freedom can be achieved by reordering the test patterns (as described below) to further reduce the number of test vectors that have to be stored in the ATE vector memory.</p>
<p id="p0039" num="0039">In another embodiment of the present invention, the don't care bits may be randomly filled in the case of sequences of &lt;n vectors, and merge fill according to the present invention may be used to fill the don't care bits in a sequence of &gt; n compatible vectors.</p>
<p id="p0040" num="0040">In principle, the don't care bits in test vectors can be assigned arbitrary values. However, the filling of don't care bits impacts the test quality of the test vectors. Particularly, the actual defect coverage, i.e., the number of detected physical defects, as well as the diagnostic resolution, i.e., the ability to identify which faults are present in a failing circuit, are affected by the filling of don't care bits. Test vectors in which the don't care bits are filled randomly, tend to have higher test quality than test vectors in which the don't care bits are filled with more regular values, like in 0-fill, 1-fill, repeat-fill, or merge-fill. To improve test quality, the don't care bits in incompatible vectors are therefore filled best with random values. Furthermore, if a sequence of compatible vectors is short (i.e., smaller than some value n), then the don't care bits in these vectors can also be filled with random values. If a sequence of compatible test vectors is large (i.e., larger than or equal to n), then merge-fill can be applied to fill the don't care bits in these vectors. The result is that higher test quality is achieved when compared to using merge-fill only, which comes at the cost of slightly reduced test data compression when using run-length encoding, i.e., vector repeat.</p>
<p id="p0041" num="0041">These and other aspects of the invention will be apparent from and elucidated with reference to the embodiments described hereinafter.</p>
<p id="p0042" num="0042">Embodiments of the present invention will now be described by way of examples only and with reference to the accompanying drawings, in which:
<ul id="ul0002" list-style="none" compact="compact">
<li>Figure 1A is a schematic block diagram illustrating an ATE architecture according to one exemplary embodiment of the present invention;</li>
<li>Figure 1B is a schematic block diagram illustrating an ATE architecture according to another exemplary embodiment of the present invention;<!-- EPO <DP n="9"> --></li>
<li>Figure 2A is a flow diagram illustrating an ATPG procedure according to an exemplary embodiment of the present invention;</li>
<li>Figure 2B is a flow diagram illustrating an ATPG procedure according to another exemplary embodiment of the present invention;</li>
<li>Figure 3 is a graph illustrating the average repeat count for various padding types, while varying the number of pins per port (i.e. a comparison of merge fill with other padding types);</li>
<li>Figure 4 is a graph illustrating the average repeat count within merge fill for varying probability p;</li>
<li>Figure 5 is a graph illustrating the ratio of the average repeat counts obtained with merge fill and repeat fill, while varying the number of pins per port and probability p (i.e. comparison of merge fill, with repeat fill) and;</li>
<li>Figure 6 is a schematic diagram illustrating an IC with flip-flops and combinational logic, where the flip-flops can be configured into scan chains.</li>
</ul></p>
<p id="p0043" num="0043">The 'merging' concept will first be described. Consider a 3-valued logic</p>
<p id="p0044" num="0044">L= {0, 1, X}. Using this notation, it implies that each bit in a sequence can have a value '0', '1' or 'X' (don't care). It will be appreciated that, as in the prior art, a don't care bit can be arbitrarily set to '0' or '1'.</p>
<p id="p0045" num="0045">For the purposes of the following, a sequence of two bits <i>b<sub>1</sub>b<sub>2</sub></i> is said to be compatible if the sequence is 00, 0X, X0, 11, 1X, X1 or XX. The sequence is said to be incompatible if it is either 10 or 01. This can be extended to a sequence of n&gt;2 bits, in which case the sequence is said to be compatible if all of the bits in the sequence are all 0 or X, all I or X, or all X. The sequence is said to be incompatible if it contains at least one bit that is 0 and at least one bit that is 1.</p>
<p id="p0046" num="0046">In accordance with this exemplary embodiment of the present invention, two compatible bits can be merged into a single bit using the 'merge' operator:
<ol id="ol0004" compact="compact" ol-style="">
<li>1. merge (00) = merge (0X) = merge (X0) = 0</li>
<li>2. merge (11) = merge (1X) = merge (X1) = 1</li>
<li>3. merge (XX) = X</li>
<li>4. merge (01) and merge (10) are undefined (because the sequences are incompatible)</li>
</ol></p>
<p id="p0047" num="0047">This can be generalized for a sequence of n&gt; 2 bits:
<ol id="ol0005" compact="compact" ol-style="">
<li>1. merge ({0,X}<sup>~</sup>) = 0, where {O,X}<sup>~</sup> indicates a sequence of 0's and X's with at least one 0.<!-- EPO <DP n="10"> --></li>
<li>2. merge ({1,X}<sup>~</sup>) = 1, where {1,X}<sup>~</sup> indicates a sequence of I's and X's with at least one 1.</li>
<li>3. merge ({X}<sup>+</sup>) = X, where X<sup>+</sup> indicates a sequence of one or more X's.</li>
<li>4. merge ({0,1,X}<sup>~</sup>) is undefined where {0,1,X}<sup>~</sup> indicates a sequence of 0's, 1's and X's, with at least one 0, at least one 1, and zero or more X's.</li>
</ol></p>
<p id="p0048" num="0048">A vector ν<sub>i</sub> can be defined as a sequence of n bits (ν<sub>i1</sub>,....., ν<sub>i<i>n</i></sub>). Two <i>n</i>-bit vectors ν<sub>1</sub>, ν<sub>2</sub> are said to be compatible if, for all j (1≤<i>j</i>≤<i>n</i>) holds that the bits ν<sub>1<i>j</i></sub> and ν<sub>2<i>j</i></sub> are compatible. Two compatible vectors ν<sub>1</sub> and ν<sub>2</sub> can be merged into a new vector ν<sup>merged</sup>, where ν<sup>merged</sup> = (merge(ν<sub>11</sub>,ν<sub>21</sub>),....., merge(ν<sub>1<i>n</i></sub>,ν<sub>2<i>n</i></sub>,)).</p>
<p id="p0049" num="0049">A test pattern consists of a sequence of ν subsequent test vectors where ν typically equals the number of scan shift cycles plus normal mode cycles. The ν vectors in a test pattern have a fixed order.</p>
<p id="p0050" num="0050">A test pattern set consists of <i>p</i> test patterns, and the set is either ordered or unordered. If the test pattern set is ordered, the order of the p test patterns is fixed; the test pattern set then consists of a sequence of <i>p</i> ν test vectors in a fixed order. If the test pattern set is unordered, then it consists of a sequence of <i>p</i> ν test vectors, where the ν vectors in each sub-sequence have a fixed order, but the order of the sub-sequences is not fixed.</p>
<p id="p0051" num="0051">A sequence of test vectors can be compressed by merging subsequent compatible vectors and the result is a sequence of <i>k</i> merged test vectors. The algorithm to do so is shown below. It can be proved mathematically that this compression algorithm is optimal, that is, results in a shortest possible sequence after merging.
<pre listing-type="program-listing"> k = 1;                            /* k counts the number of merge-vectors          */
 νk merged = ν1;                   /* merge-vector ν1 merged is vector ν1           */
 For (2 &lt; i &lt; pν) {                /* iterate for all pν vectors                    */
 If compatible (νi, νk merged)     /* if vector νi and νk merged are compatible     */
 νk merged = merge (νi, νk merged) /* then merge these vectors.
 Else {                            /* if vector νi and νk merged are incompatible   */
 k++
 νk merged = νi;                   /* then create new merge-vector                  */
  }
 }</pre><!-- EPO <DP n="11"> --></p>
<heading id="h0001">Example 1</heading>
<p id="p0052" num="0052">
<tables id="tabl0001" num="0001">
<table frame="none">
<tgroup cols="6" colsep="0" rowsep="0">
<colspec colnum="1" colname="col1" colwidth="21mm"/>
<colspec colnum="2" colname="col2" colwidth="30mm"/>
<colspec colnum="3" colname="col3" colwidth="33mm"/>
<colspec colnum="4" colname="col4" colwidth="10mm"/>
<colspec colnum="5" colname="col5" colwidth="16mm"/>
<colspec colnum="6" colname="col6" colwidth="14mm"/>
<tbody>
<row>
<entry>ν<sub>1</sub> = 0XX1X</entry>
<entry>ν<sub>1</sub><sup>merged</sup> = 0XXIX</entry>
<entry>ν<sub>1</sub><sup>merged</sup> = 0X010</entry>
<entry>3</entry>
<entry>0X010</entry>
<entry>00010</entry></row>
<row>
<entry>ν<sub>2</sub> = XX01X</entry>
<entry>ν<sub>1</sub><sup>merged</sup>=0X01X</entry>
<entry>ν<sub>2</sub><sup>merged</sup>= 1XXXX</entry>
<entry>1</entry>
<entry>0X010</entry>
<entry>00010</entry></row>
<row>
<entry>ν<sub>3</sub> = 0XXX0</entry>
<entry>ν<sub>1</sub><sup>merged</sup> = 0X0 10</entry>
<entry>ν<sub>3</sub> merged = 0X 110</entry>
<entry>2</entry>
<entry>0X010</entry>
<entry>00010</entry></row>
<row>
<entry>ν<sub>4</sub> = 1XXXX</entry>
<entry>ν<sub>2</sub><sup>merged</sup> = 1XXXX</entry>
<entry/>
<entry/>
<entry>1XXXX</entry>
<entry>10101</entry></row>
<row>
<entry>ν<sub>5</sub> = 0XXX0</entry>
<entry>ν<sub>3</sub><sup>merged</sup> = 0XXX0</entry>
<entry/>
<entry/>
<entry>0X110</entry>
<entry>01110</entry></row>
<row>
<entry>ν<sub>6</sub> = XX11X</entry>
<entry>ν<sub>3</sub><sup>merged</sup> = 0X110</entry>
<entry/>
<entry/>
<entry>0X110</entry>
<entry>01110</entry></row>
<row>
<entry>(a)</entry>
<entry>(b)</entry>
<entry>(c)</entry>
<entry>(d)</entry>
<entry>(e)</entry>
<entry>(f)</entry></row></tbody></tgroup>
</table>
</tables></p>
<p id="p0053" num="0053">Referring to the above example, (a) denotes a sequence of 6 test vectors, and (b) shows the merged test vectors that are generated when executing the above algorithm. The resulting sequence consists of 3 merged test vectors as shown in (c). The specified bits in the original sequence of test vectors of (a) can be reconstructed from the sequence of merged test vectors of (c) by repeating each merged vector a number of times as indicated by (d). The reconstructed vector sequence is shown in (e), where the differences with (a) are underlined. It can be seen that both sequences have the same specified bits, but some don't care bits have been filled in (e). The remaining don't care bits in the merged test vectors can be filled randomly, as for example, illustrated in (f).</p>
<p id="p0054" num="0054">In the above example, storing the original test vector sequence requires storing 6 test vectors. Storing the merged test vector sequence requires storing only 3 merged test vectors, plus the repeat count for each merged test vector. The net effect is a significant reduction of the test data volume for storing this vector sequence.</p>
<p id="p0055" num="0055">For unordered pattern sets, the possibility to reorder the test patterns offers an additional degree of freedom. It is preferred to order the patterns in such a way that the last merged test vector of a pattern is compatible with the first merged test vector of the subsequent pattern. If this is the case, then these two merged test vectors can be merged into a single merged test vector.</p>
<p id="p0056" num="0056">Example 2 (below) refers to two test patterns (column (a)). The last vector of pattern 1 (ν<sub>3</sub><sup>merged</sup>) is incompatible with the first vector of pattern 2 (ν<sub>4</sub><sup>merged</sup>), and hence ordering pattern 2 after pattern 1 is not preferred. The last vector of pattern 2 (ν<sub>6</sub><sup>merged</sup>) is compatible with the first vector of pattern 1 (ν<sub>1</sub><sup>merged</sup>), and hence it is preferred to order pattern 2 before pattern 1. The resulting sequence of merged vectors with their repeat counts after test pattern reordering is illustrated by column (b).<!-- EPO <DP n="12"> --></p>
<heading id="h0002">Example 2</heading>
<p id="p0057" num="0057">
<tables id="tabl0002" num="0002">
<table frame="none">
<tgroup cols="5" colsep="0" rowsep="0">
<colspec colnum="1" colname="col1" colwidth="19mm"/>
<colspec colnum="2" colname="col2" colwidth="32mm"/>
<colspec colnum="3" colname="col3" colwidth="10mm"/>
<colspec colnum="4" colname="col4" colwidth="32mm"/>
<colspec colnum="5" colname="col5" colwidth="10mm"/>
<tbody>
<row>
<entry>Pattern 1:</entry>
<entry>ν<sub>1</sub> <sup>merged</sup> = 0x010</entry>
<entry>3</entry>
<entry>ν<sub>4</sub> <sup>merged</sup> = 0X010</entry>
<entry>2</entry></row>
<row>
<entry/>
<entry>ν<sub>2</sub> <sup>merged</sup> = 1 XXXX</entry>
<entry>2</entry>
<entry>ν<sub>5</sub> <sup>merged</sup> = XIXXI</entry>
<entry>2</entry></row>
<row>
<entry/>
<entry>ν<sub>3</sub> <sup>merged</sup> = 0X100</entry>
<entry>1</entry>
<entry>ν<sub>6</sub><sup>merged</sup> = 0X010</entry>
<entry>5</entry></row>
<row>
<entry/>
<entry/>
<entry/>
<entry>ν<sub>2</sub> <sup>merged</sup> = 1 XXXX</entry>
<entry>2</entry></row>
<row>
<entry>Pattern 2:</entry>
<entry>ν<sub>4</sub> <sup>merged</sup> = 0X010</entry>
<entry>2</entry>
<entry>ν<sub>3</sub> <sup>merged</sup> = 0X110</entry>
<entry>1</entry></row>
<row>
<entry/>
<entry>ν<sub>5</sub> <sup>merged</sup> = XIXXI</entry>
<entry>2</entry>
<entry/>
<entry/></row>
<row>
<entry/>
<entry>ν<sub>6</sub> <sup>merged</sup> = 0XX10</entry>
<entry>2</entry>
<entry/>
<entry/></row>
<row>
<entry/>
<entry>(a)</entry>
<entry/>
<entry>(b)</entry>
<entry/></row></tbody></tgroup>
</table>
</tables></p>
<p id="p0058" num="0058">It can be seen, therefore, that the above procedure for pattern reordering is optimal, i.e. results in the shortest possible sequence of merged test vectors.</p>
<p id="p0059" num="0059">The merging of test vectors and reordering of test patterns can be integrated into the ATPG procedure. The don't care stimulus bits are now filled in such a way that compatible test vectors are created, which can be merged.</p>
<p id="p0060" num="0060">Two possible ATPG flows are shown in Figures 2A and 2B respectively. In Figure 2A merge-fill is done for each individual test pattern, immediately after the pattern has been generated. The advantage of this approach is that the padded stimulus bits are considered during fault simulation, and hence the faults that are detected due to these stimulus bits are marked as detected faults. In Figure 2B merge-fill is done after all patterns have been generated. Since fault simulation is performed on the patterns without padding, the number of test patterns may be slightly larger than for the flow in Figure 2A. The advantage of the flow in Figure 2B is somewhat more flexibility. In both flows, pattern reordering with vector merging, and a final fault simulation are optional.</p>
<p id="p0061" num="0061">Merging of vectors can be done for any sequence of vectors that have size n. In principle, for a circuit with <i>t</i> pins, all test vector have size <i>t</i>, and hence n = <i>t.</i> It is also possible to split each <i>t</i>-bit vector <i>ν<sub>i</sub></i> into a number of sub-vectors ν<sub>i1,</sub> ...., <i>ν</i><sub><i>im</i>.</sub> Each sub-vector <i>ν</i><sub>ij</sub> has size <i>s</i>(ν<sub>ij</sub>), with 1 &lt; <i>s</i>(ν<sub>ij</sub>) &lt; <i>t</i>, and Σ<sub>l&lt;j&lt;m</sub> <i>s</i>(ν<sub>ij</sub>) = <i>t</i>. A sub-vector corresponds to the stimulus bits for a set of IC pins. Such a set of pins is usually referred to as a "pin-group" or "port".</p>
<p id="p0062" num="0062">Reduction of test data volume is achieved by the vector-repeat capability that is supported by current ATE. On some ATE vector-repeat is only possible for all pins: there is only a single port that contains all IC pins and hence there is only a single sequence of vectors. On other ATE, vector-repeat is possible per group of pins: there are multiple ports,<!-- EPO <DP n="13"> --> where each port contains some subset of the IC pins, and there are as many sequences of sub-vectors as there are ports. In the extreme cases, each port contains a single pin, or a single port contains all pins. For other configurations, the number of pins per port varies between one and the number of IC pins.</p>
<p id="p0063" num="0063">In Example 3 (below), the first sequence of sub-vectors ν<sub>i1</sub> is applied on port 1, and the second sequence of sub-vectors ν<sub>i2</sub> on port 2. The above algorithm for merging test vectors is now executed twice: once on the first sequence of sub-vectors ν<sub>i1</sub>, and independently on the second sequence of sub-vectors ν<sub>i2</sub>. The results are shown in columns (b) and (c). The sequences of merged sub-vectors can be compressed as shown in columns (d) and (e). For each port, the merged sub-vectors are shown and the number of times that each sub-vector is repeated. The sequence on port 2 is represented by a single vector "10", which is repeated 6 times.</p>
<heading id="h0003">Example 3</heading>
<p id="p0064" num="0064">
<tables id="tabl0003" num="0003">
<table frame="none">
<tgroup cols="7" colsep="0" rowsep="0">
<colspec colnum="1" colname="col1" colwidth="24mm"/>
<colspec colnum="2" colname="col2" colwidth="28mm"/>
<colspec colnum="3" colname="col3" colwidth="26mm"/>
<colspec colnum="4" colname="col4" colwidth="27mm"/>
<colspec colnum="5" colname="col5" colwidth="10mm"/>
<colspec colnum="6" colname="col6" colwidth="26mm"/>
<colspec colnum="7" colname="col7" colwidth="10mm"/>
<tbody>
<row>
<entry>Port 1, Port 2</entry>
<entry>Port 1</entry>
<entry>Port 2</entry>
<entry namest="col4" nameend="col5" align="left">Port 1</entry>
<entry namest="col6" nameend="col7" align="left">Port 2</entry></row>
<row>
<entry>ν<sub>1</sub> = (0XX,1 X)</entry>
<entry>ν<sub>11</sub> <sup>merged</sup> = 0XX</entry>
<entry>ν<sub>12</sub> <sup>merged</sup> = 1X</entry>
<entry>ν<sub>11</sub><sup>merged</sup> : 0X0</entry>
<entry>3</entry>
<entry>ν<sub>12</sub> <sup>merged</sup> = 10</entry>
<entry>6</entry></row>
<row>
<entry>ν<sub>2</sub> = (XX0,1X)</entry>
<entry>ν<sub>11</sub> <sup>merged</sup> = 0X0</entry>
<entry>ν<sub>12</sub> <sup>merged</sup> = 1X</entry>
<entry>ν<sub>21</sub> <sup>merged</sup> = 1XX</entry>
<entry>1</entry>
<entry/>
<entry/></row>
<row>
<entry>ν<sub>3</sub> = (0XX,X0)</entry>
<entry>ν<sub>11</sub> <sup>merged</sup> = 0X0</entry>
<entry>ν<sub>12</sub> <sup>merged</sup> = 10</entry>
<entry>ν<sub>31</sub> <sup>merged</sup> = 0X1</entry>
<entry>2</entry>
<entry/>
<entry/></row>
<row>
<entry>ν<sub>4</sub> = (1XX.XX)</entry>
<entry>ν<sub>21</sub> <sup>merged</sup> = 1XX</entry>
<entry>ν<sub>12</sub> <sup>merged</sup> = 10</entry>
<entry/>
<entry/>
<entry/>
<entry/></row>
<row>
<entry>ν<sub>5</sub> = (0XX,X0)</entry>
<entry>ν<sub>31</sub> <sup>merged</sup> = 0XX</entry>
<entry>ν<sub>12</sub> <sup>merged</sup> = 10</entry>
<entry/>
<entry/>
<entry/>
<entry/></row>
<row>
<entry>ν<sub>6</sub> = (XX1,1X)</entry>
<entry>ν<sub>31</sub> <sup>merged</sup> = 0X</entry>
<entry>ν<sub>12</sub> <sup>merged</sup> = 10</entry>
<entry/>
<entry/>
<entry/>
<entry/></row>
<row>
<entry>(a)</entry>
<entry>(b)</entry>
<entry>(c)</entry>
<entry namest="col4" nameend="col5" align="left">(d)</entry>
<entry namest="col6" nameend="col7" align="left">(e)</entry></row></tbody></tgroup>
</table>
</tables></p>
<p id="p0065" num="0065">The basic idea proposed above is to use merge fill as ATPG padding strategy. It can be proved mathematically that the use of merge fill gives optimal results, that is, results in the longest possible sequences of compatible vectors and hence the longest repeat counts. Analysis, as well as simulation results, showing the following:</p>
<p id="p0066" num="0066">For repeat-per-pin (i.e. a port contains a single pin), merge fill is the same as repeat fill. Hence, in this case, both merge fill and repeat fill perform optimally, and the average repeat count with merge fill or repeat fill is proven to be higher than the average repeat count obtained with other padding strategies like random fill, zero fill, or one fill. For repeat-per-port (i.e. a port contains more than 1 pin), the average repeat count with merge fill is proven to be optimal, and is much larger than the average repeat count with repeat fill or other padding types.<!-- EPO <DP n="14"> --></p>
<p id="p0067" num="0067">Mathematical analysis indicates that the average repeat count for ports of n bits, is of the form <maths id="math0001" num=""><math display="inline"><msub><mi>E</mi><mi>n</mi></msub><mo>=</mo><msub><mi>c</mi><mi>n</mi></msub><mfenced><mi>q</mi></mfenced><mo>⋅</mo><mfrac><mn>1</mn><mi>p</mi></mfrac><mo>,</mo></math><img id="ib0001" file="imgb0001.tif" wi="27" he="13" img-content="math" img-format="tif" inline="yes"/></maths> where <i>pq</i> is the probability that a stimulus bit is 0,<i>p</i>(1-q) is the probability that a stimulus bit is 1, and 1-<i>p</i> is the probability that a stimulus bit is X. <i>c<sub>n</sub></i>(<i>q</i>) is some constant that that depends on <i>n</i> and <i>q</i>.<br/>
For example, if <i>n</i> = 1, then the average repeat count with merge fill is: <maths id="math0002" num=""><math display="block"><msub><mi>E</mi><mn>1</mn></msub><mo>=</mo><msub><mi>c</mi><mn>1</mn></msub><mfenced><mi>q</mi></mfenced><mo>⋅</mo><mfrac><mn>1</mn><mi>p</mi></mfrac><mspace width="1em"/><mi>with</mi><mspace width="1em"/><msub><mi>c</mi><mn>1</mn></msub><mfenced><mi>q</mi></mfenced><mo>=</mo><mfrac><mn>1</mn><mrow><mn>2</mn><mo>⁢</mo><mi>q</mi><mo>⁢</mo><mfenced separators=""><mn>1</mn><mo>-</mo><mi>q</mi></mfenced></mrow></mfrac></math><img id="ib0002" file="imgb0002.tif" wi="62" he="13" img-content="math" img-format="tif"/></maths> And, if <i>n</i> = 2, then: <maths id="math0003" num=""><math display="block"><msub><mi>E</mi><mn>2</mn></msub><mo>=</mo><msub><mi>c</mi><mn>2</mn></msub><mfenced><mi>q</mi></mfenced><mo>⋅</mo><mfrac><mn>1</mn><mi>p</mi></mfrac><mspace width="1em"/><mi>with</mi><mspace width="1em"/><msub><mi>c</mi><mn>2</mn></msub><mfenced><mi>q</mi></mfenced><mo>=</mo><mn>1</mn><mo>+</mo><mfrac><mrow><mn>1</mn><mo>-</mo><mi>q</mi></mrow><mrow><mn>4</mn><mo>⁢</mo><mi>q</mi><mo>⁢</mo><mfenced separators=""><mn>1</mn><mo>+</mo><mi>q</mi></mfenced></mrow></mfrac><mo>+</mo><mfrac><mi>q</mi><mrow><mn>4</mn><mo>⁢</mo><mfenced separators=""><mn>1</mn><mo>-</mo><mi>q</mi></mfenced><mo>⁢</mo><mfenced separators=""><mn>2</mn><mo>-</mo><mi>q</mi></mfenced></mrow></mfrac></math><img id="ib0003" file="imgb0003.tif" wi="91" he="13" img-content="math" img-format="tif"/></maths></p>
<p id="p0068" num="0068">For instance, for <i>q</i> = 1/3 and p = 0.003, it follows that <i>E</i><sub>1</sub> = 750 and <i>E</i><sub>2</sub> = 483. These results correspond to simulation results with random test vectors, which show 744 and 485 respectively.</p>
<p id="p0069" num="0069">Results of simulation with random test vectors are shown in Figure 3. The figure shows the average repeat count for various padding types, while varying the number of pins per port. The figure shows that for n = I (repeat-per-pin), merge fill and repeat fill perform equally well. For n &gt; I (repeat-per-port), merge fill clearly outperforms repeat fill and other padding types.</p>
<p id="p0070" num="0070">Figure 4 shows the average repeat count with merge fill for various values of p. The figure shows that the average repeat count decreases if <i>p</i> increases. This is as expected, since increasing p implies that the amount of don't care stimulus bits decreases, which leaves less room for optimizing repeat count by smartly filling of the don't cares. Figure 3 and Figure 4 both show that the average repeat count also decreases with increasing number of pins per port. This is also as expected, since having more pins per port lowers the probability of having compatible vectors.</p>
<p id="p0071" num="0071">Figure 5 shows the ratio of the average repeat counts obtained with merge fill and repeat fill, while varying the number of pins per port and probability <i>p</i>. E.g. for <i>pq =</i> 0.01, the average repeat count with merge fill is up to 6 times larger than with repeat fill.</p>
<heading id="h0004">Example</heading>
<p id="p0072" num="0072">The following example of vector repeat is taken from US patent application No. <patcit id="pcit0003" dnum="US20020099992A"><text>US2002/0099992</text></patcit>. Consider the following 15 vectors of 9 bits wide. (Each column<!-- EPO <DP n="15"> --> corresponds to a vector, and the vectors are ordered from right to left. The symbol "-" indicates that a bit is don't care.) Storing these 15 vectors requires 15 x 9 = 135 bits.<maths id="math0004" num=""><math display="block"><mtable><mtr><mtd><mn>9</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd></mtr><mtr><mtd><mn>8</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mn>1</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd></mtr><mtr><mtd><mn>7</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mn>1</mn></mtd><mtd><mo>-</mo></mtd><mtd><mn>1</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>6</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mn>1</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd></mtr><mtr><mtd><mn>5</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mn>1</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd></mtr><mtr><mtd><mn>4</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mn>1</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd></mtr><mtr><mtd><mn>3</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd></mtr><mtr><mtd><mn>2</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mn>1</mn></mtd><mtd><mo>-</mo></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd><mtd><mo>-</mo></mtd></mtr></mtable></math><img id="ib0004" file="imgb0004.tif" wi="30" he="44" img-content="math" img-format="tif"/></maths></p>
<p id="p0073" num="0073">The following vectors are obtained when applying repeat fill, and 0-fill for the initial don't care bits as proposed in <patcit id="pcit0004" dnum="US20020099992A"><text>US2002/0099992</text></patcit>. (The vectors again are ordered from right to left).<maths id="math0005" num=""><math display="block"><mtable><mtr><mtd><mn>9</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>8</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>7</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>6</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>5</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>4</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>3</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>2</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></math><img id="ib0005" file="imgb0005.tif" wi="35" he="44" img-content="math" img-format="tif"/></maths></p>
<p id="p0074" num="0074">It is now is required to store only 5 vectors (indicated in boldface), with repeat counts of 2 (vector 1-2), 3 (vector 3-5), 2 (vector 6-7), 2 (vector 8-9), and 6 (vector 10-15). This requires 5x9 = 45 bits of storage, plus 5 repeat count values, which results in (135-45)/135 =67% reduction.</p>
<p id="p0075" num="0075">The following vectors are obtained when applying merge fill, as proposed in the present invention. (The vectors again are ordered from right to left).<maths id="math0006" num=""><math display="block"><mtable><mtr><mtd><mn>9</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>8</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>7</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>6</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>5</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>4</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>3</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>2</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></math><img id="ib0006" file="imgb0006.tif" wi="38" he="43" img-content="math" img-format="tif"/></maths><!-- EPO <DP n="16"> --></p>
<p id="p0076" num="0076">It is now required to store only 3 vectors (indicated in boldface), with repeat counts of 2 (vector 1-2), 5(vector 3-7), and 8(vector 8-15). This requires 3 x 9 = 27 bits, plus 3 repeat count values, which results in (135-27)/135 = 80% reduction.</p>
<p id="p0077" num="0077">Thus, the present invention proposes merge fill in ATPG padding for reducing test data volume. Test vectors typically contain a large amount of don't care bits (often &gt;90%), and these don't care bits can be modified without affecting the fault coverage of these vectors. The basic idea of merge fill is to fill the don't care bits in such a way that a sequence of compatible test vectors is created. Compatible vectors can be merged into a single test vector plus a repeat count value. Our compression corresponds to run-length encoding of a sequence of test vectors. It can be proven that the use of merge fill results in an optimal run-length code, in the sense that the longest possible run-lengths are achieved.</p>
<p id="p0078" num="0078">Storing merged test vectors and repeat counts, requires less ATE memory, when compared to storing the original test vectors. Merge fill is optimal, and outperforms all prior padding types.</p>
<p id="p0079" num="0079">In the specification, the notion of merge fill was extended for repeat-per-port, where each test vector is split into a number of sub-vectors, one sub-vector per port. For each port, merge fill can be applied independently. We also used an additional degree of freedom to reorder the test patterns, to further reduce the amount of merged test vectors.</p>
<p id="p0080" num="0080">The present invention offers an efficient and effective solution for handling the increasing test data volumes referenced to above. Application of the present invention avoids the threads on test quality, test time, and test costs.</p>
<p id="p0081" num="0081">Embodiments of the present invention have been described above by way of examples only, and it will be apparent to a person skilled in the art that modifications and variations can be made to the described embodiments without departing from the scope of the invention as defined by the appended claims. It will be further understood that the term "comprising" is not intended to exclude other elements or steps, the terms "a" or "an" are not intended to exclude a plurality, and a single processor, or other unit may fulfill the functions of several means recited in the claims.</p>
</description><!-- EPO <DP n="17"> -->
<claims id="claims01" lang="en">
<claim id="c-en-01-0001" num="0001">
<claim-text>A method of compressing data comprising a sequence of at least two subsequent vectors, wherein each vector comprises a plurality of subvectors, each subvector comprising one or more bits, each of said bits corresponding to a respective pin from a set of pins of an integrated circuit (104, 208) comprising a plurality of sets of pins (204); the method being <b>characterized by</b> the steps of:
<claim-text>i) comparing corresponding bits of two or more subvectors from subsequent vectors to determine if said subvectors are compatible, and, if all corresponding bits of said subvectors are compatible:</claim-text>
<claim-text>ii) merging said two or more subvectors to create a single subvector representative thereof; wherein compatibility of two bits is achieved provided that they do not have specifically incompatible or opposite values.</claim-text></claim-text></claim>
<claim id="c-en-01-0002" num="0002">
<claim-text>A method according to claim 1, further comprising repeating the comparing step and the merging step for the different sets of pins (204).</claim-text></claim>
<claim id="c-en-01-0003" num="0003">
<claim-text>A method according to claim 1, wherein said data comprises test vector data for use in testing a logic product, and the method includes the steps of generating or obtaining original test vector data comprising "care" bits and "don't care "bits", and compressing said test vector data according to steps i) and ii).</claim-text></claim>
<claim id="c-en-01-0004" num="0004">
<claim-text>A method according to claim 3, wherein said original test vector data is generated by means of an Automated Test Pattern Generation (ATPG) tool.</claim-text></claim>
<claim id="c-en-01-0005" num="0005">
<claim-text>A method according to any one of claims 1 to 4, including the step of generating a repeat value in respect of one or more merged subvectors, said repeat value being indicative of a number of times the respective merged subvector should be repeated to reconstruct the care bits in the subvectors of which the merged subvector is representative.</claim-text></claim>
<claim id="c-en-01-0006" num="0006">
<claim-text>A data set comprising test vector data for use in testing a logic product, said test vector data being compressed by the method of claim 5.</claim-text></claim>
<claim id="c-en-01-0007" num="0007">
<claim-text>A method of testing an integrated circuit (104, 208) comprising a plurality of sets of pins (204), the method comprising the steps of:<!-- EPO <DP n="18"> -->
<claim-text>generating compressed test vector data according to claim 6 for a set of pins (204);</claim-text>
<claim-text>reconstructing the test vector data by repeating the merged subvector one or more times according to their respective repeat values for said set of pins;</claim-text>
<claim-text>applying said reconstructed test vector data to the corresponding set pins (204) of the integrated circuit; and</claim-text>
<claim-text>obtaining the resultant output data.</claim-text></claim-text></claim>
<claim id="c-en-01-0008" num="0008">
<claim-text>A method according to claim 7, comprising repeating said steps for the different sets of pins (204) of the integrated circuit.</claim-text></claim>
</claims><!-- EPO <DP n="19"> -->
<claims id="claims02" lang="de">
<claim id="c-de-01-0001" num="0001">
<claim-text>Verfahren zur Komprimierung von Daten umfassend eine Folge von wenigstens zwei aufeinanderfolgenden Vektoren, wobei jeder Vektor eine Vielzahl von Untervektoren umfasst und jeder Untervektor ein Bit oder mehrere Bits umfasst, wobei jedes Bit einem betreffenden Anschluss aus einem Satz von Anschlüssen einer integrierten Schaltung (104, 208) entspricht, die eine Vielzahl von Sätzen von Anschlüssen (204) umfasst, wobei das Verfahren durch die Schritte <b>gekennzeichnet</b> ist:
<claim-text>i) Vergleichen entsprechender Bits von zwei oder mehreren Untervektoren aus nachfolgenden Vektoren, um festzulegen, ob die Untervektoren kompatibel sind, und, wenn alle entsprechenden Bits der Untervektoren kompatibel sind: ii) Vereinigen der zwei oder der mehreren Untervektoren, um einen einzigen, dafür repräsentativen Untervektor zu erzeugen, wobei eine Kompatibilität von zwei Bits erreicht wird, vorausgesetzt, dass sie keine spezifisch inkompatiblen oder entgegengesetzten Werte aufweisen.</claim-text></claim-text></claim>
<claim id="c-de-01-0002" num="0002">
<claim-text>Verfahren gemäß Anspruch 1, weiter umfassend ein Wiederholen des Vergleichsschritts und des Vereinigungsschritts für die unterschiedlichen Sätze von Anschlüssen (204).</claim-text></claim>
<claim id="c-de-01-0003" num="0003">
<claim-text>Verfahren gemäß Anspruch 1, bei dem die Daten Testvektor-Daten zur Verwendung bei einem Test eines logischen Produktes umfassen und das Verfahren die Schritte eines Erzeugens oder Erhaltens von ursprünglichen Testvektor-Daten umfassend "wichtig zu nehmende" Bits und "nicht wichtig zu nehmende" Bits und eines Komprimierens der Testvektor-Daten gemäß Schritten i) und ii) einschließt.</claim-text></claim>
<claim id="c-de-01-0004" num="0004">
<claim-text>Verfahren gemäß Anspruch 3, bei dem die ursprünglichen Testvektor-Daten mittels eines Automatisierten Testmustererzeugungs-(ATPG)-Hilfsmittels erzeugt werden.<!-- EPO <DP n="20"> --></claim-text></claim>
<claim id="c-de-01-0005" num="0005">
<claim-text>Verfahren gemäß einem der Ansprüche 1 bis 4, enthaltend den Schritt eines Erzeugens eines Wiederholwertes bezüglich eines Untervektors oder mehrerer vereinigter Untervektoren, wobei der Wiederholwert eine Anzahl von Malen anzeigt, die der entsprechende vereinigte Untervektor wiederholt werden sollte, um die "wichtig zu nehmenden" Bits in den Untervektoren, für die der vereinigte Untervektor repräsentativ ist, zu rekonstruieren.</claim-text></claim>
<claim id="c-de-01-0006" num="0006">
<claim-text>Datensatz umfassend Testvektor-Daten zur Benutzung bei einem Test eines logischen Produkts, wobei die Testvektor-Daten durch das Verfahren des Anspruchs 5 komprimiert sind.</claim-text></claim>
<claim id="c-de-01-0007" num="0007">
<claim-text>Verfahren zum Testen einer integrierten Schaltung (104, 208) umfassend eine Vielzahl von Sätzen von Anschlüssen (204), wobei das Verfahren die folgenden Schritte umfasst:
<claim-text>Erzeugen komprimierter Testvektor-Daten gemäß Anspruch 6 für einen Satz von Anschlüssen (204);</claim-text>
<claim-text>Rekonstruieren der Testvektor-Daten zum Wiederholen des vereinigten Untervektors einmal oder mehrere Male gemäß ihren jeweiligen Wiederholwerten für den Satz von Anschlüssen;</claim-text>
<claim-text>Anwenden der rekonstruierten Testvektor-Daten auf den entsprechenden Satz von Anschlüssen (204) der integrierten Schaltung; und</claim-text>
<claim-text>Erhalten der resultierenden Ausgabedaten.</claim-text></claim-text></claim>
<claim id="c-de-01-0008" num="0008">
<claim-text>Verfahren gemäß Anspruch 7, umfassend ein Wiederholen der Schritte für die unterschiedlichen Sätze von Anschlüssen (204) der integrierten Schaltung.</claim-text></claim>
</claims><!-- EPO <DP n="21"> -->
<claims id="claims03" lang="fr">
<claim id="c-fr-01-0001" num="0001">
<claim-text>Procédé de compression de données comprenant une séquence d'au moins deux vecteurs consécutifs, dans lequel chaque vecteur comprend une pluralité de sous-vecteurs, chaque sous-vecteur comprenant un ou plusieurs binaires, chacun desdits binaires correspondant à une broche respective parmi un jeu de broches d'un circuit intégré (104, 208) comprenant une pluralité de jeux de broches (204) ; le procédé étant <b>caractérisé par</b> les étapes consistant à :
<claim-text>i) comparer les binaires correspondants de deux ou plusieurs sous-vecteurs issus de vecteurs consécutifs pour déterminer si lesdits sous-vecteurs sont compatibles et si tous les binaires correspondants desdits sous-vecteurs sont compatibles ;</claim-text>
<claim-text>ii) fusionner lesdits deux ou plusieurs sous-vecteurs pour créer un seul sous-vecteur représentatif de ceux-ci ; où la compatibilité de deux binaires est obtenue sous réserve qu'ils ne présentent pas des valeurs spécifiquement incompatibles ou opposées.</claim-text></claim-text></claim>
<claim id="c-fr-01-0002" num="0002">
<claim-text>Procédé selon la revendication 1, comprenant en outre les étapes consistant à répéter l'étape de comparaison et l'étape de fusion pour les différents jeux de broches (204).</claim-text></claim>
<claim id="c-fr-01-0003" num="0003">
<claim-text>Procédé selon la revendication 1, dans lequel lesdites données comprennent des données de vecteur de test à utiliser lors de l'essai d'un produit logique, et<!-- EPO <DP n="22"> --> le procédé comprend les étapes consistant à produire ou obtenir des données de vecteur de test initiales comprenant des binaires "non négligeables" et des binaires "négligeables", et compresser lesdites données de vecteur de test selon les étapes i) et ii).</claim-text></claim>
<claim id="c-fr-01-0004" num="0004">
<claim-text>Procédé selon la revendication 3, dans lequel lesdites données de vecteur de test initiales sont produites au moyen d'un outil de programmation de génération automatisé de motif de test (ATPG).</claim-text></claim>
<claim id="c-fr-01-0005" num="0005">
<claim-text>Procédé selon l'une quelconque des revendications 1 à 4, comprenant l'étape consistant à produire une valeur répétée en fonction d'un ou plusieurs sous-vecteurs fusionnés, ladite valeur répétée indiquant un certain nombre de fois que le sous-vecteur fusionné respectif doit être répété pour reconstruire les binaires non négligeables dans les sous-vecteurs dont le sous-vecteur fusionné est représentatif.</claim-text></claim>
<claim id="c-fr-01-0006" num="0006">
<claim-text>Jeu de données comprenant des données de vecteur de test à utiliser lors de l'essai d'un produit logique, lesdites données de vecteur de test étant compressées par le procédé de la revendication 5.</claim-text></claim>
<claim id="c-fr-01-0007" num="0007">
<claim-text>Procédé d'essai d'un circuit intégré (104, 208) comprenant une pluralité de jeux de broches (204), le procédé comprenant les étapes consistant à :
<claim-text>- produire des données de vecteur de test compressées selon la revendication 6, pour un jeu de broches (204) ;<!-- EPO <DP n="23"> --></claim-text>
<claim-text>- reconstruire les données de vecteur de test en répétant le sous-vecteur fusionné une ou plusieurs fois en fonction de leurs valeurs répétées pour ledit jeu de broches ;</claim-text>
<claim-text>- appliquer lesdites données de vecteur de test reconstruites sur les broches du jeu correspondant (204) du circuit intégré ; et</claim-text>
<claim-text>- obtenir les données de sortie résultantes.</claim-text></claim-text></claim>
<claim id="c-fr-01-0008" num="0008">
<claim-text>Procédé selon la revendication 7, comprenant l'étape consistant à répéter lesdites étapes pour les différents jeux de broches (204) du circuit intégré.</claim-text></claim>
</claims><!-- EPO <DP n="24"> -->
<drawings id="draw" lang="en">
<figure id="f0001" num=""><img id="if0001" file="imgf0001.tif" wi="120" he="226" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="25"> -->
<figure id="f0002" num=""><img id="if0002" file="imgf0002.tif" wi="91" he="187" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="26"> -->
<figure id="f0003" num=""><img id="if0003" file="imgf0003.tif" wi="89" he="172" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="27"> -->
<figure id="f0004" num=""><img id="if0004" file="imgf0004.tif" wi="160" he="211" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="28"> -->
<figure id="f0005" num=""><img id="if0005" file="imgf0005.tif" wi="165" he="112" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="29"> -->
<figure id="f0006" num=""><img id="if0006" file="imgf0006.tif" wi="145" he="143" img-content="drawing" img-format="tif"/></figure>
</drawings>
<ep-reference-list id="ref-list">
<heading id="ref-h0001"><b>REFERENCES CITED IN THE DESCRIPTION</b></heading>
<p id="ref-p0001" num=""><i>This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.</i></p>
<heading id="ref-h0002"><b>Patent documents cited in the description</b></heading>
<p id="ref-p0002" num="">
<ul id="ref-ul0001" list-style="bullet">
<li><patcit id="ref-pcit0001" dnum="US20020099991A1"><document-id><country>US</country><doc-number>20020099991</doc-number><kind>A1</kind></document-id></patcit><crossref idref="pcit0001">[0012]</crossref></li>
<li><patcit id="ref-pcit0002" dnum="US20020099992A1"><document-id><country>US</country><doc-number>20020099992</doc-number><kind>A1</kind></document-id></patcit><crossref idref="pcit0002">[0012]</crossref></li>
<li><patcit id="ref-pcit0003" dnum="US20020099992A"><document-id><country>US</country><doc-number>20020099992</doc-number><kind>A</kind></document-id></patcit><crossref idref="pcit0003">[0072]</crossref><crossref idref="pcit0004">[0073]</crossref></li>
</ul></p>
<heading id="ref-h0003"><b>Non-patent literature cited in the description</b></heading>
<p id="ref-p0003" num="">
<ul id="ref-ul0002" list-style="bullet">
<li><nplcit id="ref-ncit0001" npl-type="s"><article><author><name>S. VENKATARAMAN et al.</name></author><atl>IEEE/ACM International Conference on Computer Aided Design</atl><serial><sertitle>Digest of Technical Papers</sertitle><pubdate><sdate>19930000</sdate><edate/></pubdate><vid>11</vid></serial><location><pp><ppf>572</ppf><ppl>577</ppl></pp></location></article></nplcit><crossref idref="ncit0001">[0016]</crossref></li>
<li><nplcit id="ref-ncit0002" npl-type="s"><article><author><name>S-J WANG et al.</name></author><atl>Generating Efficient Scan Tests for Continuous Scan</atl><serial><sertitle>Proc. of the 38th Conference on Design and Automation (DAC</sertitle><pubdate><sdate>20010000</sdate><edate/></pubdate></serial><location><pp><ppf>162</ppf><ppl>165</ppl></pp></location></article></nplcit><crossref idref="ncit0002">[0017]</crossref></li>
</ul></p>
</ep-reference-list>
</ep-patent-document>
