Nan Xu - 2009, Summer, Research at Brown University

Home              Research Projects            Journal             Photo Gallery

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