Generating Tests by Exploiting Designed ... Mark Harper Shirley

From: AAAI-86 Proceedings. Copyright ©1986, AAAI (www.aaai.org). All rights reserved.
Generating
Tests by Exploiting
Mark
Harper
MIT Artificial
Designed
Behavior
Shirley
Intelligence
Laboratory
545 Technology Square
Cambrzdge, MA 02139
(mhs@mit-htvax.arpa)
Abstract
One of the hardest
pattern
generation
problems
for a complex
because it requires reasoning
behavior
can be extremely
operations
that
behavior.
in digital
device.
circuit
design
This is difficult
about how to control
complex.
Knowledge
the device was designed
is test
in part
a device whose
of the specific
to perform
can help solve
this problem.
The key observation
is that a device’s designed
behavior
is often far more limited than the device’s potential behavior.
This limitation
translates
into a reduction
of the search
necessary
to achieve planning
goals. We describe an implemented
program
based
on this idea.
When
this
to generate
tests
where
illustrates
both
We represent
graph,
through
the operations
defined
tion set defined
to be complete.
When
reasoning
specializing
about
how to manipulate
complex
systems (e.g. for test generation
or diagnosis),
system is designed to behave is an important
to apply.
This
used in several
knowing how the
kind of knowledge
paper demonstrates
how this knowledge
can be
ways to produce
an effective problem solver for
one of the hardest
problems
in electronic
design:
generation
for VLSI devices.
Test generation
encounters
several traditional
including
conjunctive
planning,
and remains
test
pattern
AI concerns,
an important,
un-
solved problem:
existing programs
are notably
unsuccessful
large circuits.
Human test programmers
are more successful,
part because
ning
engineered
they use knowledge
from many
on
in
and a variety
sources
of reasoning
techniques.
Here we focus on one kind of knowledge
- designed behavior
- which they find important.
At the core of our test generation
one key observation:
tions that
ited than
of inputs
When
signed
a device’s
a device
is intended
to carry
its potential behavior.
to a disk controller
solutions
behavior,
system
designed
is a planner
behavior,
based
This
to planning
problems
can be found within
this limitation
can translate
into a reduction
Hypothesis:
efficiently
work
that
relies
every
exercised
on what
component
while
staying
deof
compo-
we call the Designed-Behavior
in the device
within
can be fully and
the device’s
designed
This report describes research done at the Artificial Intelligence Laboratory of the Massachusetts
Institute of Technology and at GenRad Inc. Support for the laboratory’s Artificial Intelligence research on digital hardware
troubleshooting
is provided in part by the Digital Equipment Corporation,
and in part by the Advanced Research Projects Agency of the Department
of Defense under Office of Naval Research contract N00014-80-C-0505.
884
National
Conference
/ ENGINEERING
method
is most
interfaces,
ating a behavior
lieve the method
of the building
e.g. the instruc-
The list of operations
value,
a testing
against
matches
to create
appropriate
and
section
for devices
characteristics
of this problem
strategy.
Section 4 introduces
examples
throughout
tails of our method.
This
whose
and
plan-
command
of distinct
operations
they
the non-trivial
effort of cre-
of microprocessor
3 describes
graphs
solutions.
circuits, we betests for many
systems
(e.g. processors,
UART’s, graphics
controllers,
and the like).
The next section gives an overview
of the
problem,
is assumed
goal, like loading
the behavior
graph.
In the domain of digital
is appropriate
when generating
blocks
which
with a behavior
behavior
interfaces
are narrow in the number
admit, since each operation
requires
the
test
generation
consequences
for representation
a simple processor
the paper, while section
The method’s performance
of several
and reasoning
which provides
5 contains the deon the processor
is shown in section 6. Finally, a simple account
of processor
design is presented
in section 7, which provides justification
for the
performance
2
achieved.
on Artificial
intelligence
The
Task
We are interested
in the task
of test
generation
for VLSI com-
ponents.
This task is part of the quality control phase of circuit
manufacturing
where we verify that the physical
circuit in fact
Test generation
takes a design
produces
the designed
behavior.
description
for a circuit and produces
a set of tests.
Taken together the tests must specify sets of inputs and predicted
outputs
such that,
puts
AAAI-86
successful
is shown
tests
fails
how data is supposed
to flow
these graphs by simulation
of
by matching
a certain
neces-
out, is often far more lim-
For example, very few sequences
correspond
to valid commands.
the search necessary
to achieve planning
goals.
In testing,
the goals involve manipulating
individual
nents.
on
i.e. the opera-
operates
with
An example
at the device’s
for a processor.
the search
successfully
generates
is valid, and (quickly)
of designed
a structure
that describes
We generate
the device.
a register
Introduction
we can reduce
it is not.
cases.
the space
The planner
1
is true,
sary to generate
tests. Our program
in situations
where this assumption
match
when
the inputs
the predicted
are applied
values
to the circuit
(i.e. the circuit
we can be confident
the circuit was manufactured
Tests are traditionally
created by partitioning
and all out-
passes
all tests)
correctly.
the design
into
components
and generating
a test for each component
by (1)
working
out how to test the component
as if it were alone, and
(2) working out how to execute that test within the context
larger circuit.
The second problem is conjunctive
planning,
of the
since
it involves
achieving
multiple,
potentially-interacting
have to work out how to manipulate
to cause
a desired
The
classical
pattern
of activity
approaches
goals:
the circuit’s
(e.g.
around
primary
a component.
[Roth66])
use
a combination
of heuristic
search and constraint
propagation
using
representationsof the circuit’s structure
and behavior.
runtimes
are excessive for anything
cuits and simple state machines,
we
inputs
gate-level
Current
other than combinational
cirand we think this is a direct
consequenceof the use of gate-level
representations.
More recent
to hiresearch
(e.g. [SinghG])
appl ies similar search techniques
erarchical
models of device structure
and behavior,
yet still does
not take advantage
of knowing the designed
behavior.
For com-
plex circuits,
the human experts
any existing test generation
than
describes
several
limiting
3
ways
remain
much more successful
program,
and the next section
- inspired
by what
the
experts
Figure
In this
section
of the Problem
we describe
two
domain and the effects
and reasoning
strategy.
they
3.1
Designed
Purposefully
characteristics
have on our choices
designed
bewhich essen-
tially
circuit
are annotated
or the
notion
contain expressions
described
in terms
problem
The point
tained within
of representation
has
been
used
in several
unspecified,
analog
circuit
we need
to
was sufficient
worked.
know what
We require
that
purpose
to aid in determining
more
the relative
algorithms
behavior
of the behavior
graph representation
the set of graphs
are many patterns
information
is, i.e. the tasks
than
sizes of solution spaces
search. The sets contain
graphs
can provide
interfaces.
generated
behavior.
Hence,
dicates that there
this;
the system
the designer
behavior
how an
opergraphs
is this: conof activity
a complete
Because
from them
list of operations
de-
this list is complete,
the
represent
all normal
circuit
failure to find a useful pattern
of activity
is no solution within the normal operations
inof
the circuit.
is
supposed
to accomplish.
Our program
then uses this information
to focus on solutions
to testing problems.
Figure 1 illustrates
different test generation
For efficiency,
with variables in them, e.g. a READ cycle is
of a symbolic address and symbolic data.
fined for the circuit’s
programs
for reasoning
about physical
systems.
In [DeKleer79],
for example, the knowledge
that a device had some purpose, even
though
traces.
and the corresponding
around
every component
in the circuit.
“All our planner
must
do” is find the patterns
of activity that are useful in testing.
We
Systems
of purpose,
simulation
are parameterized,
assume
Teleology,
states
We explicitly
represent
the space of a circuit’s
havior with the behavior
graphs mentioned
above,
ations
Domain
of the
sizes of sets of circuit
do - of
search.
Characteristics
1: Relative
that
pos-
Extreme
3.2
A second
and
Complexity
dominating
characteristic
of this
domain
is the
sible states of a circuit,
i.e. the different
ways of consistently
assigning
values to the circuit’s nodes.
If the components
com-
extremely
complex behavior of modern VLSI components.
Algorithms which manage this complexity
are essential.
One way to
prising the circuit are disconnected,
then there is no constraint
between their states, and the set of possible circuit states is the
do this is to identify
cross product
of the sets of individual
component
states.
Connecting
the components
together
makes many potential
states
inconsistent,
resulting
in a smaller set of possible states.
This is
one that
focuses
closely
involves
the rest
of the circuit,
the space that a planner
with perfect ability
straints
could search.
Since local constraint
to propagate
con-
propagation tech-
The
traditional
build our problem
ing at a different
micro-planner
useful
abstractions2.
partitioning
of the problem
on a single
into
component
suggests
that
two parts,
and another
we might
that
usefully
solver in two parts, each part potentially
workabstraction
level. And this is what we do: a
is responsible
for solving
conjunctive
goals around
niques are incomplete
in their ability to detect global conflicts,
algorithms
using these techniques
search a somewhat
larger space
individual
components,
and a macro-planner
is responsible
for
taking the output of the micro-planner
and then controlling
grosser
and backtrack
aspects of the circuit
We must describe
when
inconsistencies
are found.
Within the space of consistent
states
space of behaviors
the circuit was designed
of the circuit lies the
to perform.
This is the
space our test generator
searches.
The ratio of designed behavior
to possible behavior
depends upon the particular
circuit, but the
more specialized
and complex
the circuit,
the smaller
it tends
to
be. 1
‘In the case of the MARK-2
processor,
this ratio
is on the order of 22”“.
Naturally this number says nothing about how the spaces are searched nor
about the frequency and distribution
of solutions within the spaces. We
haven’t yet done the performance measurements
for some typical circuits
that would yield these numbers. But, as suggested by the performance
of
our method on a microprogrammed
processor, we expect our method to
be a useful addition to the spectrum of techniques helpful for solving test
generation problems.
state, namely its data registers.
the circuit structure
and behavior
two parts of our program.
system models the circuit
nents,
roughly
for these
For simplicity’s
sake, the prototype
structure
as a flat network of compo-
at the level of the block
diagrams
in databooks.
3
The system uses four levels of behavioral
description.
The
simulation
models for the individual
components
are the foundation.
We only require them to predict
outputs
from inputs,
21n fact, because
are abstractions
designer.
the circuits are designed, it is not surprising
that there
readily available; they are the abstractions
used by the
3Note that, although
individual
gates.
the model is flat, it is considerably
above the level of
AUTOMATED REASONING
I 885
EXAMPLE
INPUT
SEQUENCES
+ COMPONENT
1
VIA
BEHAVIOR
SIMULATION
.
tion after
GRAPHS
~UMMIRIIAT~VIA
REGISTER
accomplished
using Design for Testability
techniques.
The next section introduces
a simple processor
which we use
as an illustration
throughout
the rest of the paper, and the sec-
BEHAVIORS
SUMMARIZATION
COMPONENT
CHANGES
that
4
The
MARK-2
The
circuit
shown
2: Behavior
fictional
Representations
two are summaries
Activation
havior
example,
as Lisp functions.
mentioned
above.
of the behavior
Sunzmary
graphs
directly
graphs
which
links
contain
if the simulator
graphs.
component
notices
that
sometime
during an instruction,
is linked to the behavior
graph
The next
The final
instances
MAC-l
the ALU performs
registers.
Figure 2 shows
tions are generated.
3.3
Summary
When
reasoning
VLSI circuits,
an add
the cuinternal
Characteristics
The first observation
gives us a way to overcome
culties resulting from the second. These observations
implications
which together
guide us to the strategy
representing
5
The
out:
first, that they are engineered
artifacts,
designed to accomplish
a
purpose,
and second, that their behavior
can be extremely
complex.
be controlled
each part
stand
the space of designed
behavior
the diffi-
The
ways
(e.g. by observing
We use simulation
because
which
fails
but
quickly
on the
it is much
amount
worse
of time with
Our
designed
present,
method
rest
so that
it is undesirable
quickly
and
either
terested
simulate
other
methods
can
generator
to fail,
be
and unpredictable
using
could
variables
The inputs
erations
the circuit’s
behavior
for solutions
to testing goals. If a solution is
then our program
will find it, and it does so quickly
and
components.
add,
of be-
flows through
the
it could be done
version
create
of the circuit).
behavior
graphs
we need
only
simulate
Rather
than
of numbers
the instruction
for data.
of operations
are the complete
set of circuit
plus perhaps
provided
inputs
by test
as programs,
experts.
because
op-
some interestthat
We repreworks
well
with another approach
to test generation
discussed in [Shirley85].
We divide the circuit state into two components:
control
state and data state4.
Control
state is initialized
the same
way for each simulation
variables.
For example,
is an effective test generation
strategy.
shows the performance
of our program
1).
6
a database
data, thus reducing
the number
simulation
we need. For example,
suppose we’re in-
because
the search space is limited.
To the extent
that the
Designed-Behavior
Hypothesis
is true, i.e. that efficient tests for
components
exist within the designed behavior,
then our method
The example in section
on a simple processor.
a working
from the databook,
sent these simulator
searches
is to create
it can easily
to the simulator
collected
ing sequences
way.
exhaustively
busses
inputs
accessible
”
intermediate
in the ADD instruction
of the MARK-2.
the instruction
once for each combination
the processor
-
for a test
for it to run for a large
no result
are not directlv
through
of the preprocessor
once,
Naturally,
23 instructions;
and data
primary
graphs which describe how information
We do this using simulation,
although
some
applied.
nodes
in
in turn.
purpose
in other
graphs
as important
is a lgbitincluding
a
for managing
global aspects of the circuit’s
captured
in the behavior
graphs.
We discuss
solves
- and just
of this circuit
is a sequencer,
implementing
of the
Details
containing
symbolic
runs (or observations)
quickly
portion
portion
indirectly
and of searching
those graphs for solutions
to testing goals.
We recognize that test generation
is a very difficult problem:
partial ‘solutions are likely to be the norm in this field for many
years to come. Consequently,
rather than trying to build a test
generator
which solves all problems,
we are aiming for one which
of the problems
example
Preprocessor
havior
circuit.
have several
of explicitly
with behavior
version
Our method
has’three
parts:
(1) a preprocessor
for creating
the
for finding patterns
of acbehavior
graphs,
(2) a micro-planner
tivity among the behavior
graphs which solve testing goals, and
representa-
two observations
as a teaching
The internal
must
micro-
presented
processor
(3) a macro-planner
state which aren’t
of the Domain
about
behavior
horizontally
modified
80 lines of microcode
and outputs.
For
then the ALU’s add operation
generated
by simulating
that in-
how the various
5 is a simple
It is a slightly
The central
the righthand
ROM holding
to the beof them.
The Register Transfer Summary captures
effects each behavior
graph has on the circuit’s
struction.
mulative
I
and the lefthand portion is a RAM. The address
and their associated
signal lines are this circuit’s
Component
The
operations
one or more
.
of our method.
Microprocessor
in figure
processor.
[Tanenbaum84].
wide datapath;
so we can implement
them
level is the set of behavior
the details
ACTIVATIONS
programmed
Figure
describes
and is left by most
The simulator
run, while
the program
instructions
data state is initialized
with
counter is initialized
to ?PC
holding
itself is event-driven,
the expression
where
an event
(+ ?PC
is a circuit
The question
of what the designer
should do when the test
generator
fails can be answered
by stepping
back from the test
generation
problem
and considering
its place within the larger
and simplifying
symbolic expressions
and (2) recording
justifications between events. These justification
links form a flow graph
context
which
of circuit
but one part
of testability
design
and manufacturing.
of the design task.
against performance
Test
generation
Thus, if generating
tests for a given circuit requires
effort or is impossible,
then the designer can consider
the
886
circuit
to make
the
/ ENGINEERING
problem
is
It is possible to trade off ease
and reliability
considerations.
easier.
Any
redesign
too much
modifying
can
be
node changing
its value.
is one component
Its essential
features
of the behavior
are (1) propagating
graph.
The expressions
‘This division depends on the level at which the circuit is described, but for
any given level it is fairly clear and generally corresponds to the division
of controller
and datapath.
For the MARK-2, the control state is the
microprogram
counter and the micro-instruction
register, and the data
state is everything
else (e.g. the accumulator
and the program counter).
Specific
Patterns
IrJPUT-1 II/PUT-2
0
65535
65535
0
1
65535
2
65535
4
65535
8
65535
16
65535
<more patterns>
A composite event
with subevents:
AT ?Time
= :PLUS
OP
IIIPUT-1 = ?Value-1
AT ?Time
Ilr'PUT-2
= ?Value-2 AT ?Time
OUTPUT = ?Output AT ?Time
and constraints:
(and (controllable? ?Value-1)
(controllable? ?Value-2)
(observable?
?Output))
Time
-------------
----------_
98
99
100
-> 101
?AC)
102
:PLUS
cuit
the values
inputs
the data
during
registers.
to say where
another,
are functions
simulation
The variables
they
much
of nodes
the
originated,
simplified,
the
initial
in these expressions
consequently,
flow graph
node back to primary
inputs.
of these two flow graphs.
5.2
of the values
run and
The behavior
.----------_
---------???
?Addend
OUTPUT
i+ ?Addend
?AC
of
of ADDD’s
Figure 4: Portion
behavior
graph
(shown
as a table)
are marked
the values
graph
form
at each
is the union
the matcher
and irrelevant
The Micro-Planner
The micro-planner’s
II:PUT-2
on cir-
states
the expressions
linking
IrlPUT-1
??? indicates an unknown value
.
indicates an unchanged value (i.e. ditto)
-> indicates the match
?Addend = Contents(RAId,?ADDR)
Figure 3: An event pattern
describing
OP
to divide the set of behavior
subsets depending
on whether
graphs into relevant
the component
“did
anything
interesting”
during a particular
behavior.
then tries each potentially
relevant behavior graph
task is to take a test for a single component,
The matcher
in turn until it
expressed
in terms of the component’s
I/O pins, and to rewrite
it in terms of the circuit’s
pseudo-inputs
and outputs
(i.e. pri-
The matching
finds a situation
which meets all of the constraints.
process itself is straightforward
unification
augmented
to check
mary
the additional
I/O
pins
plus data
registers).
The core of this planner
is
a matcher
which takes component
tests and finds
them in the behavior
graph database.
If successful,
instances
of
this planner
produces
will do most
a sequence
of the work
needed
of inputs
to cause
The remainder
of the work
Where do the component
two sources:
for standard
devices, we ask the domain
for the circuit
which
the test to occur
within
though we have not yet tried to do this.
Component
tests are expressed
in two parts:
of prototypical
operations
that the component
(e.g. a register
test data
provide
(e.g. have
must
try to load these
language
data
are just
sequences
in figure
3 describes
The pattern
for describing
and (b) actual
numbers).
prototypical
We
operations;
of numbers.
a prototypical
of the MARK-~‘S ALU. The four subevents
between place, value and time that define
tion. The additional
match only instances
we could
method,
(a) descriptions
must be able to
be able to load data)
the register
a rich
the actual
from
combinational
devices and sequential
experts.
For other combinational
de-
vices, we use a conventional
test generator.
In principle,
also use a recursive
application
of our test generation
perform
the circuit.
is done by the macro-planner.
tests come from? We get them
constraints
further
of add operations
pattern
The matcher
constraints.
finds numerous
havior graphs
i.e. when the
the behavior
graph
(ADDD)
, which
amount
stored
in main
?Time
?Value-1
?Value-2
?Output
specialize this pattern
to
that are useful for test-
inputs.
As
The
program
portion
to apply
matching
binding
pattern
by an
of this
In all of
specific test data
an event pattern
environment.
The
in figure 3 against
75
Contents(RAId, ?Addr)
?AC
(+ Contents(RAM, ?Addr) ?AC)
address
set up so that
from section
3.2 allows
which
At this point
determine
what
inverse function
came out of the ALU, by applying
the
that we observe at the circuit output.
can then
(i.e. ?Value-2)
instruction
Moreover,
Summary
relevant
==
==
==
back-solve
to determine
properly.
Similarly,
there must be a output
of the circuit which
is an invertible
function
of the ALU's output. With that we can
Activation
The
==
some
into the two primary
test data moves through
the circuit to the ALU, it is
back to the desired value, thus exercising
the ALU
The Component
memory.
instruction
of the accumulator
add operation
describe the relations
the ALU’s add opera-
then
actually
to data
the value
Recall that our purpose
here is
to the ALU. An additional
result of
against
a behavior
graph is a variable
bindings
resulting
from matching
the
the behavior
graph in figure 4 are:
isters in order to apply
In this case, one addend
data
be-
graph appears
in figure 4, displayed
in tabular
form.
the other potential
matches
the ALU is either incrementing
the
in all of these cases, one
program
counter
or the stack pointer:
of the ALU’s inputs is a constant,
and thus is not controllable.
of two distinct
primary
inputs.
This allows us to apply test data
to the ALU by transforming
the data using the inverse functions,
the inverted
the MARK-~‘S
for the ADD-Direct-from-memory
increments
environment
feeding
where
many situations
in which the ALU performs
an addition.
But
only one of these potential
matches meets the additional
restrictions needed for it to help test the ALU. This match occurs in
ing the ALU. In order to help, the expressions
on the two input
nodes must be controllable,
i.e. they must, be invertible
functions
the inverted
transformed
places
match the subevents
of the pattern
in figure 3,
processor
is “put through
its paces,”
there are
must
the equations
in this binding
how it must set up the circuit’s
regparticular
values to the ALU’s inputs.
(i.e. ?Value-1) must be in the RAM at
can be specified
later,
and the other
addend
be in the accumulator.
the micro-planner
has now identified
the ADDD
as the one to use to test the ALU’s addition operation.
it has also determined
how the data registers must be
the ADDD
instruction
the job of the macro-planner
operations which will initialize
can do this job.
It is now
to work out a sequence of circuit
the data registers
properly.
AUTOMATED
REASONING
/ 887
5.3
The Macro-Planner
The
purpose
of the
operations
macro-planner
(in this case
the circuit’s
micro-planner
descriptions
is to generate
sequences
of
set up
leave important
data in one or more registers
the ALU’s output in the accumulator),
a sec-
ond job of the macro-planner
to one of the circuit’s
is to work out how to move
outputs
The macro-planner
where
searches
based
on the sequence
contained
through
length
in the registers.
results
it can be observed.
the space
sequences
to find one which moves data
planner is implemented
as straightforward
a metric
which
state so that the single test operation
found by the
will start with the right data. Since a test opera-
tion will sometimes
(e.g. ADDD leaves
data
sequences
of instructions)
and
pattern
designed
simulation
method)
(a well-behaved
operations
for testing
macro-planner,
set up circuit
The
with
of useful
descriptions
(i.e.
6
inputs
,I
II
5
---->
on an Example
Figure
6 shows the fault
achieves with the MARK-2
The
chose the ADDD
information
for the
program
coverage
that
processor6.
was able to generate
while
to
(PRELOAD-IIEIYIORY
?Ac ?ADDR)
(LODD ?ADDR)
(PRELOAD-MEMORY ?vAm
?ADDR)
(ADDD ?ADDR)
(STOD ?ADDR)
(OBSERVE-14~140~~(+ ?VALUE ?AC) ?ADDR)
Performance
components,
of all of this is the sequence
which subsequently
included three operations
state and two operations
to observe it.
1:
2:
3:
Test ------------> 4:
Observe outputs
-> 5:
1,
6:
Setup
it failed
our
7
Explaining
Circuit
prototype
system
method
operations
Note
We believe
Consider
starts
testing
the datapath
to realize
despite
trolled almost completely
of the program’s
success
that
the fact
the program
that
should
of the
some
ality.
of the mapping
is easily
between
able to
component
following
account
a specification
of processor
for an abstract
registers
abstract
design:
machine
and’the
machine
a designer
which
includes
instruction
set. His
in hardware
while
is con-
by 80 lines of intricate
microcode.
Part
can be attributed
to its use of abstract
describing
capabilities
of the tester
two special operations
oper .ations
and observe-memory
hardware. These are the preload-memory
which write data into and read data from the RAM.
has 1G components
and 91 nodes.
Each simulation
run is
approximately
50 clock cycles long, taking about 10 seconds of real time on
a Symbolics 3640. Generation
of prototype tests, i.e. tests with symbolic
data, for this circuit takes 1 minute, including both the time taken for
successfully creating tests for some components and failing to do so for
instruction,
from
register
these
describing
how data
to register.
dataflow
graphs
Naturally
directly
To do this, he adds
identity
transformations.
in one graph
in hardware:
as
can’t
without
boxes
gle multiplexor.
collects
to the graphs components
which perform
For example,
he might insert a reg-
to shift
allowing
some
components
via time-multiplexing.
of its operations
to be shared
In another
into two graphs
When
all the control
signals
from
By this account,
tal refinement
controller
chine).
and
them
large
portions
the fact
of individual
plus
that
is designed
different
change
means
existing
components
that many datapath
processor
the merging
and creates
a
these signals at the right
any one of the well-known
from
is designed
(stylized
implementation
The availability
of components
which
chips),
a sin-
the designer
all the graphs
is very
graph
introduce
using
fit together,
the way the datapath
merging)
in time,
another
he might
and implement
the flow graphs
later
with
situation,
finite state machine
(FSM) to provide
times. This FSM is implemented
using
methods
(e.g. with a PLA).
ment
is transformed
the designer
sharing
there would be a wasteful
duplication
of functionSo he looks for ways of merging
the graphs together.
identity
in
‘We include
GThis circuit
the circuit
varies over different
parts of the circuit,
is a direct result of the design process.
the programmer
accessible
job is to implement
this
implement
that
succeeds
the datapath
the directness
the
with
thereby
It is also important
between
of the components
that implement
between
the more “direct” the relationship
operations
and circuit operations,
the bet-
and circuit operations
and that this variation
ister
be modified.
Thus our program’s
failure points out areas
circuit that a redesign program
should focus on.
on the relationship
of the processor,
and consequently,
our method
solve testing goals involving
that ALU operation.
the expert
but really
depends
ter our method
performs.
For example,
the ADD operation
of
the ALU very directly implements
part of the ADDD instruction
since data paths are typically
much wider than control paths.
’
Our program
also quickly fails on the controller,
an area which
with effort,
the Performance
and the operations
one for each
for the highlighted
to do so for the others.
testable
to solve problems
side.
meeting myriad performance,
reliability,
and cost constraints.
The specification
can be viewed as a set of dataflow
graphs,
the program
can quickly work out how to test virtually
all of the
datapath,
which includes more than half of the physical circuit,
says is partially
on the other
method
is that it
components
using
Why is there a radical
difference
in coverage
between
the datapath
and the controller ? We conjecture
that the performance
it moves
tests
through
of instruction
and the amount
below. The micro-planner
the ALU and provided
reasoning
the components
them. In particular,
individual
component
of circuit
operation
use of simulation
backwards
of our
complex
from the behavior
graphs.
the
reasoning
would try to do. A clear advantage
can work forward
through
extremely
of our
of the end product
Also,
is critical:
sequencer
is very difficult, yet this is exactly what
planners
and classical
test generation
algorithms
descriptions
of the effects of instructions)
are contained
in the
Register Transfer Summaries,
which are generated
by our system
An example
behavior.
matching
the microcode
goal-directed
involving
around
properly.
best-first
search
The operator
of the circuit’s
behavior
(e.g. while controlling
the
The program
generates
these abstract
descrip-
register
state).
tions from the
(incrementhe way the
of a state madirectly
imple-
operations
process
doesn’t
(it just adds new identity
component
operations
tend
(e.g. ALU
normally
boxes),
to “very
directly
implement”
circuit operations.
The state machine
design process,
however,
need yield no such simple relationships.
The behavior
of the whole
different
from the behavior
register,
888 / ENGINEERING
ROM,
or MUX).
controller
(a state machine)
of any controller
component
is very
(e.g. a
CA
I
MFIRK-2
Figure
5: The MARK-2
Processor
HA ,I I,
1 1 I
MARK-2
Figure
6: Coverage
of processor
components
AUTOMATED
REASONING
/ 889
This account
also suggests
a difference
between
References
our approach
to test generation
and the classical approaches.
The usual result
of the design process, a circuit topology, is the superposition
of
the dataflow graphs, plus the identity boxes added to allow sharing, plus the controlling
state machine.
include the list of operations
the circuit
This topology doesn’t
can perform,
nor does
it make explicit
the circuit,
how data
moves through
e.g. timing
[DeKleer79]
[Roth661
attempt
nents
to generate
and topology.
tests
Testing
directly
experts
from the circuit
perform
compo-
well, because
8
are an approximation
of the flow graphs.
[Shirley851
they
8
Conclusion
We have demonstrated
how knowledge of a system’s designed behavior can help solve test generation
problems, or more generally,
problems involving manipulation
The key to our method is that
be far more limited
can translate
planning
than
of complex engineered systems.
a device’s designed behavior can
its potential
into a reduction
behavior.
of the search
This limitation
necessary
to achieve
goals.
A prototype
system has been implemented
and run on a small
number of examples.
This system has 3 components:
(1) a preprocessor to create the behavior graphs using symbolic simulation of input sequences out of the databook;
(2) a micro-planner
to match
simulation
tivation
aspects
planner’s
testing goals gotten
runs (the matcher
from domain experts against
is guided by the Component
the
Ac-
to control,global
Summaries);
and (3) a macro-planner
of the circuit’s state (the behavior graphs also supply the
operator
descriptions).
The system has generated
tests for a simple
apath.
It was successful despite the fact that
processor’s
datthe datapath
is
controlled
by 80 lines of intricate microcode.
A clear advantage
of our method is that it can, by using simulation,
reason forward
through complex components,
such as the controller,
in order
solve problems involving the components
on the other side.
9
to
Acknowledgments
The following
to the contents
Yehudah
people
have read
of this paper:
Freundlich,
drafts
Randall
Jeff Van Baalen,
or otherwise
Davis,
Walter
contributed
Gordon
Kramer,
Howard Shrobe,
Ralil ValdCs-Perez,
Brian
Peng Wu. I would especially like to thank Gordon
who is the testing
expert
whose
methods
Robinson,
Hamscher,
inspired
Glenn
Williams,
Robinson,
much
of this
work.
‘The domain experts report an interesting dichotomy. They say that, for
humans, test generation problems are either very easy or very hard. The
problems are easy when they can see clearly which manipulations
of the
device’s interfaces are useful for exercising components inside the circuit,
and hard otherwise. In our work, we have have made some effort, albeit
informally, to match the performance of our test generation system to the
expert’s intuitions about which problems are easy for humans and which
are hard. And the expert does report that the results on the MARK-2
match his expectations fairly closely.
890
/ ENGINEERING
of Technology,
Roth,
J. P., “Diagnosis
1979, AI-TR-529.
of Automata
Failures:
A
278-291.
Shirley,
M.,
“An Automatic
proach to Testing,”
IEEE
lation and Test Generation
know the same things designers know and can reconstruct
and
use the designer’s flow graphs. Finally, our program is successful
for the same reason, it reconstructs
and uses behavior
graphs,
which
stitute
Calculus and a Method,”
IBM Journal
of Research and Development, Vol. 10, July 1966, pp.
and selection relationships,
both of which were explicit in the
flow graphs before they were merged.
Classical test generation
algorithms
perform poorly, because
they
de Kleer, J., Causal and Teleological Reasoning
in Circuit Recognition, Diss., Massachusetts
In-
Programming
Ap-
Workshop on SimuSept
Environments,
1985.
[Singh85]
Singh, N., Exploiting Design Morphology to Manage Complezity, Diss., Stanford
Department
of
Electrical Engineering,
April 1985.
[Tanenbaum841
Tanenbaum,
A. S., Structured
nization, Prentice-Hall,
NJ, 1984.
Inc.,
Computer
Englewood
OrgaCliffs,