The invention relates to testing of an asynchronously controlled circuit, to a test prepared circuit with an asynchronously timing circuit with provisions to perform testing and to a method of generating test patterns for such a circuit.
Testability is an essential property of large electronic circuits. Synchronously clocked circuits are conventionally made testable by means of scan chain technology. Synchronous circuits contain registers that periodically capture output data that is produced by combinatorial logic circuits on the basis of input data from these registers. Scan chain technology couples the registers of the circuit under test in a shift register structure (the “scan chain”) during testing. The scan chain makes it possible to control the input signals of the combinatorial logic circuits with test signals and to capture the response of these combinatorial logic circuits to the test signals. The captured response is used to determine whether the circuit contains defects.
The application of scan chain technology to asynchronous circuits presents additional problems. An asynchronous circuit has a timing circuit that determines when respective registers (e.g. flip-flops or latches) that are connected to the combinatorial logic operate to capture data. The timing circuit of the asynchronous circuit typically contains many logic circuits connected in an application dependent structure to adapt the generation of a timing signal in response to dynamic conditions individually for different registers to which the timing signals are applied. During testing these adaptive timing signals generally have to be replaced by more rigid timing signals from a central clock. When this is done the combinatorial circuits between the registers can be tested in the same way as in the case of combinatorial circuits.
However, in the case of an asynchronous circuit the timing circuit should be tested as well. This circuit lends itself less readily to scan chain testing because it does not have the conventional register-combinatorial logic structure of the data circuit. One way of making the timing circuit amenable to scan chain testing is to make it look like a data circuit, by inserting master-slave latch pairs into the timing circuit for test purposes and to connect these latch pairs in the scan shift register structure. During normal operation the latches are made transparent to realize asynchronous operation, but during testing the latches operate as registers. Effectively, this gives the timing circuit the same type of register/combinatorial logic structure as the data circuit. In this way it is made possible to control signals in the timing circuit with test signals and to observe the response of combinatorial logic circuits in the timing circuit.
Although this technique in principle provides a solution to testing of the timing part of an asynchronous circuit, particular attention should be paid to time-continuous feedback loops in the timing circuit. Such loops are typically used to implement asynchronous state machines, which are designed to assume a series of successive states, with state transitions determined by predetermined signal configurations. A time-continuous feedback loop in a digital circuit has the effect that it introduces a dependence of the output signals on preceding input signal changes. This is undesirable for test purposes, because it prevents that there is a one to one relation between test input signals and output signals of correctly operating circuits. Previous transitory signal configurations (glitches) during the application of test signals may affect the output signals.
Conventionally it is prevented that this occurs during testing by ensuring that master-slave latch pairs from the scan shift register structure are inserted in each time-continuous feedback loop of the timing circuit. When the master-slave latch pairs are put in a non-transparent state during testing, the time-continuous feedback loops are broken up, which ensures that the output signals will not depend on previous transitory signal configurations. As a result predictable test responses are ensured.
However, the addition of latches in the timing circuit slows down the circuit. The delay introduced by the additional latches in the asynchronous timing circuit is entirely overhead, because these latches have no function during operation. This may be contrasted with the registers in the data part of the circuits, which are used both during testing and normal operation, so that they do not constitute overhead.
WO 02/101926 describes how testing of an asynchronous timing circuit can be realized with less overhead. A dynamic scan shift register is integrated with the feedback loops to minimize the overhead. According to this document the time-continuous feedback loops are broken up by using at least two tri-state output circuits in each feedback loop. During testing at least one of the tri-state outputs in each feedback loop is kept in a high impedance state to break up the feedback loop. Additional ti-state coupling drivers are added between nodes of successive feedback loops especially for testing, so that a dynamic shift register can be formed. During testing the dynamic shift register is used to shift test data in and out through the scan shift register.
This structure provides for all required test facilities (shift transport of test data, application of test data, capture of responses and prevention that a history of glitches affect the test results). In addition, since only tri-state outputs instead of latches have to be added, there is little increased time delay in the timing circuit. However, the use of dynamic shift registers decreases the reliability of the circuit. Conventional test equipment cannot handle this, so that special test equipment has to be designed to use such registers. Moreover, in modern IC technologies dynamic circuit operation is not very reliable, especially when a slow tester clock is used. This makes it unattractive to use this known technique.
Among others, it is an object of the invention to provide for testing of an asynchronous timing circuit using a static scan chain compatible structure to control and observe signals in circuits with a time-continuous feedback loop in the asynchronous timing circuit, without introducing excessive delay in the asynchronous timing circuit and without running the risk that test results depend on transitory signal configurations.
Among others, it is an object of the invention to provide for testing of an asynchronous timing circuit using a static scan chain compatible structure, with a minimum of additional registers in the scan chain.
Among others, it is an object of the invention to provide for a method of testing of an asynchronous timing circuit with a time-continuous feedback loop wherein a conventional test pattern generator that does not account for time-continuous feedback loops can be used.
A test prepared circuit according to the invention is set forth in Claim 1. According to the invention a time-continuous feedback loop is first broken up and then temporarily restored during testing, to capture data determined by the feedback loop. Before restoration of the time-continuous feedback a multiplexing circuit is used to apply loop test data to a feedback input of the time-continuous feedback loop. The multiplexing circuit restores the time-continuous feedback loop during testing after loop-external input signals of the loop, which are determined by test data, have stabilized. This prevents unpredictable history dependent output signals. Because this makes it possible to perform testing with a restored time-continuous feedback loop there is no need to include latches in the feedback loop, which means that static latches can be used in the scan shift register structure outside the loop to supply and capture test data without affecting the delay of the asynchronous timing circuit. Preferably, circuits to provide only a single additional multiplexing circuit in signal path of the feedback loop are provided and no registers such as latches or flip-flops that serve only for test purposes are included in signal path around the loop. This minimizes the loss of speed during normal operation.
In an embodiment the asynchronous timing circuit comprises a plurality of interconnected time-continuous feedback loops (“interconnected” as used herein includes time-continuous coupling of signals from one time-continuous feedback loop to another and/or incorporation of at least part of one time-continuous feedback loop in another time-continuous feedback loop). In this case, signal development after restoration of one time-continuous feedback loop could affect the input signals of another time-continuous feedback loop, giving rise to unpredictable output signals. To prevent this, according to the invention, a test control circuit restores the time-continuous feedback loops only in a predetermined combination of feedback loops at a time, keeping the feedback loops outside the combination broken up. Several different combinations of feedback loops may be used, the feedback loops in each being restored separately. The feedback loops in a combination are selected so that no signal from any feedback loop in the combination affects the input signals of any other feedback loop in the combination, when the feedback loops outside de combination remain broken up. A minimum number of combinations that is required for this are two combinations, which together include all feedback loops of the asynchronous timing circuit. A worst-case situation would require a separate combination for each feedback loop, but it has been found that typically some five to seven different combinations suffice to include all feedback loops.
Preferably, a test result from the feedback loop is captured directly into a latch in the test scan shift register structure while the time-continuous feedback loop is restored. This minimizes complexity. Alternatively, of course a latch outside the test scan shift register structure may be used, the result being transferred into the shift register later. In both cases, the latch may be located outside feedback path of the time-continuous feedback loop, minimizing the additional delay. Preferably, the capturing latch has an input coupled directly to an output of the multiplexing structure (i.e. to an output at which the output signal depends in a one to one way on the signal at the selected input of the multiplexing circuit). In this way, the test data producing latch and the capturing latch can be readily combined into a register that is part of the shift register structure, to perform the function of shifting test data.
In an embodiment the capture latch is part of a data register that is used to supply and/or receive latched data (as opposed to timing signals) during normal operation. In this way a minimum of additional latches is needed for test purposes. Preferably, a multiplexer is added in front of this data register to switch between a test mode wherein a test result is captured from the restored time-continuous feedback loop, and another mode or modes wherein data is captured from the circuit. This preserves maximum testability.
Because the circuit according to the invention tests a time-continuous feedback loop, problems may arise when conventional test pattern generation software is used. This kind of software is designed to select patterns so that defects at all nodes of the circuit will show up, for which the circuit design of the circuit under test must be analysed, usually assuming that there are no feedback loops. Such software may be used nevertheless if it is presented with a modified circuit design, which does not correspond to the actual circuit design of the circuit under test, in the sense that in the modified design the input of the multiplexing structure that comes from the shift register structure is coupled to the input of the feedback loop that is coupled to the output of the multiplexing structure in the real design. Of course, such a modified design would not function properly during normal operation, but during test it would produce the same output signals as the actual circuit. This means that the test patterns generated for this modified circuit can be used to test the real circuit.
These and other objects and advantageous aspects of the invention will be described in more detail using non-limiting examples by reference to the following figures.
a illustrates a register cell
a, b show alternative test prepared components
In operation combinatorial logic circuitry 10 uses digital input signals to form digital output signals. The input signals are supplied from outputs of registers 12 to combinatorial logic circuitry 10 and the output signals from combinatorial logic circuitry 10 are received at inputs of registers 12. At points of time controlled by timing circuit 14 the output signals are copied into registers 12, after which the output signals are supplied as new input signals to combinatorial logic circuitry 10.
Although combinatorial logic circuitry 10 is shown as a single box, it should be understood that this box might stand for a collection of many such separate logic circuits. Similarly, although registers 12 are shown in a row, it should be understood in normal operation respective ones of the registers function as registers between successive logic circuits. The presentation of the figure with one box of combinatorial circuits and a row of registers has merely been chosen for explanatory purposes, not to represent the operational function.
The circuit of
a shows a conventional embodiment of a register 12 for use in the circuit of
In the test mode test control circuit 16 first controls multiplexer 120 to pass data from its second input, that is, from the output of a preceding register in the scan shift register structure. This allows test data to be shifted in. When the test data has reached a position from where it should be used by combinatorial logic circuitry 10, test control circuit 16 sets multiplexer 120 to pass data from combinatorial logic circuitry 10. This enables first latch 122 to capture a response to test input data from combinatorial logic circuitry 10. Combinatorial logic circuitry 10 forms this response by applying logic operations to test data from any one of the registers 12. The circuitry is said to be combinatorial because its output signals, once stabilized do not depend on previous transitory signal configurations. After the response has been captured test control circuit 16 controls multiplexer 120 to pass data from its second input, so that the test results can be shifted out.
The circuit of
An asynchronous timing circuit 14 differs from a synchronous timing circuit. In a synchronous timing circuit the points of time at which registers capture data are defined by a central clock, which has a clock frequency that ensures sufficient delay between successive capture operations. In an asynchronous circuit the points of time are selected as a result of logic operations on timing signals from different sources, as well as transitory state information that is stored in the timing circuit. Many different forms of asynchronous timing circuits for this purpose are known per se. During testing, the selection of points of time is typically performed using a test clock. For this purpose multiplexers (not shown) are typically added at the timing control inputs of registers 12, to replace asynchronous timing signals by test clock signals. This addresses testing of combinatorial logic circuitry 10. However, the internal components in timing circuit 14 should preferably be tested as well.
The combination of second combinatorial circuit 22 and its feedback 26 is called a C-element. The logic function of the second combinatorial logic circuit 22 is designed so that the feedback can be used to lock the C-element into a state that depends on previous input signal values. The values of the input signals (a, b) of second combinatorial logic circuit 22 may be distinguished into different categories: set signal values, reset signal values and retention signal values. When the input signals (a, b) assumes a set value this causes the signal at output 24 to assume a first value. When the input signals (a, b) assume a reset value this causes the signal at the output 24 to assume a second value. When the input signals (a, b) assume a retention value this causes the signal at the output 24 to retain its previous value, whatever that value may be.
In a simple example, the second combinatorial circuit 22 may contain a latch comprised of a first and second NAND gate (not shown), the first NAND gate having a first input coupled to the c-input of second combinatorial circuit 22, and an output coupled to a first input of the second NAND gate, which has an output coupled to the output 24 of second combinatorial circuit 22. In this case inputs a, b of second combinatorial circuit 22 may be coupled to second inputs of the NAND gates respectively. In practice, however, second combinatorial circuit 22 will usually involve more complicated logic functions of its inputs.
In operation, in the normal operation mode (when the circuit is not tested) test control circuit 16 (not shown) controls multiplexer 30 to pass the signals from its first input to its output. As a result, component 20 functions in the same way as the circuit of
In the test mode test input data is first shifted in via the scan shift register structure. During this shift phase, test control circuit 16 (not shown) sets the control signal TE at the control input of multiplexer 30 so that multiplexer 30 passes the signal from first register 31 to the output of multiplexer 30. In this way only multiplexer 30 is functionally inserted in the scan shift register structure.
Subsequently, component 20 is tested. Initially test control circuit 16 (not shown) keeps the control signal TE at a value so that multiplexer 30 passes the signal from first register 31 to the output of multiplexer 30. That is, the feedback loop is initially kept broken up. Test input signals are applied to component 20, via other components (not shown) of the timing circuit to the inputs of first combinatorial circuit 21. Because multiplexer 30 keeps the feedback loop broken up at this stage the output signal of second combinatorial logic circuit 22 does not depend on transitory previous signal configurations at its inputs.
Next, once the input signals of second combinatorial logic circuit 22 have stabilized, test control circuit 16 changes the control signal TE so that multiplexer 30 passes the signal from its first input, that is, from the output of second combinatorial circuit 22. In this way, the feedback loop is restored. If signals a, b have a set or reset value, the signal at the output of second combinatorial circuit 22 will retain the set or reset value respectively and the output signal of multiplexer 30 will assume this value. If signals a, b do not have the set or reset value, the signal at the output of second combinatorial circuit 22 will retain its previous value, i.e. the value previously defined by the signal at the second input of multiplexer 30. Hence, the output signal of multiplexer 30 will also retain its previous value. During this phase wherein the feedback loop is restored in the test procedure, a clock level change at second register 32 causes the output signal of multiplexer 30 to be captured in second register 32.
Subsequently test control circuit 16 sets the control signal TE of multiplexer 30 so that multiplexer 30 passes the signal from its second input to its output. This restores the scan shift register structure to its shift register function. Now the test output data is shifted through the scan shift register structure.
Although switching of multiplexer 30 to pass signals from its first input temporarily creates a feedback loop, this loop does not result in any dependence on unpredictable transitory signal configurations (provided that the circuit functions properly). This is because multiplexer 30 continues to supply a signal from first register 31, keeping the feedback loop broken until the other input of second combinatorial logic circuit have stabilized. The resulting output signal of second combinatorial logic circuit 22 may be a function of a retained previously applied input signal from first register 31, or a function of its other input signals, can be captured in second register 32 without timing risks.
The differences with the use of the circuit of
In certain embodiments of timing circuit 14 some of the feedback loops may have negative loop gain, which occurs when there is an uneven number of inversions around these loops. Typically such feedback loops are interlaced with other feedback loops to ensure that these loops stabilize during normal use. However, if during testing such a feedback loop with negative loop gain would be restored on its own, while the stabilizing loops remain broken, this may prevent the restored feedback loop from stabilizing to a definite state. In such a timing circuit additional test circuitry is preferably provided for specifically for loops with negative loop gain to make it possible to test these feedback loops without restoring the loop.
a shows how selected components with negative loop gain can be modified for this purpose. An additional multiplexer 34 is added in the loop, with a first input coupled to the output of the original multiplexer 30 and an output coupled to output 24 and feedback connection 26. An additional register 36 (typically made up of a pair of latches that are made alternatively transparent) has an input coupled to the output of the original multiplexer 30 and an output coupled to a second input of the additional multiplexer 34. The control input TE2 of additional multiplexer 34 receives a further test control signal TE2 from the test control circuit (not shown).
In normal operation both multiplexers 30, 34 control circuit 16 (not shown) controls the control signals TE, TE2 of the multiplexers so that the feedback loop is continuously closed. During test shift operation multiplexers 30, 34 control circuit 16 (not shown) controls the control signals TE, TE2 of the multiplexers so that registers 31, 32, 36 perform as part of the scan shift register structure (optionally, when testing of the loop is not needed, register 36 may be removed from the shift register in the shift mode by proper switching of the multiplexers 30, 34; this reduces the time needed for shifting).
Two test operation modes are used. In a first test mode test control circuit 16 (not shown) controls the control signals TE, TE2 of the multiplexers so that the original multiplexer 30 couples the output of second combinatorial circuit 22 to the output of original multiplexer 30 and additional multiplexer 34 couples the output of additional register 36 to the output of additional multiplexer 34. Thus, the loop remains broken, test input data from additional register 36 is supplied to second combinatorial logic circuit 22 and a result is captured in additional register 36 (the output of additional register 36 is also captured in register 32). In a second test mode control circuit 16 (not shown) controls the control signals TE, TE2 of the multiplexers so that the original multiplexer 30 couples the output of register 31 to the output of original multiplexer 30 and additional multiplexer 34 couples the output of original multiplexer 30 to the output of additional multiplexer 34. Thus, the loop also remains broken, now test input data from register 31 is supplied to output 24 where it is captured by the second combinatorial logic circuit 22 and a result is captured in additional register 32 (and the output of register 31 is also captured in additional register 36).
It should be noted that this method of testing requires two multiplexers 30, 34 in the loop, which reduces the speed of normal operation. As is shown in
It will be appreciated that it is not necessary in this embodiment that the multiplexers 30, 34 are in series: they may be included anywhere along the loop, so that logic circuits are operational between the multiplexers in normal operation. Furthermore, it should be appreciated that the use of two multiplexers is not always necessary in this case. If the loop with negative loop gain can be stabilized in another way, e.g. by restoring other related loops, this may be used to test such a loop.
First and second register 31, 32 may be registers that are included in the scan shift register structure for no other purpose than supplying test input data to component 20 and capturing a response data from component 20. However, in a further embodiment one or more registers may be used from a register 12 that is also used to capture data from combinatorial circuitry 10.
Although the invention has been illustrated by means of specific circuit embodiments it should be realized that the invention is not limited to these embodiments. For example, a strict separation between the combinatorial logic circuits 10 and timing circuit 14 has been shown. This separation applies for example to pipelined circuits, wherein data is logically processed in steps and the data is stored between the steps, at least when predecessor data is processed in a next step. However, the invention is not limited to such a strict separation. In other examples the timing circuit may receive input signals from the combinatorial circuits, for example to introduce data value dependent delays, or to generate timing signals in response to the arrival of a data signal. Furthermore, timing circuit may use interactive signal exchanges, such as handshakes wherein timing circuit 14 sends or receives request or acknowledge signals.
Furthermore, although for the sake of simplicity a single shift register structure has been shown, it should be realized that more complicated structures, containing more shift registers, or shift registers with branching or converging shift paths may of course be used. Also, where the use of multiplexers has been described it should be understood that these multiplexers could be implemented with any circuit that has a multiplex function. This includes a logic circuit with an input output relation that copies data from one data input or another dependent on the value of a control signal on a control data input, a circuit with control signal controlled switches between the output and respective inputs, or tri-state drivers with outputs coupled to a multiplexer output and inputs coupled to the respective inputs, the control signal determining which of the drivers will not be in a high impedance output state.
In each case, the multiplexer function may be integrated with the combinatorial logic circuits that precede the multiplexer, e.g. by using tri-state stages in the final stage of the preceding combinatorial logic circuit, or by integrating the input output relation of the combinatorial logic circuit with the input output relation that corresponds to multiplexing.
Furthermore, although an embodiment has been shown wherein the multiplexer is coupled between the output of second combinatorial logic circuit 22 on one hand and the output of component 20 and the feedback connection on the other hand, it should be appreciated that the multiplexer may be located elsewhere in the feedback loop.
Alternatively the multiplexer may be located inside second combinatorial logic circuit 22, provided that it breaks up the feedback loop. In each case this makes it possible to support (a) normal operation wherein the feedback loop operates continuously, (b) shift operation wherein the feedback loop is broken and test data can be shifted through the scan test register structure, (c) feeding of test data into the loop until the other inputs have stabilized, (d) subsequent reestablishment of the feedback loop and (e) capturing test result data while the feedback loop is temporarily restored during testing.
A problem may occur when output 24 is coupled to an input of a feedback loop of another component 20. This is because the signal at output 24 may change once the feedback loop is re-established. If the feedback loop in the other component is re-established at the same time this may have the effect that the input signals of the other component change after reestablishment of its feedback loop, with the risk that transitory signals affect the output.
One solution would be to add an additional circuit (e.g. a further multiplexer not shown) to disable that, during the test, signal development at the output 24 affects further feedback loops down stream (not shown). However, such an additional circuit may slow down circuit operation. Therefore it is advantageous to avoid such additional circuits.
To prevent unpredictable test results different test enable signals TE1, TE2, TE3 are used that contain pulses to re-establish the feedback loops in mutually different clock period (possibly, but not necessarily in adjoining clock periods). In particular the test enable signal TE1, TE2, TE3 for a particular component 20 with a feedback loop contains a pulse only when the test enable signals TE1, TE2, TE3 for other components 20 with feedback loops that feed input signals to the particular component 20 do not contain a pulse.
In this way predictable test results can be realized without additional circuits need be included in the timing circuit. The number of different test enable signals TE1, TE2, TE3 that is needed for this depends on the structure of the timing circuit. Of course, it suffices in any case to use as many different timing circuits as there are components 20. However, usually it suffices to use fewer different test enable signals TE1, TE2, TE3, such as five or seven different test enable signals TE1, TE2, TE3. All that is needed is that each particular component 20 with a feedback loop has a test enable signal that contains a pulse only when the test enable signals TE1, TE2, TE3 for other components 20 with feedback loops that feed input signals to the particular component 20 do not contain a pulse. The same test enable signal TE1, TE2, TE3 may be supplied to a plurality of components that do not supply input signals to other components in the same plurality.
Test pattern computation circuit 90 is for example a suitably programmed computer. The program uses a description of the circuits in device under test 94 to generate test patterns for detecting all envisioned defects. Programs for this purpose can be very complex, but are known per se in the art for testing combinatorial logic circuits that do not contain feedback loops.
Preferably, it is ensured that test patterns for circuits with feedback loops of the type shown in the figures can also be generated. In an embodiment this is realized by supplying a description of a virtual circuit to test pattern computation circuit 90. The virtual circuit may be obtained for example by means of a pre-processing program that modifies the circuit description under test before the computation of the test patterns. The virtual circuit equals the circuit of the device under test 94, except that according to the virtual circuit feedback connection 26 is coupled to the input of second combinatorial logic circuit 22 from the output of first register 31 instead of from the output of multiplexer 30. That is, in the virtual circuit there is no feedback in any state of multiplexer 30.
This makes it possible to generate test patterns using a program for generating test patterns for combinatorial logic circuits that do not contain feedback loops. If the device under test operates properly it will have the same output signals as predicted for the virtual circuit in the test mode. Therefore the test analysis can proceed as if the virtual circuit was tested. For this conventional test equipment can be used.
Number | Date | Country | Kind |
---|---|---|---|
04103731.8 | Aug 2004 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB05/52455 | 7/21/2005 | WO | 00 | 1/30/2007 |