II. Open-source Projects
Dec 2012 - Present
Tsinghua University, School of Software
Project Description: During the internship in School of Software in Tsinghua University, I work in the laboratory of micro-electronics and my mentor is Prof. Dong Xiang. My work focused on Atalanta, an open source ATPG tool and fault simulator for combinational circuits. We need to improve its test compression rate by furnishing it with more functionality such as influence cone analysis, selective static compression and so on.
Responsibility: In charge of management and improvement of the Atalanta source code, including removing the bugs in Atalanta and helping with experiments written in the Prof. Xiang��s paper.
Our Atalanta is a modified ATPG (Automatic Test Pattern Generation) tool and fault simulator, orginally from VirginiaTech University
. Our first step is to add the influence cone analysis to Atalanta. For each fault f which needs detection, generate
its test pattern p. We select a randome fault subset F1 from the fault set which needs detection F. The size of F1 is max(1000, F). Then for each fault in
F1, we use the following method to analyze forward and backward:
Step 1. Justify Procedure
i. Under condition of output(AND) = 1 or output(OR) = 0, for each input of the gate, check whether there's conflict between this value and already assigned value of the pattern. If there's conflict, call justify function recursely for this input. If not, just assign a value for the input at will.
ii. Under condition of output(AND) = 0 or output(OR) = 1, for the input with the lowest measure, check whether there's conflict between this value and already assigned value of the pattern. If there's conflict, check the input with the second lowest measure. The rest can be done in the same manner. If every input occurs conflict, then find the input with the lowest measure and call justify function recursely.
Step 2. Propagate Procedure
Propagate the output of faults forwardly, during the propagation neibor input is not justfied. if the output of fault could be propagated to primary output, then we could say that the fault can be compressed into the existing pattern.
Step 3. Determine Procedure
Eventually when primary inputs are finished with justifying, if the justified value ressembles the previously assigned one, then no conflict occurs, if not, we can say that this fault cannot be compressed into the existing pattern.
Languages used by Atalanta are:
Techniques used by Atalanta are:
Download source from GitHub
Atalanta official website
Atalanta-M 2.0 website