Testing & Testability
Testing & Testability
Examples of ATPG algorithm methods that are in wide use include the
D-Algorithm, the PODEM, and the FAN.
• Pattern generation through any of these algorithmic methods require
what is known as 'path sensitization'.
• "Path sensitization" refers to finding a path in the circuit that will allow
an error to show up at an observable output of a device if it is faulty.
• For example, in a two input AND gate, sensitizing the path of one input
requires the other input to be set to '1 '.
• Most algorithmic generation methods also refer to the notation D and D’.
• These notations were introduced by the D algorithm and have been
adopted by other algorithms since then.
• D simply stands for a ‘1' in a good circuit and a '0' in a faulty one.
• On the other hand D’, which is the opposite of D, stands for a '0' in a
good circuit and ‘1’ in a faculty circuit.
• Thus, propagating a D or D’ from the inputs to outputs simply means applying a
set of inputs to a device to make its output exhibit an 'error' if there is a fault
within the circuit.
• Algorithmic pattern generation basically consists of the following steps:
1. Fault selection, or choosing a fault that needs to be detected
2. Initial assignment, or finding an input pattern that steps up a D or D’ at
the output of the faulty gate.
3. Forward drive; or propagating a D or D’ to an observable output using
the shortest path possible
4. Justification: It is assigning of values to other unassigned inputs in order
to justify the assignments made during the forward drive. If an inconsistency
arises during justification, back tracking or back propagation is performed i.e.,
forward drive is done again using an alternate path. This recursive cycle is
performed until right set of input patterns needed to 'sensitize' a path and
propagate the fault to an observable output is determined.
• A test algorithm is complete if it is able to propagate a failure to an observable
output if a fault indeed exists.
• The D algorithm entails finding all sets of inputs to the circuit that will bring out
a fault within the circuit.
• A 'Primitive D Cube of Failure', or PDCF, is a set of inputs that sensitizes a path
for a particular fault within a circuit.
• The 'Propagation D Cube', or PDC, is a set of inputs that propagates a D from
the inputs to the output.
• The D-algorithm picks all possible PDCF's for the circuit under test and applies
them to the circuit with their corresponding PDC's to propagate various faults
to the output.
• While the PDCF's and PDC's are being applied, the ‘implied’ values for other
circuit nodes are tested for consistency, rejecting sets of inputs that cause a
circuit violation.
• The application and testing of various PDCF's and PDC's for a circuit is done
repeatedly and recursively, until the minimal set of input patterns necessary to
test the circuit for the specified faults is determined.
Design for Testability
• Design for testability specifies design techniques that make the task of successive
testing simple.
• There is definitely particular methodology that solves all VLSI system testing
problems.
• Also, there is no single DFT technique, which is useful for all shorts of circuits.
• DFT techniques for digital circuits are of two categories:
Ad hoc techniques
Structured techniques.
• Structured testing is further divided into four categories:
❖ Scan ❖ Partial Scan ❖ Built-in self-test ❖ Boundary scan
Ad-hoc testing
• Ad-hoc testing is a commonly used term for testing performed without
planning and documentation, but can be applied early scientific
experimental studies.
• The tests are intended to be run only once, unless a defect is discovered.
• Ad hoc testing is the least formal test method. As such, it has been
criticized because it is not structured and hence defects found using this
method may be harder to reproduce, since there are no written test cases).
• However, the strength of ad hoc testing is that important defects can be
found quickly.
• It is performed by improvisation: the tester seeks to find bugs by any
means that seem appropriate.
• Ad hoc testing can be seen as a light version of error guessing, which itself
is a light version of exploratory testing
STRUCTURAL TESTING
• The structural testing is the testing of the structure of the system or component.
• Structural testing is often referred to as ‘white box' or 'glass box' or 'clear-box
testing' because in structural testing we are interested in what is happening 'in
inside the system/application'.
• In Structural testing the testers are required to have the knowledge of the internal
implementations of the code. Here the testers require knowledge of how the
software is implemented & how it works.
• During structural testing the tester is concentrating on how the software does it.
For example, a structural technique wants to know how loops in the software are
working.
• Different test cases may be derived to exercise the loop once, twice, and many
times. This may be done regardless of the functionality of the software.
Built In Self Test (BIST)