METHOD AND APPARATUS FOR GENERATING A SEQUENCE OF MULTIBIT WORDS

Abstract: In automatic test equipment the logical levels on certain of the test pins 10 are set to 0 and 1 by corresponding flip-flops included in respective I/O logic circuits 12. The states of the flip-flops (as well as other factors) are controlled by commands read out of the control RAM 16 which is of sufficient width to provide a 4-bit command on lines 14 for each logic circuit 12. The available commands include NOP commands and change commands which toggle the states of the corresponding flip-flops. A relatively small number of addresses of the control RAM 16 have change commands entered in correspondence with selected ones of the pins 10. By repeatedly reading out the commands in these addresses in a non-cyclic sequence it is possible to generate a succession of different states of the flip-flops in the logic 12, which succession is much longer than the number of addresses of the control RAM 16 which are utilised. Appar­ atus for establishing the correct addressing sequence is described.

Description: The present invention relates to a machine method and apparatus for generating a sequence of multibit words selected from a set of N of the words. N may be a fairly large integer, such as of the order of 1,000. The invention is particularly, but not exclusively, applicable in automatic test equipment and, as a background to the invention, a particular problem which arises with such equipment will be explained in some detail. In order to automate the testing of complex electrical circuits it is known to provide test equipment with a plurality of pins which contact selected points in the unit under test (UUT). With each pin there is associated input/output circuitry and control logic enabling the pin to be used either to supply a binary test input or sense the level at the corresponding circuit point. It is necessary that the test equipment can be readily configured to test a wide variety of different circuits and, to this end, it is known to use a random access memory to store a test sequence. For each RAM address the memory holds a set of command words, one for each pin. These words may be of 4 bits and, for a typical complement of 512 pins, a large RAM, 2048 bits wide, is needed. 4-bit control words enable upto 16 different commands to be assigned to any pin, including a no operation (NOP) command which will typically be 0000. Other commands will determine whether the pin is used for input or output purposes, whether the pin is at level 0 or level 1, and so on. The input/output circuitry for a pin includes a high/low flip-flop which will be referred to as the B/L flip-flop and which determines the level on an input pin. It is known to include in the set of commands which can be stored in the RAM a change command which simply toggles the corresponding H/L flip-flop. The use of such a command can simplify the setting up of many test sequences. The problem with which the present invention is primarily concerned arises when it is desired to apply a long sequence of test signals to an arbitrarily selected plurality of the pins. This may be referred to as a sequence of test words. A test word is a multibit word which consists of a group of bits to be applied to the selected pins respectively. When use is made of change commands, each test word may be generated from the preceding test word by use of a change word which consists of a particular combination of CH = change commands and NOP commands. The problem in question arises, for example, when the UUT includes a memory with many addresses, every one of which has to be tested. In order to avoid possible confusion, the memory in the UUT will be called the UUT memory, whereas the memory which stores the commands for setting up the test words will be called the control memory, or the control RAM. As one specific example, a UUT memory with 16 address bits has 64K addresses. It would be possible to achieve the required test sequence by using a large enough control RAM in the test equipment, this RAM having enough addresses to step through all of the memory addresses of the UUT, i.e. being large enough to store 64K command words. This solution is not practical because it requires a very large control RAM, e.g. 2048 bits wide and 64K bits deep. Such a control memory would be expensive and unnecessarily tedious to program for each UUT. On the other hand, there is no problem in providing the required address signals for any number of pins, utilising a high speed binary counter which steps through all of the address numbers and provides the address bits at outputs of its binary stages. The problem which then arises is how to allocate the address bits to the required pins, which are an arbitrary selection of say 16 pins from the total number of say 512. It is extremely undesirable to perform the required allocation by any kind of patching technique which would be very difficult to implement and would take away one of the major virtues of the equipment as described above, namely the ability to adapt to different UUTs by software changes rather than hardware changes. In GB 2 099 618 there is an output counter and there are two modes of operation. In the first, words are dumped into the counter from a vector memory and no question of change signals arises. The second mode is used when sequential words are required and these are obtained by incrementing the counter. This arrangement suffers from the above-noted problem. In British Patent Specification GB-A-2099618, a memory storing change words is described which is addressed in sequence to produce multibit words. In European Patent Specification EP-A-0 087 081 sequences of microwords are generated and selected portions of the sequences can be repeated a desired number of times. In European Patent Specification EP-A-0 089 469 the effective number of control words is increased by separate decoding of different fields. Neither of these proposals represents a solution to the problems discussed above. In European Patent Specification EP-A-0 077 237, a sequence of transition vectors are stored in a control RAM, to provide test words. As all these transition vectors are stored, and some of them are stored repetitively, the size of the control RAM must still be large. The object of the present invention is to provide a method of generating a sequence of multibit words which can be used, inter alia, to overcome the problems described above, that is to say a method which will provide a large number of test words using a small control RAM but will retain flexibility of assignment of word bits without the need for physical patching. According to the present invention, there is provided a machine method of generating a sequence of m -bit multibit words selected from a set N of the words, wherein the words are formed in succession in a plurality m of bistable devices, each fresh word being formed by applying change commands to selected ones of the bistable devices to change the state thereof, characterised in that the change signals are stored as a set n of change words, each of which consists of a corresponding selection of change commands, n being a plural integer smaller than N, and the said sequence of multibit words being established by means of a corresponding sequence of change words. In automatic test equipment, the multibit words may be test words as defined above. The invention makes use of the fact that a large set of test or other multibit words may be generated using a much smaller set of change words. In general, a set of N = 2 m test words may require only n = m change words. This is illustrated in a very simple example below when N = 32 = 2⁵ and n = 5. The contrast is more dramatic when m is larger. When N = 65536 (64K) = 2¹⁶, n = 16. Such a small number of change words can only be employed when the sequence of test words is suitably ordered but the invention is not restricted to an ordered binary sequence of test words. As will be shown below it is applicable, as one further example, to test words in Gray code. It is a particular advantage of the invention, as utilized in automatic test equipment, that a long sequence of test words for an arbitrary selection of the test pins, may be achieved merely by writing the appropriate commands into a relatively small block of control RAM, and then addressing this control RAM block appropriately. The examples given below will also show that the required addresses do not, except possibly in a special case, follow a simple cyclic sequence. An important development of the invention is concerned with the way in which the address sequence is generated. The address sequence could be determined algorithmically but this would be very slow. For example, if N = 2¹⁶, sixteen nested sub-routines would be required to implement the algorithm for an ordered binary or Gray code sequence of test words. According to the development of the invention, the read-out addresses of the stored change words are provided by decoding predetermined states of a continuously clocked counter, each of the n change word addresses being generated in response to a corresponding predetermined state. Other developments of the invention and apparatus according to the invention are defined in the appended claims. The invention will be described in more detail, by way of example, with reference to the accompanying drawings, in which: Fig 1 is a schematic block diagram of an automatic test equipment in which the invention may be embodied, Fig 2 illustrates one control RAM address of the automatic test equipment, Fig 3 shows some details of the logic associated with one test pin, Fig 4 is a table showing how the binary numbers 0 to 31 may be generated using only five change words, Fig 5 shows the CH and NOP commands to be associated with an arbitrary selection of pins, Fig 6 shows the commands in a block of the control RAM, Fig 7 shows a circuit for generating the read-out addresses for the control RAM block, and Fig 8 shows a modification of Fig 5 for generation of a Gray code sequence of test words. Fig 1 is a schematic block diagram illustrating in a very broad way the essentials of a known automatic test equipment in which the present invention may be embodied. The equipment has say 512 test pins 10 labelled PIN 1 to PIN 512. With each pin 10 there is associated input/output logic 12 which is used, in each step of the test sequence, either to apply a test level (0 or 1) to the corresponding pin or to sense the level of the pin. Each I/O logic 12 is controlled by four lines 14 which are four of the 2048 data lines of a control RAM 16 having a width of 2048 bits and a depth sufficient to store the required command words for effecting the test sequences. The addresses of the control RAM 16 are selected by an address sequencer 18 which is controlled by a programmer 20. The programmer 20 will normally be implemented by a computer or microprocessor provided with the appropriate peripherals for communication with an operator and with one or more data storage devices, printers etc. The programmer 20 is used when setting up the equipment to write the appropriate pattern of commands into the control RAM 16. During performance of tests, the programmer supervises the test sequence in general and the operation of the address sequencer 18 in particular. Fig 2 shows one address of the control RAM 16, consisting of 512 4-bit cells 22, one for each pin. The four bits in each cell 22 provide the signals on the corresponding set of four lines 14 (Fig 1). It will be seen that the equipment thus described makes it possible, in each step of the test sequence, to apply an individual 4-bit command to each I/O logic 12. As already noted, if 4-bits are employed, there may be up to 16 different commands. Fig 3 illustrates one I/O logic 12 in slightly more detail. The four lines 14 are connected to control logic 24 which cooperates with input/ouput circuitry consisting of an H/L flip-flop 26, a monitor or neglect M/N flip-flop 28 and a tristate buffer 30 connected to the corresponding pin 10. For each step of the test sequence the control logic 24 determines the state of the tristate buffer 30 and the states of the flip-flops 26 and 28. When a pin 10 is being used as an input pin, its level will be determined by the state of the flip-flop 26. The flip-flop 28 enables a signal to be returned from the pin 10 to the control logic 24 when the flip-flop is set to the monitor state (but not when the flip-flop is set to the neglect state). The control logic 24 responds to each 4-bit control command received on the lines 14 to set the states of the flip-flops 26, 28 and the buffer 30. Moreover the control logic will, in the appropriate cases, determine whether or not the sensed level on the corresponding pin 10 is correct and, if it is not correct, provide a signal on a "fail" terminal 32. The terminals 32 may furnish interrupt signals to the programmer 20 in order that the programmer may cause a fault to be signaled or to log the occurrence of the fault and the step in the test sequence where it occurred. This aspect of operation of the equipment will not be considered in any more detail since it may be entirely conventional and forms no part of the present invention. The invention is concerned essentially with the way in which long sequences of test words are provided on selected ones of the pins 10, that is to say the way in which the corresponding H/L flip-flops 26 are toggled. In considering this topic attention will now be given to Fig 4 which shows, in alternate lines the states of a 5-bit binary counter counting 0, 1, 2.... 31. The intervening lines in the table of Fig 4 show the change commands CH which are required to move from count to count by toggling a bit wherever CH occurs. The dots in these intervening lines represent NOP. It will be seen that, although there are 32 different count states, only five different change words are needed to effect the toggling operations, these five different words being labelled in the right hand column by the bracketed numerals (1) to (5). Turning now to Fig 5, five different change words can be stored, each consisting of five commands. Every command is either CH or NOP. The columns of Fig 5 correspond to different bits of a test word and each column may be arbitrarily associated with any one of the test pins. Fig 5 shows, purely by way of example, association of the columns with pin 3, pin 8, pin 5, pin 11 and pin 12 respectively. Fig 6 shows how one would proceed in practice and represents a block of the control RAM 16. However, in order to make the drawing manageable, the figure has been simplified to the case in which there are only 16 pins PIN 1 through to PIN 16. In the columns of Fig 6 corresponding to pins 3, 5, 8, 11 and 12 the appropriate NOP and CH commands have been entered in accordance with Fig 5. In the left hand column the bracketed numerals (1) to (5) have been employed as in Figs 4 and 5 but, in Fig 6, they may be regarded as identifying the addresses for the five change words. The boxes in Fig 6 which have been left blank can all be filled with NOP commands although it is possible, within the scope of the present invention, to make use of some other commands from the total command vocabulary available for use in the cells 22 of Fig 2. It is now necessary to consider the way in which the rows of Fig 6 are addressed. As already noted above, they are not addressed in a simple cyclic sequence. By inspection from Fig 4 the actual sequence required is: (1) (2) (1) (3) (1) (2) (1) (4) etc. Further inspection of Fig 4 shows that each different change word is uniquely associated with a particular bit pattern in both the preceding binary count and the succeeding binary count. For example, the change word NOP NOP NOP NOP CH is associated with the least significant bit of the preceding binary count equal to zero and with the least significant bit of the succeeding binary count equal to 1. For further discussions, the second alternative has been selected and the bit patterns of the succeeding counts associated with each address have been indicated by rectangular boxes drawn around the relevant group of bits. Fig 7 shows addressing circuitry which makes use of detection of the bit patterns in question. This circuitry may be employed as a novel portion of the address sequencer 18 in Fig 1. A high speed binary counter 40 has the same number of stages as there are bits in a test word. Thus, for the simple example of Figs 4 to 6, the counter 40 is a 5-bit counter. The counter runs through all of its states in response to clock pulses applied to a terminal 42. The least significant stage of the counter provides a non-inverted output DO and an inverted output DO and so on. The outputs are applied to decoding logic which is preferably implemented as programmable array logic 44. The logic 44 has separate NAND/NOR combinational logic for each of the addresses (1) to (5). It is necessary to use parallel decoding for speed of operation. The nature of the logic is fully specified by and readily apparent from the following equations: Alternatively, if it is not required to implement the change from count 31 to count 0, the decode for address (5) can follow the same pattern, i.e. The logic 44 has five output lines corresponding to the addresses (1) to (5) respectively. These lines are connected to an encoder 46 which provides 3-bit addresses for use in addressing the memory block of Fig 6. Since it is desirable to be able to locate the memory block anywhere within the depth of the control RAM 16 of Fig 1, the addresses from the encoder 46 may be added to an offset address by an adder 48. The offset address is shown as emanating from a source 50 which may be constituted in practice by the programmer 20 itself. In summary, it can be seen that a long sequence of test words on a selection of the pins 10 of the automatic test equipment may be generated in accordance with the present invention merely by entering CH commands in the appropriate cells 22 of a block of the control RAM 16 and then selecting the addresses within this block by means of a circuit of the nature illustrated in Fig 7. The invention is nevertheless not restricted to generation of an ordered binary sequence of test words. A random sequence may be generated by selecting the addresses within the said address block in a random manner, e.g. under control of a pseudo random generator. The example of Fig 4 relates to counting upwards. It is possible to count downwards using exactly the same change words and addressing sequence therefore. However, instead of commencing with all of the H/L flip-flops 26 set to 0, they will all be set initially to 1. Fig 8 illustrates yet another possibility. Fig 8 is readily seen to be a modification of Fig 5 wherein, for each address (a), there is a CH command only in the (a) bit position. There is only one CH command in each change word. It is easy to check that, if the change words of Fig 8 are utilized in the sequence established by the address circuitry of Fig 7, the signals on the selected pins will follow a Gray code sequence. This sequence will be the most commonly encountered version of the Gray code. Other versions are obtainable using different permutations of the five change words shown in Fig 8. As an alternative to the technique described above with reference to Figs 4 and 6 for decoding the addresses it is possible to employ a register to latch the old state of the counter 40. The contents of the register and the contents of the counter may then be bit wise exclusive OR'd in order to derive a pattern of bits showing where the CH instructions are required. These bit patterns may then be decoded to determine the memory addresses. The invention can also be used to generate sequences of words from a set of bistable devices corresponding to the H/L flip-flops described above but in apparatus other than automatic test equipment.

Claims: A machine method of generating a sequence of K m -bit multibit words selected from a set N of the m -bit multibit words, wherein m is an integer, N is a substantially larger integer not exceeding 2 m , the sequence of K multibit words being established by means of a corresponding predetermined sequence of other words characterised in that at least some of the other words are read out a plurality of times from a memory to appear repeatedly in the sequence of other words, whereby the other words are change words, a set n of change words being stored, n being a plural integer smaller than K and N, and each change word includes a selection of change commands; the m -bit multibit words being formed in succession in a plurality m of bistable devices, by applying the change words to the bistable devices such that each change command causes a corresponding bistable device to change state from the pre-existing state thereof. A method according to claim 1, characterized in that the read-out address of the stored change words are provided by decoding predetermined states of a continuously clocked counter, each of the n change word addresses being generated in response to a corresponding predetermined state. A method according to claim 2, characterized in that the counter is a binary counter and the predetermined states are: DO = 1, DO . D1 = 1, DO . D1 . D2 = 1, etc. or the predetermined states are: DO = 0, DO D1 = 0, DO . D1 . D2 = 0, etc., where D0 and DO are the non-inverted and inverted outputs of the least significant counter stage, D1 and D1 are the non-inverted and inverted outputs of the next counter stage, and so on. A method according to claim 1, 2 or 3, characterized in that the change words are stored in a group of addresses of a control memory in automatic test equipment as commands located, at each address, in cells of the memory pertaining to a selection of test pins of the said equipment. Apparatus for generating a sequence of m -bit multibit words, comprising a plurality m of bistable devices (26), a memory (16) storing a set of other words, means (18, 20) for reading out the other words from the memory in a predetermined succession such that at least some of the other words are read out a plurality of times, characterized by the other words being change words, each change word consisting of a selection of one or more change commands, and there being means (24) for applying the change words to the bistable devices in an arrangement such that each of said selection of change commands causes each device of the corresponding selection of devices to change state from the pre-existing state thereof. Apparatus according to claim 5, characterized in that the means for reading out the change words comprise a counter (40), means (42) for supplying clock pulses to the counter, means (44) for decoding a plurality of predetermined states of the counter, and means (46, 48, 50) for addressing the change words in correspondence with respective ones of the predetermined states. Apparatus according to claim 6, characterized in that the counter (40) is a binary counter and the predetermined states are: DO = 1, DO . D1 = 1, DO . D1 . D2 = 1, etc, or the predetermined states are: DO = 0, DO . D1 = 0, DO . D1 . D2 = 0, etc, where DO and DO are the non-inverted and inverted outputs of the least significant counter stage, D1 and D1 are the non-inverted and inverted outputs of the next counter stage, and so on. Automatic test equipment comprising apparatus according to claim 5, 6 or 7, characterized in that the bistable devices are a selection of such devices employed in the equipment to determine the logical level on corresponding test pins (10), and the memory (16) is a control memory of the equipment.

Inventors: CRANE, MICHAEL PETER, MARSH, DAVID JOHN
Applicants: SCHLUMBERGER TECHNOLOGIES LIMITED
Application year: 1984
Main classification: G01R31
IPC codes: G06F11, G01R31