Nan
Xu -
2009,
Summer, Research at Brown University
Research
Projects
My
Project:
The
project I am working on deals with the automatic generation of test
sets for multi-core systems. Specifically, we want to generate
new tests online to allow problems due to defects and wear-out to be
detected. To do these, we are concentrating on creating
pattern templates that will detect "hard" faults. A
template consists of a partially-specified pattern that is
guaranteed to excite or observe a hard fault. For each hard
fault targeted during test generation, at least one excitation and
observation template will be chosen and combined to form a pattern
that is guaranteed to detect the fault. We can then use the
patterns we have created to form our new test set.
Specifically,
I first start by running an ATPG tool that will detect each fault at
least 15 times. Faults that are detected exactly 15 times are
"hard" faults. Those 15 patterns that detect each
hard fault constitute the original pattern list for that fault.
I am trying to find out the excitation and observation bits from
each pattern for the corresponding hard faults for the circuits c432
and c499. To determine the role each bit plays in fault
detection, each bit of each pattern was linearly exchanged to its
inverse to form a new pattern. Those new patterns were simulated to
determine if they still detect the targeted fault. There are three
possible situations. If the new pattern with one bit reversed can
still detect the hard fault, the inverted bit was not required for
observation or excitation, and thus we can change this bit to 'X'.
If the new pattern couldn't detect the hard fault which was detected
by the original pattern without the bit reversed, but detected
another stuck-at fault at this site, then this bit was an
excitation, but not an observation, bit. Or, if the new pattern
detected none of the faults at this site, this bit was an
observation bit. In the end, the excitation and observation bits
were picked out of each pattern respectively, and the bits not
required for excitation/observation were filled with X's. The whole
process was implemented by running the commercial FastScan program
and my own C programs.
Final
Report