67 research outputs found
Test Generation Based on CLP
Functional ATPGs based on simulation are fast,
but generally, they are unable to cover corner cases, and
they cannot prove untestability. On the contrary, functional
ATPGs exploiting formal methods, being exhaustive,
cover corner cases, but they tend to suffer of the state
explosion problem when adopted for verifying large designs.
In this context, we have defined a functional ATPG
that relies on the joint use of pseudo-deterministic simulation
and Constraint Logic Programming (CLP), to
generate high-quality test sequences for solving complex
problems. Thus, the advantages of both simulation-based
and static-based verification techniques are preserved, while
their respective drawbacks are limited. In particular, CLP,
a form of constraint programming in which logic programming
is extended to include concepts from constraint satisfaction,
is well-suited to be jointly used with simulation. In
fact, information learned during design exploration by simulation
can be effectively exploited for guiding the search of
a CLP solver towards DUV areas not covered yet. The test
generation procedure relies on constraint logic programming
(CLP) techniques in different phases of the test generation
procedure.
The ATPG framework is composed of three functional
ATPG engines working on three different models of the
same DUV: the hardware description language (HDL)
model of the DUV, a set of concurrent EFSMs extracted
from the HDL description, and a set of logic constraints
modeling the EFSMs. The EFSM paradigm has been selected
since it allows a compact representation of the DUV
state space that limits the state explosion problem typical
of more traditional FSMs. The first engine is randombased,
the second is transition-oriented, while the last is
fault-oriented.
The test generation is guided by means of transition coverage and fault coverage. In particular, 100% transition
coverage is desired as a necessary condition for fault
detection, while the bit coverage functional fault model
is used to evaluate the effectiveness of the generated test
patterns by measuring the related fault coverage.
A random engine is first used to explore the DUV state
space by performing a simulation-based random walk. This
allows us to quickly fire easy-to-traverse (ETT) transitions
and, consequently, to quickly cover easy-to-detect (ETD)
faults. However, the majority of hard-to-traverse (HTT)
transitions remain, generally, uncovered.
Thus, a transition-oriented engine is applied to
cover the remaining HTT transitions by exploiting a
learning/backjumping-based strategy.
The ATPG works on a special kind of EFSM, called
SSEFSM, whose transitions present the most uniformly
distributed probability of being activated and can be effectively
integrated to CLP, since it allows the ATPG to invoke
the constraint solver when moving between EFSM states.
A constraint logic programming-based (CLP) strategy is
adopted to deterministically generate test vectors that satisfy
the guard of the EFSM transitions selected to be traversed. Given a transition of the SSEFSM, the solver
is required to generate opportune values for PIs that enable
the SSEFSM to move across such a transition.
Moreover, backjumping, also known as nonchronological
backtracking, is a special kind of backtracking
strategy which rollbacks from an unsuccessful
situation directly to the cause of the failure. Thus,
the transition-oriented engine deterministically backjumps
to the source of failure when a transition, whose guard
depends on previously set registers, cannot be traversed.
Next it modifies the EFSM configuration to satisfy the
condition on registers and successfully comes back to the
target state to activate the transition.
The transition-oriented engine generally allows us to
achieve 100% transition coverage. However, 100% transition
coverage does not guarantee to explore all DUV corner
cases, thus some hard-to-detect (HTD) faults can escape
detection preventing the achievement of 100% fault coverage.
Therefore, the CLP-based fault-oriented engine is finally
applied to focus on the remaining HTD faults.
The CLP solver is used to deterministically search for
sequences that propagate the HTD faults observed, but not
detected, by the random and the transition-oriented engine.
The fault-oriented engine needs a CLP-based representation
of the DUV, and some searching functions to generate
test sequences. The CLP-based representation is automatically
derived from the S2EFSM models according to the
defined rules, which follow the syntax of the ECLiPSe CLP
solver. This is not a trivial task, since modeling the
evolution in time of an EFSM by using logic constraints
is really different with respect to model the same behavior
by means of a traditional HW description language. At
first, the concept of time steps is introduced, required to
model the SSEFSM evolution through the time via CLP.
Then, this study deals with modeling of logical variables
and constraints to represent enabling functions and update
functions of the SSEFSM.
Formal tools that exhaustively search for a solution frequently
run out of resources when the state space to be analyzed
is too large. The same happens for the CLP solver,
when it is asked to find a propagation sequence on large sequential
designs. Therefore we have defined a set of strategies
that allow to prune the search space and to manage the
complexity problem for the solver
Recommended from our members
Scalable algorithms for software based self test using formal methods
textTransistor scaling has kept up with Moore's law with a doubling of the number of transistors on a chip. More logic on a chip means more opportunities for manufacturing defects to slip in. This, in turn, has made processor testing after manufacturing a significant challenge. At-speed functional testing, being completely non-intrusive, has been seen as the ideal way of testing chips. However for processor testing, generating instruction level tests for covering all faults is a challenge given the issue of scalability. Data-path faults are relatively easier to control and observe compared to control-path faults. In this research we present a novel method to generate instruction level tests for hard to detect control-path faults in a processor. We initially map the gate level stuck-at fault to the Register Transfer Level (RTL) and build an equivalent faulty RTL model. The fault activation and propagation constraints are captured using Control and Data Flow Graphs of the RTL as a Liner Temporal Logic (LTL) property. This LTL property is then negated and given to a Bounded Model Checker based on a Bit-Vector Satisfiability Module Theories (SMT) solver. From the counter-example to the property we can extract a sequence of instructions that activates the gate level fault and propagates the fault effect to one of the observable points in the design. Other than the user supplying instruction constraints, this approach is completely automatic and does not require any manual intervention. Not all the design behaviors are required to generate a test for a fault. We use this insight to scale our previous methodology further. Underapproximations are design abstractions that only capture a subset of the original design behaviors. The use of RTL for test generation affords us two types of under-approximations: bit-width reduction and operator approximation. These are abstractions that perform reductions based on semantics of the RTL design. We also explore structural reductions of the RTL, called path based search, where we search through error propagation paths incrementally. This approach increases the size of the test generation problem step by step. In this way the SMT solver searches through the state space piecewise rather than doing the entire search at once. Experimental results show that our methods are robust and scalable for generating functional tests for hard to detect faults.Electrical and Computer Engineerin
A Fast Sequential Learning Technique for Real Circuits with Application to Enhancing ATPG Performance
This paper presents an efficient and novel method for sequential learning of implications, invalid states, and tied gates. It can handle real industrial circuits, with multiple clock domains and partial set/reset. The application of this method to improve the efficiency of sequential ATPG is also demonstrated by achieving higher fault coverages and lower test generation times
HybMT: Hybrid Meta-Predictor based ML Algorithm for Fast Test Vector Generation
Testing an integrated circuit (IC) is a highly compute-intensive process. For
today's complex designs, tests for many hard-to-detect faults are typically
generated using deterministic test generation (DTG) algorithms. Machine
Learning (ML) is being increasingly used to increase the test coverage and
decrease the overall testing time. Such proposals primarily reduce the wasted
work in the classic Path Oriented Decision Making (PODEM) algorithm without
compromising on the test quality. With variants of PODEM, many times there is a
need to backtrack because further progress cannot be made. There is thus a need
to predict the best strategy at different points in the execution of the
algorithm. The novel contribution of this paper is a 2-level predictor: the top
level is a meta predictor that chooses one of several predictors at the lower
level. We choose the best predictor given a circuit and a target net. The
accuracy of the top-level meta predictor was found to be 99\%. This leads to a
significantly reduced number of backtracking decisions compared to
state-of-the-art ML-based and conventional solutions. As compared to a popular,
state-of-the-art commercial ATPG tool, our 2-level predictor (HybMT) shows an
overall reduction of 32.6\% in the CPU time without compromising on the fault
coverage for the EPFL benchmark circuits. HybMT also shows a speedup of 24.4\%
and 95.5\% over the existing state-of-the-art (the baseline) while obtaining
equal or better fault coverage for the ISCAS'85 and EPFL benchmark circuits,
respectively.Comment: 9 pages, 7 figures and 7 tables. Changes from the previous version:
We performed more experiments with different regressor models and also
proposed a new neural network model, HybNN. We report the results for the
EPFL benchmark circuits (most recent and large) and compare our results
against a popular commercial ATPG too
Exploiting Don\u27t Cares to Enhance Functional Tests
In simulation based design verification, deterministic or pseudo-random tests are used to check functional correctness of a design. In this paper we present a technique generating tests by specifying the don’t care inputs in the functional specifications so as to improve their coverage of both design errors and manufacturing faults. The don’t cares are chosen to maximize sensitization of signals in the circuit. The tests generated in this way require only a fraction of pseudo-exhaustive test patterns to achieve a high multiplicity of fault coverage
Automatic test pattern generation for asynchronous circuits
The testability of integrated circuits becomes worse with transistor dimensions reaching nanometer
scales. Testing, the process of ensuring that circuits are fabricated without defects, becomes
inevitably part of the design process; a technique called design for test (DFT). Asynchronous
circuits have a number of desirable properties making them suitable for the challenges posed
by modern technologies, but are severely limited by the unavailability of EDA tools for DFT
and automatic test-pattern generation (ATPG).
This thesis is motivated towards developing test generation methodologies for asynchronous
circuits. In total four methods were developed which are aimed at two different fault models:
stuck-at faults at the basic logic gate level and transistor-level faults. The methods were
evaluated using a set of benchmark circuits and compared favorably to previously published
work.
First, ABALLAST is a partial-scan DFT method adapting the well-known BALLAST technique
for asynchronous circuits where balanced structures are used to guide the selection of
the state-holding elements that will be scanned. The test inputs are automatically provided
by a novel test pattern generator, which uses time frame unrolling to deal with the remaining,
non-scanned sequential C-elements. The second method, called AGLOB, uses algorithms
from strongly-connected components in graph graph theory as a method for finding the optimal
position of breaking the loops in the asynchronous circuit and adding scan registers. The
corresponding ATPG method converts cyclic circuits into acyclic for which standard tools can
provide test patterns. These patterns are then automatically converted for use in the original
cyclic circuits. The third method, ASCP, employs a new cycle enumeration method to find the
loops present in a circuit. Enumerated cycles are then processed using an efficient set covering
heuristic to select the scan elements for the circuit to be tested.Applying these methods to
the benchmark circuits shows an improvement in fault coverage compared to previous work,
which, for some circuits, was substantial. As no single method consistently outperforms the
others in all benchmarks, they are all valuable as a designer’s suite of tools for testing. Moreover,
since they are all scan-based, they are compatible and thus can be simultaneously used in
different parts of a larger circuit.
In the final method, ATRANTE, the main motivation of developing ATPG is supplemented by
transistor level test generation. It is developed for asynchronous circuits designed using a State
Transition Graph (STG) as their specification. The transistor-level circuit faults are efficiently
mapped onto faults that modify the original STG. For each potential STG fault, the ATPG tool
provides a sequence of test vectors that expose the difference in behavior to the output ports.
The fault coverage obtained was 52-72 % higher than the coverage obtained using the gate
level tests. Overall, four different design for test (DFT) methods for automatic test pattern generation
(ATPG) for asynchronous circuits at both gate and transistor level were introduced in this thesis.
A circuit extraction method for representing the asynchronous circuits at a higher level of
abstraction was also implemented.
Developing new methods for the test generation of asynchronous circuits in this thesis facilitates
the test generation for asynchronous designs using the CAD tools available for testing the
synchronous designs. Lessons learned and the research questions raised due to this work will
impact the future work to probe the possibilities of developing robust CAD tools for testing the
future asynchronous designs
Static Compaction of Test Sequences for Synchronous Sequential Circuits
Today, VLSI design has progressed to a stage where it needs to incorporate methods of testing circuits. The Automatic Test Pattern Generation (ATPG) is a very attractive method and feasible on almost any combinational and sequential circuit.
Currently available automatic test pattern generators (ATPGs) generate test sets that may be excessively long. Because a cost of testing depends on the test length. compaction techniques have been used to reduce that length. The motivation for studying test compaction is twofold. Firstly, by reducing the test sequence length. the memory requirements during the test application and the test application time are reduced.
Secondly, the extent of test compaction possible for deterministic test sequences indicates that test pattern generators spend a significant amount of time generating test vectors that are not necessary. The compacted test sequences provide a target for more efficient deterministic test generators. Two types of compaction techniques exist: dynamic and static. The dynamic test sequence compaction performs compaction concurrently with the test generation process and often requires modification of the test generator. The static test sequence compaction is done in a post-processing step to the test generation and is independent of the test generation algorithm and process.
In the thesis, a new idea for static compaction of test sequences for synchronous sequential circuits has been proposed. Our new method - SUSEM (Set Up Sequence Elimination Method) uses the circuit state information to eliminate some setup sequences for the target faults and consequently reduce the test sequence length. The technique has been used for the test sequences generated by HITEC test generator. ISCAS89 benchmark circuits were used in our experiments, for some circuits which have a large number of target faults and relatively small number of flip-flops, the very significant compactions have been obtained. The more important is that this method can be used to improve the test generation procedure unlike most static compaction methods which blindly or randomly remove parts of test vectors and cannot be used to improve the test generators
- …