The subject matter of this disclosure relates to error detection. The subject matter of this disclosure relates further to error detection in digital systems. The subject matter of this disclosure further relates to a method for error detection in digital circuits.
Error detection and correction in Very Large Scale Integrated (VLSI) digital circuit is a very important issue and, in the same time it is a very hard task. But even if an integrated circuit is very well tested, errors caused especially by environmental factors as excessive temperature, radiation, could appear at a later stage during it's normal duty time. In this case, the circuit must, at least, detect these errors and transmit a warning signal. It must be pointed out here that in case of a VLSI circuit the probability that at least one error occurs is relatively high and therefore a method for detecting at least one error is desirable.
Such a method is known from the paper “Parity Prediction In Combinational Circuits” appeared in Proceedings of the International Symposium on Fault-Tolerant Computing, pp. 185-188, 1979. In this prior art, a method for parity prediction in combinational circuits is described. The method considers a special case of circuit duplication, which is another well-known method for fault detection in digital circuits. In fact, as it is pointed out in the conclusions of the above mentioned paper, the main advantage of this method lies in input error preserving. It should be mentioned here that the circuit duplication in VLSI, it is almost impossible because of the area overhead involved in the process, even in the particular form described in said prior art.
It is therefore an object of the present invention to providing a testing system and a method for error detection in VLSI digital circuits that lower the necessary area overhead.
In accordance with the invention, this object is achieved in that the digital system further comprises a State Parity Generator (SPG) having a sixth input terminal coupled to the input terminal and a sixth output terminal coupled to the fifth input terminal, the SPG generating the other parity signal of an equivalent with respect to parity of the module under test, the other parity signal being generated from the digital input vector p_InV.
An equivalent with respect to parity of the module under test is a combinational circuit that is driven by the digital input vector p_InV and generates at its output the parity of the transfer function of the module under test.
The module under test could be either a part of the digital processing unit or could be identical thereto. In the same time, the second output vector T could be the same as the q_OutV, or they could coincide partially or could be totally different from each other. The output vector T may comprise signal components which are not a part of the output vector q_OutV, but which are indicative of the state of the processing unit. Preferably, the components of the output vector T are signals which occur during the processing of generating the output vector q_OutV from the input vector p_InV, so that no unnecessary overhead is introduced.
The device according to the invention has the advantage of lowering area overhead when one error detection circuit is provided. It does not duplicate the circuit, which in case of the VLSI circuits is impracticable and, furthermore, it is very flexible because it can be used to testing not only the output vectors of the processing unit but also state variables that are not outputted by the processing unit. Furthermore, the area overhead can be further optimized by partitioning the digital processing unit and choosing the equivalent with respect to parity circuit that involves an as low as possible area overhead.
In an embodiment of the invention the SPG comprises a plurality of combinatorial digital devices, being implemented using two level logic design i.e. sum of product terms or product of sum terms. This implementation is very suitable to be implemented in VLSI programmable logic devices and can provide low delay times through the SPG. It should be emphasized here that depending on the VLSI programmable logic device (PLD) architecture other combinational implementations could be considered as Muller expansions, multiplexers and demultiplexers etc.
In another preferred embodiment of the present invention the Actual Parity Generator (APG) is conceived to realize the digital function T1⊕T2⊕ . . . ⊕Tr. The APG is implemented with XOR gates in a configuration called Parity Tree (PT), but depending on the PLD architecture it could be implemented using logical gates other than XOR, multiplexers, demultiplexers, memories.
It is another object of the present invention to provide a method for error detection in a module under test comprised in a digital processing unit comprising
In any digital design process it is necessary to specify an input vector and a desired state vector that represents, normally, the next state of the module under test circuit. From the next state of the module under test circuit a parity bit is provided. The parity bit is set in a first logical state e.g. logical 0 or Low (L) if there is an even number of bits with value 1 in the state vector. The parity bit is set in a second logical state e.g. logical 1 or High (H) if there is an odd number of bits with value 1 in the state vector.
Using the input vector and the parity bits of the state vector a combinational circuit implementing this parity function is designed using but not being limited to a standard computer aided design program.
It should be pointed out here that the vast majority of the digital circuits does not implement complete specified functions i.e. generally not all the 2n input combinations of an n dimensional input vector are used. In this case the unused combinations are used either to generate a warning signal or to generate a transition to a predetermined state.
In a preferred embodiment of the present invention the SPG is conceived to realize a digital transfer function having as input all possible p_InV vectors and as output a signal (CP) characterizing the parity of the desired T vector and the unused states of the input vector p_InV. A warning circuit is designed to generate a warning signal W if an unused combination is detected. The warning signal W is further treated by the system in the same way as the error generated by the parity error detection.
The above and other features and advantages of the invention will be apparent from the following description of exemplary embodiments of the invention with reference to the accompanying drawings, in which:
The digital processing unit 100 is coupled to the first input terminal 101 for processing the p_InV for realizing a targeted digital transfer function (TDTF) and for providing the output vector q_OutV obtained with the TDTF to the first output terminal 102. The digital-processing unit 100 further comprises the Module under Test 110 having a second input terminal 105 coupled to the first input terminal 101 and a second output terminal 103 for providing a digital vector T having r bits (T1, T2, . . . , Tr). It should be pointed out here that in a particular implementation the Module under Test 110 and the digital-processing unit 100 could be identical to each other. Furthermore, some of the bits from vector T, if not all of them and some of the bits of the q_OutV could be the same i.e. the output vector T may partly or wholly coincide with the output vector q_OutV.
The Actual Parity Generator 200 comprises a third input terminal coupled to the second input terminal 103 for generating at a third output terminal 201 an output signal AP representing the parity of the vector T.
The SPG 300 comprises a sixth input terminal 106 coupled to the input terminal 101 and a sixth output terminal 301 coupled to a fifth input terminal being conceived for generating an other parity signal CP.
The comparator 400 comprises a fourth input terminal coupled to the third output terminal 201. It's fifth input terminal is coupled to the sixth output terminal. The comparator provides an output signal ED at a seventh output terminal 401 which indicates whether the input signal AP provided at the third output terminal equals the other parity signal CP.
The SPG 300 is an equivalent with respect to parity of the module under test 110 meaning that it realizes a binary or digital function having p_InV as input and generating the desired parity of the T vector.
Normally when a digital function is synthesized a table as Table 1 is used. In Table 1 State represents an output state determined by the input vector p_InV and
Parity represents the parity of the vector T. The parity of the vector is a digital function that has a first binary value when the vector T comprises an odd number of bits in logical high (H) state and has the dual binary value when the vector T comprises an even number of bits in logical H state.
The design process comprises steps of synthesizing digital functions T1=T1(p_InV), T2=T2(p_InV), . . . , Tr=Tr(p_InV) and CP=CP(p_InV). It is further observed that using Table 1 the parity of the state is uniquely associated to the digital input vector and that the State parity generator 300 is very simply in structure being a combinatorial circuit. Anyhow, such a combinatorial circuit is significantly simpler than a circuit that duplicates the Module under Test 110.
When the circuit is implemented in a programmable logic device, the area overhead due to the realization of the state parity generator 300 is relatively low.
It should be pointed out here that the vast majority of digital circuits does not implement complete specified functions i.e. not all the 2p input combinations of a p dimensional input vector p_InV are used. In this case the unused combinations are used either to generate a warning signal or to generate a transition to a predetermined state.
In a preferred embodiment of the present invention, a warning circuit is included for generating a warning signal W when an unused combination of the input vector p_InV is detected. The warning signal W is treated by the system in the same way as the error generated by the parity error detection is, the warning circuit being comprised in the SPG 300.
Let us consider the digital function described in Table 2. In Table 2 the input vector p_InV comprises 4 bits [A, B, C, D] and the state bits characterizing the vector T comprises 11 bits [A′, B′, C′, C′, a, b, c, d, e, f, g]. The vector q_OutV also comprises the bits [a, b, c, d, e, f, g]. The bits A B C D are included in the vector T but are not included in the digital output vector q_OutV. The bits noted with ‘x’ represent don't care bits, that is, they can be either logical H or logical L. It is further observed that the circuit described in Table 2 realizes an incompletely defined logical function. Hence, it is necessary to generate a warning signal W when the unused input codes appear at the input. In this situation the digital signal CP=ParPred+W, where “+” means logical OR function.
The resulting digital functions are as follows:
A′=BCD+
B′=
C′=
D′=
a=
b=CD+B+A
c=C+
d=
e=BD+
f=A+
g=
ParPred=
W=AC+AB
It must be pointed out here that the implementation of the functions a . . . g described in Table 2, without ParPred and W, comprise, if they are implemented with logical gates, 28 gates while the implementation of the state parity generator 300 for generating the signal CP comprises only 8 gates. It is obvious that the method for detecting errors in digital circuits described in present application reduces the circuit overhead substantially in comparison with any other method involving duplication of the circuit known from prior art. It is observed that in the digital system 1 described in Table 2 the module under test 110 and the digital processing unit 100 coincide with each other but have different output vectors. The output vector q_OutV=[a, b, c, d, e, f, g] is included in vector T=[A′, B′, C′, D′, a, b, c, d, e, f, g].
It is further observed that if a set of completely defined functions is realized a warning signal W is superfluous. In that case the SPG 300 comprises only the implementation of ParPred function and CP=ParPred.
Furthermore, the signal W could be used in various ways as e.g. blocking the fourth input of the comparator 400, which is coupled to the third output terminal 201 of the Actual Parity Generator 200. Preferably blocking has the effect that the signal ED equals the signal W, in a hierarchical decision tree at a well-defined priority level in order to take decisions when an unused input vector appears.
It is further mentioned here that, depending on the VLSI programmable device used, the functions described in Table 2 could be implemented optimally either with logical gates or with medium scale circuits as multiplexers, demultiplexers, memories or combinations thereof.
It is be observed that the SPG 300 could be implemented either on the same chip as the digital system 1 or on a separate one. Furthermore, the signal CP could be generated by a separate testing system controlled by a computer program.
ED=A′⊕B′⊕C′⊕D′⊕a⊕b⊕c⊕d e⊕f⊕CP (1)
generating at it's output terminal 401 the signal ED indicating when it has the logical value 1 that an error occurred in the module under test. The buffer circuit 511 is used here to balance the delays of any input signal from the input to the output.
Preferably the block 500 is implemented on the same chip as the module under test circuit and implementing the relation (1). It is understood that the implementation in
It is remarked that the scope of protection of the invention is not restricted to the embodiments described herein. Neither is the scope of protection of the invention restricted by the reference numerals in the claims. The word ‘comprising’ does not exclude other parts than those mentioned in a claim. The word ‘a(n)’ preceding an element does not exclude a plurality of those elements. Means forming part of the invention may both be implemented in the form of dedicated hardware or in the form of a programmed general-purpose processor. The invention resides in each new feature or combination of features.
Number | Date | Country | Kind |
---|---|---|---|
01202090 | Jun 2001 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB02/01969 | 5/30/2002 | WO | 00 | 11/25/2003 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO02/097457 | 12/5/2002 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
3585378 | Bouricius et al. | Jun 1971 | A |
3883801 | Hess | May 1975 | A |
4107649 | Kurihara | Aug 1978 | A |
4251884 | Baun, Jr. | Feb 1981 | A |
4291407 | Armstrong | Sep 1981 | A |
4312070 | Coombes et al. | Jan 1982 | A |
4884273 | Caprasse | Nov 1989 | A |
4888715 | Tada et al. | Dec 1989 | A |
4924423 | Vassiliadis et al. | May 1990 | A |
4928280 | Nielson et al. | May 1990 | A |
5363382 | Tsukakoshi | Nov 1994 | A |
5377148 | Rajsuman | Dec 1994 | A |
5559506 | Leitch | Sep 1996 | A |
5559813 | Shimizu | Sep 1996 | A |
5574717 | Tomizawa et al. | Nov 1996 | A |
5857103 | Grove | Jan 1999 | A |
5898708 | Tateishi et al. | Apr 1999 | A |
5982681 | Schwarz | Nov 1999 | A |
6308292 | Fusco | Oct 2001 | B1 |
6718494 | Jamil et al. | Apr 2004 | B1 |
7117463 | Graham et al. | Oct 2006 | B2 |
20020013919 | Kleihorst et al. | Jan 2002 | A1 |
Number | Date | Country |
---|---|---|
88103284 | Dec 1988 | CN |
1151797 | Jun 1997 | CN |
0339296 | Nov 1989 | EP |
63204170 | Aug 1988 | JP |
1187475 | Jul 1989 | JP |
5324375 | Dec 1993 | JP |
8809968 | Dec 1988 | WO |
Entry |
---|
Bushnell, M. and Agrawal, V. Essentials of Electronic Test for Digital, Memory & Mixed-Signal VLSI Circuits. New York: Springer, 2000. |
Fujiwara E: “A self-testing group-parity prediction checker and its use for built-in testing” International symposium on fault tolerant computing systems. (FTCS). Milano, Jun. 28-30, 1983, Silver Spring, IEEE Comp. Soc. Press, US, vol. Symp. 13, Jun. 1, 1983, pp. 146-153, XP000748595. |
Khodadad-Mostashiry, “Parity Prediction in Combinational Circuits” appeared in Proceedings of the International Symposium on Fault-Tolerant Computing, pp. 185-188, 1979. |
Metra, “Self-checking Detection and Diagnosis of transient, delay and cross-talk faults affecting bus-lines”, IEEE transactions on computers, No. 6 2000. |
Chaohuang Zeng et al., “Finite State Machine Synthesis With Concurrent Error Detection,” Test Conference, International Proceedings, Sep. 1999. |
Number | Date | Country | |
---|---|---|---|
20040177314 A1 | Sep 2004 | US |