Pattern generator

Abstract: This invention relates to a pattern generator (l00-l, ..., l00-N) permitting to output patterns with a high speed and having an operating function, which is suitable e.g. for generating test patterns for memory ICs. Although it was known heretofore to increase the operating speed by operating a plurality of pattern generators, for which patterns were generated from memories, in which patterns were previously stored, in parallel, it was not possible to operate pattern generators having an operating function in parallel. This invention is characterized in a method, by which the order of execution of operation processing instructions ( - ) is assigned to each of the pattern generators and operation processing instructions are accumulated. According to this invention an effect can be obtained that patterns are generated with a high speed by means of a pattern generator having an operating function.

Description: BACKGROUND OF THE INVENTION This invention relates to a pattern generator and in particular to a pattern generator which is suitable for generating patterns having an operating function with a high speed. A prior art pattern generator for IC testing is described JP-A-54-12657, in which outputs are taken from N pattern generators sequentially, and pattern generation is effected at a speed N times that of the individual pattern generator. In case a logic IC is to be tested with a test pattern, which has no algorithmic property and is called a random pattern, the individual pattern generator is usually constructed with a memory which stores the test pattern itself, and a relatively simple control logic circuit which reads out the test pattern, and it seems that it can be easily realised to speed up its operation by parallel reading, as described in the above document. In case the tested IC is a memory, an algorithmic pattern generator (hereinbelow abbreviated as ALPG) of microprogrammed architecture having an operating function is used as the pattern generator. However, parallel operation of N ALPGs cannot be realised by simply connecting N identical ALPGs, because parallel operations, which are totally independent of each other, as performed by an array processor effecting vector operations, are not possible and also because dummy cycles coming from the particularity that it is a test pattern is not allowed. Thus, a hardware construction and parallel program techniques are required which are unavailable in prior art computer techniques. This fact is not taken into account in the techniques disclosed in the above document. Fig. 13 shows an approximate construction of a prior art memory IC test equipment. In this equipment a timing generator 3 generates a rate clock signal determining the test cycle, a phase signal determining at which time position within one cycle a test signal waveform should be given, etc. A pattern generator 2 receives the rate clock 4 coming from the timing generator 3, carries out a test program for every test cycle in synchronism therewith and generates various sorts of test patterns. This test program is, in general, sent from the computer 1 to the pattern generator 2 to be carried out therein, after a development or debug of a test system has been carried out in the computer 1. Pattern data 5 coming from the pattern generator 2 consists of data applied to the memory under test such as address data, data to be written, read/write control data, etc. and an expected value 6 which is to be compared with read out data. A fail memory T5 stores judgement result GO/NG obtained on the basis of a judgement stroke signal given by the timing generator 3 to the comparator, which result is transferred to the computer, after having carried out a test, to be subjected there to a defect analysis operation. Fig. 14 shows the approximate internal construction of the pattern generator 2 in Fig. 13, which consists roughly of a sequence control unit 7 and a data operating unit 8. The sequence control unit 7 has a microprogrammed architecture, as indicated in the figure, and consists of an instruction memory 9, in which microprograms are stored, a program counter 10 deciding the read address 14 therefor, a multiplexer 11, which changes over the branch address 13 generated during the execution of the program, the program execution starting address specified by the computer 1, etc., and an instruction decoder 101, which decodes the content of the program for generating a load signal 120, which takes in a new address into the program counter at the moment of branching, etc. and in addition an interruption control signal 111 to the computer 1, etc. Further, as indicated in Fig. 14, a register 100 storing instruction data 15 coming from the instruction memory 9 generates a branch address signal 13 to the multiplexer 11, a read/write control signal 110 to the memory under test T2 and instruction data 112 to the instruction decoder 101. The data operating unit 8 carries out arithmetic operations such as addition, subtraction, etc. and logic operations, such as 0/1 inversion, bit shift, etc. according to the instruction data 15 coming from the instruction memory 9 in the sequence control unit 7, and outputs an algorithmic pattern. In this way the ALPG has a feedback loop made of hardware for the branch address 13, a load signal to the program counter 10, etc. in order to realise operations including branch operations, such as loops. and repeats according to the program. For this reason, as a method similar to that disclosed in the above document to increase the speed by disposing in parallel a plurality of low speed memories, in which the test pattern is stored, a method may be proposed, by which a plurality of ALPGs indicated in Fig. 13 are disposed in parallel. However, as a test equipment for one pattern generator indicated in Fig. 13, it is impossible to use a plurality of test programs (microprograms) 12 connected in parallel as they are. This will be explained below by using a program for memory test pattern generation called galloping indicated in Figs. 15 and 16. Fig. 15 illustrates the content of the microprogram for galloping pattern generation together with the flow chart therefor, in case the capacity of memory under test n is 32 bits: (1) Clear all the cells of the memory under test by means of a loop L1, which is repeated 32 times. (2) Choose one of the cleared memory cells as the test cell and write data "1" in that memory address (A = address i). (3) Read out the data at the address (A = address i+j) in the neighbourhood of the test cell as a disturb cell and check it. (4) Read out the test cell address (A = address i) and examine influences of the access to the disturb cell. (5) Judge whether the access of the remaining 31 bits except for the test cell as the disturb cell is terminated after having read out again the disturb cell address (A = address i+j) and examine it, and if it is not terminated, return to the processing step (3) through a loop L2. Repeat (3)-(4)-(5). (6) Write data "0" in the test cell address to clear it after having read out all the remaining cells as the disturb cells for one test cell. Then, judge whether the read out and examination processes described above are terminated by using all cells as test cells. If not terminated, add 1 (i = i+1) to the present test cell address (A = address i) and return to the processing step (2) through a loop L3. The program of the galloping pattern in Fig. 15 is terminated and the flow is ended, after the examination has been terminated for the test cells by executing the processings (2)-(6). However, precisely speaking, the galloping pattern is terminated by executing the processings (1)-(6) in the form, where the data "0" and "1" are inverted, called inverse pattern examination, but this has been omitted. In this way even a long test pattern called n 2 sequence can be expressed by a program statement of only several lines having a loop structure as indicated in Fig. 15, by utilising the regularity of its generating pattern. Fig. 16 shows the possibility of the parallel execution, by which two ALPGs (I) and (II) are assigned alternatively to the steps of programs having a same content, for which the flow chart is represented schematically in Fig. 15. As the result, for all three loops L1, L2 and L3 indicated in Fig. 16, the ALPG which is in charge of the step at the starting point of the returning loop and the ALPG which is in charge of the step at the destination of the returning loop are always the same, and it is thus impossible to increase the speed by the alternative operation of the two ALPGs as they are, when the program in this figure is carried out. That is, the loop L1 in Fig. 16 is a repetition of a same step, in which the ALPG (I) operates alone, and an alternative execution of the ALPGs (I) and (II) is impossible. The loop L2 represents a repeated execution including the return from step (5) to step (3), and steps (3), (4) and (5) are executed alternatively one after another by (I), (II) and (I), respectively, but at the return of the loop L2 from step (5) to step (3), since the same ALPG (I) must execute two successive steps, parallel execution is impossible. Further, it can be seen that also for the loop L3, of the execution of the return of the loop the ALPG assigned to (6) and (2) is always (II) and therefore two different ALPGs cannot be assigned thereto. On the other hand, at each step of the program indicated in Fig. 16, the address calculation as indicated in Fig. 15 is performed. Consequently, in order that two ALPGs can perform a program alternatively, as indicated above, it is necessary that one of them performs operations after having known the result of operations obtained by the other. In the prior art ALPG system this was not taken into account, and also for the address calculation the parallel execution processing was not possible. As explained above, a test program formed for an IC test equipment constructed by one ALPG cannot be applied to any IC test equipment constructed by N parallel ALPGs for the purpose of increasing the speed. A new measure therefor was absolutely necessitated. US-A-4,389,723 discloses a system including the features found in the first part of each of claims 1 and 5. EP-A-0 211 087, which a prior-art document in the sense of Art. 54,3 EPC, discloses a system including arithmetic logic units configured in parallel, but does not suggest the conversion of series of instructions into sets of instructions for parallel execution, as in the present invention. SUMMARY OF THE INVENTION An object of this invention is to provide a pattern generator capable of resolving the problem of the prior art techniques as described above and generating a pattern with a high speed by the parallel operation of a plurality of ALPGs. This object is achieved by the pattern generator defined in claim 1 and by the method defined in claim 5. In accordance with an embodiment of the invention, loops are previously converted partially in a computer so that a test program (microprogram), which has been formed heretofore for an IC test equipment with one ALPG, can be executed sequentially and alternatively by N ALPGs, and in particular the contradiction in the successiveness produced in the loops, as stated with reference to Fig. 16, is eliminated. The processing steps, of which each of the N ALPGs is in charge for the program thus converted, are taken out and a program for N ALPGs is formed, based on the program for one ALPG, so that the processings, which have been made discrete as the result of the take out, can be executed correctly. The problem described above can be resolved by transforming the program in this way into the processings and by transmitting them before the execution of the test from the computer to the instruction memory 9 of each of the ALPGs. Figs. 4 and 5 illustrate examples of the program, for which the loops in the program indicated in Fig. 16 are converted for the parallel execution with two ALPGs so that they can be executed by the ALPGs (I) and (II). An important aspect of the invention lies in that each of the ALPG programs is formed by previously converting the loops by means of calculating means, as indicated in Figs. 4 and 5, so that the number of steps within a loop is an integer times as great as the number of the ALPGs disposed in parallel, in order to make the parallel execution for increasing the speed possible. A method of converting a program and assigning it to two ALPGs will be explained below more in detail, taking the parallel execution with two ALPGs as indicated in Figs. 4 and 5 as an example. Fig. 4(a) is identical to Fig. 16. Fig. 4(b) indicates the intermediate state, to which the innermost loops L1 and L2 in Fig. 4(a) are converted. At first, since the number of steps within the loop L1 is 1, the loop is converted so as to be doubled, i.e. so that the number of steps is 2, and the number of repetitions of the loop is reduced from 32 to 16. In this way the processing step (1) can be executed alternatively by using the two ALPGs (I) and (II). On the other hand, since the number of steps within the loop L2 is 3, when it is converted so as to be doubled, the number of steps becomes 6, which is an integer times as great as the number of ALPGs, i.e. 2×3, which makes alternative and parallel execution possible. However, in this example of L2, since the number of repetitions of the loop is 31, which is an odd number, the number of repetitions of the loop after the conversion of doubling is 15 and the remaining one loop is disposed before L2' as it is. In this case, another conversion method is used, by which all steps are included within L2' and the processing goes out of the loop in the middle course. Then the other outer loop L3' is converted in the same way. At this time the number of steps in the loop L3' includes the loop L2' converted therein, the number of steps within which should be taken into account. That is, the number of steps within L3' is 4 + (6 × 15) + 1 = 95. Consequently the relation that the number of steps is an integer times as great as the number of ALPGs, which is 2, cannot be obtained, and the successive execution is impossible at the return of the loop L3'. Fig. 4(c) indicates the result obtained by converting the loop L3' into 190 steps, which is twice as great as 95, so that the number of steps in the loop L3' is an integer, i.e. 2, times as great as the number of ALPGs. The number of repetitions of the loop L3" obtained by this conversion is 16, which is a half of 32, because the loop is converted to the doubled number of steps. The program after the conversion indicated in Fig. 4(c) as described above can be executed alternatively and sequentially by two ALPGs without contradiction in spite of the existence of the loops. In Fig. 4(c), for the second half of the conversion within the loop L3", the remaining processing added before the loop L2' due to the fact that the number of repetitions is an odd number, described by referring to Fig. 4(b), is added here the loop L2'. This is done while taking into account the easiness of the assignment of the program to the ALPGs (I) and (II). Figs. 5(a) and 5(b) indicate new programs formed by taking out the steps for the ALPGs (I) and (II), respectively, from Fig. 4(c). On the other hand, the fact that the program is thus converted and assigned to the ALPGs is for each of the ALPGs to carry out only the processings assigned thereto with an interval, which is equal to the number of the ALPGs and therefore it is necessary to give it the content of the processings executed by the other ALPGs as an accumulated instruction. This will be explained below more in detail. Fig. 6(a) indicates the operation of one prior art ALPG, in which S represents the state of the internal register for operation, etc. in the ALPGs and O indicates the output of the ALPGs. g is an output instruction, which is an instruction to obtain O based on S without changing the internal state S for operation of the ALPGs. f is an internal state renewal instruction. Now, it is assumed that S T is the internal state at a point of time (cycle) T. An output O T is obtained, based on an output instruction g T at the same point of time (cycle). S T is renewed by an internal state renewal instruction f T and another internal state S T+1 for operation at the succeeding point of time (cycle) T+1. That is, it is possible to represent the aspect, by which the ALPGs renew sequentially their internal state and output values corresponding thereto, by the following two equations: O T = g T (S T ) S T+1 = f T (S T ) Fig. 6(b) represents the aspect, in the case where the same output series as Fig. 6(a) is obtained by outputting sequentially by means of three ALPGs instead of two ALPGs stated above. Each of the ALPGs realises sequentially the discrete internal states and the outputs, which are originally for one ALPG, while executing the operations with a shift of one cycle between two successive ALPGs. Here the operation of ALPG (I) can be represented by the following two equations: O T = G T (S T ) ; S T+3 = F T (S T ). From Equations (1) and (3) O T = g T (S T ) = G T (S T ) ; thus g T = G T. and from Equations (2) and (4) S T+3 = f T+2 (S T+2 ) = f T+2 · f T+1 (S T+1 ) = f T+2 · f T+1 · f T (S T ) = F T (S T ) ; thus F T = f T+2 · f T+1 · f T are obtained, where f T+2 · f T+1 · f T means an accumulation of instruction effects, e.g. if f T instructs +1 to the separation register, f T+1 instructs +3 and f T+2 instructs -2, F T means +2, which is an accumulation of effects of +1+3-2. In general, for N ALPGs O T = G T (S T ) ; S T+N = F T (S T ) ; G T = g T ; F T = f T+N-1 · f T+N-2 · ··· ·f T+2 · f T+1 · f T ; These four equations (7), (8), (9) and (10) represent the principle for forming a parallel program. In the above, the method for forming the parallel program has been disclosed. Here the output instruction G T is the same as the conventional output instruction g T , as is clear from Equation (9) and no special hardware, which is not used heretofore, is required in order to realise it. However the internal state renewal instruction F T is an accumulation of N conventional internal state renewal instructions f, as indicated by Equation (10), which cannot be realised by using the prior art construction of the operating device for ALPG. Fig. 17 illustrates the construction of an operating device in a prior art ALPG. Such a construction is disclosed in JP-B-54-36055 and JP-B-57-52679. A prior art operating device as indicated in Fig. 17 was constructed so as to effect loading of the value in a constant data register 2A to an operating register, addition and subtraction. In contrast, the accumulated operating instruction requires functions, which the prior art operating device has not. Fig. 7 indicates a prior art operation instructing system and an accumulated operation instructing system. Fig. 7(a) shows one of the simplest set of prior art operating instructions and Fig. 7(b) illustrates a set of accumulated instructions. Similarly Fig. 7(c) shows a prior art enlarged instruction set and Fig. 7(d) illustrates a set of accumulated instructions therefor. Here n, n 1 and n 2 have different values, depending on the kind of accumulated instructions and the order of the arranged instructions. Therefore it is difficult to use them, set previously in the constant data register. Consequently, according to this invention the accumulated operation instruction is achieved by disposing an operating device 3A, in which information n, n 1 and n 2 is stored previously in a memory 1A, this information is read out at the operation, and arithmetic operations are effected with values in the constant data register 2A and the operating register 4A, as the construction of the operating device indicated in Fig. 11. Hereinbelow, taking a concrete program as an example, the method for forming a parallel programming and the aspect of the execution in the operating device will be described and their operations will be explained. Fig. 8(a) shows an ALPG program for one prior art ALPG. This is a program consisting of seven lines and constructed by execution order control instructions controlling the order of programs, operating instructions controlling loading and arithmetic operations, and output instructions, which make the operating register output its content as it is or inverted. Here, for the sake of simplicity, the execution order control instructions are not indicated as they are and only their order is indicated. Further, the operating instruction system is one indicated in Fig. 7(a). LDA R instructs to load the value of the constant data register R to the operating register A; INCR A instructs to add 1 to the operating register A; DECR A instructs to subtract 1 from the operating register A; and HOLD instructs not to change the value of the operating register A. OUTA is an output instruction, instructing to output the value of the operating register A as it is and OUTAB instructs to output inverted one of the values of the operating register A. Supposing that the value of the constant data register R is 100 and that the initial value of the operating register A is 0, Fig. 10(a) represents the output series obtained by executing the program indicated in Fig. 8(a). Now, taking a case where the same output series as that indicated above is obtained by using three ALPGs as an example, the formation of a parallel program will be described below. As stated previously, the parallel program is obtained by putting together N (3 in this example) ALPGs in the initial program according to the order of the execution. Fig. 8(b) illustrates the repeated parts, which are converted, in order to clarify the order of the execution of the program indicated in Fig. 8(a). In Figs. 9(a), 9(b) and 9(c) every 3 instructions are put together, starting from the position shifted one by one, in the order of the execution indicated in Fig. 8(b). For example, in Fig. 9(a), every 3 instructions are put together, starting from the position succeeding the beginning by 1 in Fig. 8(b). Here processings, by which the same instruction is obtained, are represented as repetitions. The third line in Fig. 9(a) includes three instructions (2), (3) and (4) in the original program put together. The output instruction uses the first among these three, which is (2), as it is, and the operating instruction puts 3, i.e. +1, Load A R and -1, together, forming Load A (R-1). Figs. 9(b) and 9(c) represent results obtained by converting the original program in the same way. Here, in contrast to the fact that all the numbers of loads to the operating register A were values in the constant data register R in the original program, after the conversion they are R-2, R-1, R, R+1, R+2. Further, contrarily to the fact that the operating instructions were +1 in the original program, the number of operations such as ADDA (addition) 3, SUBA (subtraction) 3, etc. is increased. The number of operations such as ±1, ±2, ±3, etc. can be calculated by storing them previously in the memory 1A of the operating device. In fact, adopting the construction of the operating device according to this invention, all the operations appearing in Figs. 9(a), 9(b) and 9(c) can be clearly realised. Figs. 10(b), 10(c) and 10(d) illustrate results of the execution of Figs. 9(a), 9(b) and 9(c), respectively. It can be understood that an output corresponding to Fig. 10(a), which is the initial output series, can be obtained sequentially from the three ALPGs. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a scheme illustrating an embodiment of the pattern generator according to this invention. Fig. 2 is a scheme showing the timing of the operation of principal signals in Fig. 1. Fig. 3 is a block diagram indicating the construction of an IC test equipment using a pattern generator according to this invention. Figs. 4 and 5 are schemes for explaining the program conversion method and the method for the assignment to the ALPGs, in the case where two ALPGs are operated in parallel. Fig. 6 is a scheme for explaining a parallel program formation method, in the case where three ALPGs are operated in parallel. Fig. 7 is a scheme for explaining a prior art operation instruction system and an accumulated operation instruction system. Figs. 8 and 9 are schemes illustrating a concrete example of the parallel program formation. Fig. 10 is a scheme for explaining a result of the execution of the parallel program, concerning the concrete example indicated in Figs. 8 and 9. Fig. 11 is a scheme illustrating an embodiment of the construction of an operating device in an IC test equipment according to this invention. Fig. 12 is a scheme illustrating another embodiment of the construction of an operating device according to this invention. Fig. 13 is an approximate scheme illustrating the construction of a prior art memory IC test equipment. Fig. 14 shows the internal construction of the pattern generator indicated in Fig. 13. Fig. 15 shows an example of the microprogram for the galloping pattern generation well known as a memory test pattern. Fig. 16 is a scheme of the flow chart indicated in Fig. 15. Fig. 17 is a scheme illustrating the construction of a prior art operating device. DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the pattern generator according to this invention will be explained below in detail, referring to Fig. 1. In Fig. 1 the number of ALPGs is 3 and a sequential pattern is outputted by a parallel operation of the three ALPGs (N=3). At first, it is provided with a memory 5S, in which an instruction controlling the order of execution of a program for one ALPG (repetition control, etc.) and an operation selective instruction 55 are stored; a program counter 6S outputting reading out addresses 10S for this memory 5S; a controller 7S, which interprets the control instruction 11S read out from the memory 5S, outputs a corresponding control signal 12S to the program counter 6S and specifies the address to be subsequently generated; a memory 1A accessed by the address 10S' corresponding to the address 10S generated by the program counter 6S and reading out information 50 necessary for the operation in an arithmetic data operating circuit 3A; a constant data register 2A previously storing and holding constant data 51 necessary for the operation; the arithmetic data operating circuit 3A effecting arithmetic operations, using operation information outputted by the memory lA; an operating register 4A taking in every time the operation result 52 and holding it; and an output circuit (not shown in the figure) outputting the output 53 of the operating register 4A as it is or the output (53'-1) after having performed an arithmetic logic processing thereon. In Fig. 1 a buffer circuit may be disposed between the address 10S and the address 10S' and the address 10S may be inputted in the memory 1A as it is. Further, although the memory 1A and the memory 5S are described in Fig. 1, as if they were separate memory means, they can be a same memory, if the program execution order control instruction and the operating instruction are previously stored so that a plurality of ALPGs can be operated in parallel as stated previously. The whole structure of ALPG is provided with three ALPGs (100-1, 100-2, 100-3) described above and comprises a sequential output circuit 700 which sequentially selects a respective one of the outputs (53'-1, 53'-2, 53'-3) of the ALPGs and outputs the selected one as an output 600; a clock generator 400 outputting operating clocks to each of the ALPGs and the sequential output circuit 700; a computer 1, which analyses programs made by a user, effecting the paralleling processing for every N processings (3 in this embodiment) according to the execution order and forms a program for every ALPG (100-1, 100-2, 100-3); and a data transferring path 22 transferring generated instructions and operation numbers. In Fig. 1 the internal construction of the pattern generators represented by 100-2 to 100-N is omitted, because it is identical to that of 100-1. A concrete structure of the operating device unit in Fig. 1 is indicated in Fig. 12. In Fig. 12 ALU can perform an operation of ±n (0 ≤ n ≤ N) for an input. In Fig. 12(b) the position of the selector and that of the ALU are interchanged with respect to Fig. 12(a) and they have the same effect. Further, when the operating instruction system is represented by Fig. 7(d), the device may be so constructed that a multiplier is disposed at the output of the constant data register. In addition, although this embodiment has been explained, supposing that one constant data register belongs to one operating register, a plurality of constant data registers may be disposed for every operating register. In the case where operations are effected by a plurality of constant data registers for one operating register, the structure of the operating device is complicated, but the device may be so constructed that a multiplier is disposed at the output of every constant data register and that the result obtained by adding and subtracting their outputs among them is inputted in the operating register after having been further added and subtracted with the operating register. Although the speed of operations is increased by using three ALPGs in this embodiment, the number of ALPGs is not restricted to 3, but any number thereof may be used. In addition, although explanation has been made, referring to Fig. 1, supposing that the computer, which arranges the programs in parallel, and that the ALPGs are connected by means of a hardware, the connecting method is not restricted thereto, but it may be effected through the intermediary of magnetic tapes, floppy discs, etc. In this case a data transferring path is disposed between the recording medium reading out device and the ALPGs. Although explanation has been made in this embodiment, supposing that the output address 10S of the program counter 6S and the address 10S' accessing the memory 1A are identical, a table memory or a logic circuit may be disposed therebetween so that the memory 1A is accessed with a transformed address. What is essential is that the address 10S' and the address 10S correspond unequivocally to each other. Although it is supposed in the above explanation that the memory 5S and the memory 1A are re-writable, this is not essential, but, if sorts of test patterns to be generated are limited, ROMs, in which programs having parallel processings are stored previously, may be used for the memory 5S and the memory 1A. Further, although explanation has been made in the embodiment, supposing that numerical values, which are about 0 ≤ n ≤ N, are read out from the memory 1A and that values obtained by adding and subtracting them are inputted in the constant data register or the operating registers, the device may be so constructed that the device may be provided with a memory having a bit width greater than that of the operating registers, in which memory 1A values obtained by adding or subtracting n to or from the constant R are previously stored and that no constant data register is used. Furthermore the device may be provided with a plurality of constant data registers, in which values of R ± n are previously set. In addition the sequential output circuit 700 may be constructed by a multiplexer, as disclosed in JP-A-54-12657 or by a shift register as disclosed in JP-A-56-101224. Next a construction, by which a pattern generator according to this invention is applied to an IC test equipment, is indicated in Fig. 3. This figure shows a high speed IC test equipment, in which the pattern generator unit 2 in the prior art device indicated in Fig. 13 is replaced by a high speed pattern generator unit according to the parallel execution method, which consists of ALPG(I) 17, ALPG(II) 18, a clock divider/distributor 21, AND gates 19-1, 19-2 and an OR gate 20 sequentially and selectively changing over the output of the two ALPGs. The timing generator 3, which is used also in the prior art system, outputs the operating basic clock 22 for operating the pattern generator unit and the timing signal 4 to the wave formatter T1 and the comparator T3. The computer 1 analyses previously the program structure before the execution of test of a test pattern program for pattern generation formed for the prior art structure indicated in Fig. 13, transforms it into a test program for ALPG(I) and ALPG(II), and transfers it to each of the ALPGs through a data bus 22. The computer 1 sends various sorts of data to the other parts in Fig. 3 in order to effect set-up operations necessary for the execution of the test and analysing operations of data stored in a fail memory. These are not especially remarkably different from those for the prior art IC test equipment. As explained in the above embodiment, each of the ALPGs can operate with a low speed, whose test cycle is N times as long as the minimum test cycle necessary for the IC test equipment, owing to the fact that the computer 1 forms a program for generating test patterns, by means of which N ALPGs can operate in parallel, and that it is stored in an ALPG instruction memory (corresponding to the memory 5S in Fig. 1) through a data bus disposed in the IC test equipment before the execution of the test. Consequently it is possible to use ICs or LSIs, whose operating speed is lower than that of recent memories, whose speed has been significantly increased, in order to construct test equipment therefor, and an effect can be obtained to realise easily the test equipment therefor. According to this invention, it is possible to generate and execute operating instructions to output discrete values of the test pattern specified by a user program. Consequently, since desired test patterns are sequentially outputted by using a plurality of ALPGs, it is possible to generate a test pattern with a speed, which is several times as high as the highest operating speed of the individual ALPGs.

Claims: A pattern generator for executing a series of operation processing instructions to generate a test pattern, comprising N algorithmic pattern generators (100-1...100-N) each including an arithmetic data operation circuit (3A), memory means (1A, 5S) and a register (2A), for generating a test pattern output (53'-1...53'-N) in parallel with the other algorithmic pattern generators (100-1...100-N), and sequential output circuit means (700), coupled to the outputs (53'-1...53'-N) of the 1st to N-th algorithmic pattern generators (100-1...100-N) for sequentially selecting said outputs (53'-1...53'-N) in synchronism with clock pulses (401) and outputting the selected output as a test pattern (600), characterised in that the pattern generator further comprises (a) a computer (1) for converting an original series of operation processing instructions to N converted series of operation processing instructions by (1) making the number of steps in each loop contained in the original series of operation processing instructions an integer multiple of the number N of algorithmic pattern generators (100-1...100-N) available for parallel processing, thereby forming an intermediate series of operation processing instructions, (2) accumulating operation processing instructions of said intermediate series according to their execution order, thereby forming said N converted series of operation processing instructions, and for assigning said N converted series of operation processing instructions to said N algorithmic pattern generators, and (b) a data transfer path (22) for loading said converted series of operation processing instructions from said computer (1) into said N algorithmic pattern generators (100-1 ...100-N), wherein, in each of said N algorithmic pattern generators (100-1...100-N), said memory means includes first memory means (5S) for storing instructions (11S) for controlling the execution order of the respective converted series of operation processing instructions by said arithmetic data operation circuit (3A), and second memory means (1A) for storing operating information (50) for said converted series of operation processing instructions, said register (2A) supplies constants necessary for the operation of said arithmetic data operation circuit (3A), and an operating register (4A) is provided for receiving the operation result of said arithmetic data operation circuit (3A) and providing the pattern output (53'-1 ...53'-N) of the respective algorithmic pattern generator (100-1...100-N). The pattern generator of claim 1, wherein each algorithmic pattern generator (100-1...100-N) includes, in combination with said first memory means (5S) and said second memory means (1A), a program counter (6S) for generating read addresses (10S, 10S') of said first memory means (5S) and said second memory means (1A) and a control unit (7S) for interpreting the instructions (11S) for controlling the execution order read out of said first memory means (5S) and outputting control signals to said program counter (6S). The pattern generator of claim 1 or 2, further wherein said register (2A) is a constant data register. The pattern generator of claim 1 or 2, wherein said register (2A) holds values obtained by adding and subtracting n, where n is an integer satisfying 0 ≤ n ≤ N, to and from a constant value (R). A method for converting and executing a series of original operation processing instructions in a pattern generator, which pattern generator comprises N algorithmic pattern generators (100-1...100-N) executing N series of instructions in parallel, each algorithmic pattern generator including memory means (1A, 5S) for storing operation information (50) for processing said series of instructions, and arithmetic logic data operating means (3A, 4A) operating on the basis of said operation information (50), and a sequential output circuit (700) for sequentially selecting the outputs (53'-1...53'-N) of said N algorithmic pattern generators (100-1...100-N) to form the output pattern of the pattern generator, characterised in that said series of original operation processing instructions is converted into N converted series of operation processing instructions by (1) making the number of steps in each loop contained in the original series of operation processing instructions an integer multiple of the number N of algorithmic pattern generators (100-1...100-N) available for parallel processing, thereby forming an intermediate series of operation processing instructions, (2) accumulating operation processing instructions of said intermediate series according to their execution order, thereby forming said N converted series of operation processing instructions, and in that said N converted series of operation processing instructions are assigned to said N algorithmic pattern generators.

Inventors: HAMABE CHISATO, KAWAGUCHI IKUO, KIKUCHI SHUJI, HAMABE, CHISATO, KAWAGUCHI, IKUO, KIKUCHI, SHUJI
Applicants: HITACHI LTD, HITACHI, LTD.
Application year: 1987
Main classification: G01R31
IPC codes: G01R31, G06F7