|
|
2. DESIGN ERROR DIAGNOSIS
Objectives
To introduce basics of diagnosis using the design error diagnosis problem as
an example. To learn how to compose diagnostic tests and to realize the difference
between a diagnostic and a verification tests.
Introduction
There is a difference between testing and diagnosis. During testing, the main
goal is to find out if a device is working proprly. Such a device is called
a unit under test (UUT). In other words, there can be only two results of testing:
1) a fault is present in
the UUT, 2) the UUT is fault-free. The result of the diagnosis is either
the exact location of the fault or the localization of a faulty area
that cannot be resolved any more. The accuracy of the result depends on the
diagnostic resolution which is achievable on given circuit with given
test set. The result is formulated in terms of the target fault model. It can
be for example a stuck-at fault model or a delay fault model or a physical fault
model, etc.
Before the device is sent for manufacturing, it goes through many phases of design process. Each phase may be performed numerous times before an acceptable solution is obtained. It is an iterative incremental process and may require circuit modifications in order to perform trade-offs. These modifications can be inserted either by means of automated designing tools or manually. For example netlists generated by the synthesis tools very often have to be modified by designers to improve timing performance, to obtain more compact structures, or to carry out small specification changes.
The error emergence probability through various design stages is big enough. An error not detected at the earlier stages may cause a cost explosion of the project and significantly increase the time-to-market. This fact forces the research in the direction of development fast and efficient methods for design error detection, diagnosis, and rectification. An example of a design error could be a gate substitution error, for example, AND gate is replaced by OR gate in the implementation. It could be also a bad or missing connection between gates.
Work description
Suppose, you have designed a combinational circuit which has to meet certain
functionality described in the specification. However, verification step has
shown that the implementation and the specification are not functionally equal.
Your task then is to find the erroneous area in the circuit and rectify it so
that the new version of the design will be functionally equal to the specification.
We prepared several designs to experiment with. They can be found here.
First, use the xtimport tool to replace an arbitrary gate in your design by a gate of another type and create the specification and implemetation. We will consider the generated specification to be functionally correct and the implementation to be the erroneous circuit to rectify. We will also consider the implementation to have exactly a single design error which is either a gate substitution error or a missing/extra inverter error.
In our work we will use an automatic diagnostic tool (prediag) to reduce the search space by deriving an intermediate suspected erroneous area within the design. This tool uses an ordinary test set (not a diagnostic one) generated by a conventional ATPG to make a prediagnostic analysis of the design and purposely produces a diagnosis of an unaceptable quality in order to give you the possibility to find the exact error location by yourself. The nature of the underlying test vectors can be considered as another reason for such a quality of the intermediate diagnosis.
To sum up, after the xtimport
tool, the ATPG comes with the test set, and then the prediag tool generates
the intermediate diagnosis. The further analysis is to be made by a human being
(like you). Please, read the rules for
design error diagnosis and use them to manually create additional (one or
more) diagnostic test patterns which will help you to derive the unique
error location and to make a suggestion concerning the replacement of the erroneous
gate by a gate of a different type in order to rectify the implementation. Those
test patterns must be formatted and inserted by the vecmanager tool. The verification
tool verify
will apply the diagnostic vectors and compare the responses of the implementation
and specification. Use this information to find the error locaton or to create
more diagnostic patterns.
Steps
Please choose your circuit from the list of designed circuits.
This example is based on the same ISCAS'85 c17 curcuit. It will serve us as the erroneous implementation that needs to be diagnosed and rectified.
Steps
During the generation of the implementation, the information about gate-level signal paths is also saved in the <design>.pat file. This information is essential for the prediagnostic tool prediag.
The specification is derived also from the same EDIF file using the xtimport tool. Usage: xtimport -spec c17.edi bench.lib or xtimport -spec -tool cadence <design>.edi ams.lib. The encrypted info about the replaced gate is saved into the <design>.rep file during the specification generation.
The test patterns needed for the prediag tool can be obtained using an ATPG or by any other test generation method. For example, for the deterministic ATPG write: generate c17 and you will get the patterns in c17.tst file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If, applying this test,
an error at y1 is observed, we are assured that g4
is correct. Using the verification tool (verify
c17) we obtain the information concerning errors observed at
the circuit outputs (Table 2):
|
|
|
|
|
|
|
|
|
|
|
|
So, we can see that our hypothesis was right (the error is reflected at the both outputs) and we conclude that g2 is the erroneous gate in the implementation and the both stuck-at faults are "present" (actually they are not but they are "observed" there as an effect of the wrong gate type in the design) at the gate inputs. Finally, we should look at the Table 1 here for the hint concerning the new gate g2 type that we must use instead of current NAND type. The case of NAND gate and the both stuck-at fault types suspected at the both gate inputs implies that AND gate instead of NAND should be used here to rectify the circuit.
You can compose your report notes about the results of this laboratory work based on the automatically generated <design.rep> file.
Last update: 27 July, 2004