Test Related Research

Home | Contact Us 
   IEEE MTV Workshop  |  People  |  Research  |  Publications  |  Software  |  News & Events  |  Links
 
  Solving Problems After Design Timing Closure and Before Mass Production
Basic skills and knowledge: In order to be capable of working on research problems in this area, you need to prepare yourself with the some skills and knowledge. Here is a check list for you to see if you are ready. If you are not 100% comfortable with any one of the items, you need to look for materials to enhance your knowledge on the concept or subject. Many concepts are taught in 255A or covered in this book on Delay Testing.  You can begin by tracing and modifying the existing tools being developed.

Basic test knowledge: Ask yourself, do you understand the following concepts?

  • Fault models like stuck-at, bridging, transition faults, path delay faults
  • ATPG search
  • Defective part level and DPL prediction models (Williams-Brown Model)
  • Scan test and functional test
  • Test compression
  • SAT and SAT based ATPG

Delay test: Ask yourself, are you familiar with delay testing concepts? You may need to read Chapters 1-6 of this good book on delay testing.

  • Two-vector pattern test
  • Transition fault ATPG
  • Critical path and speed path
  • Path delay ATPG, sensitization criteria of a path
  • SAT-based path delay ATPG
  • Speed binning, functional mode vs. scan mode
  • Correlation of functional delay testing to scan delay testing

Timing analysis: Ask yourself, do you feel comfortable about the following?

  • Static timing analysis algorithm
  • Building a timing model
  • Statistical STA algorithms (Canonical-form representation)
  • Statistical timing models
  • Models of process variations, spatial correlation models
  • Design timing closure
  • Critical path selection and ranking

Programming skills: Are you familiar with various programming skills? (Are you familiar with standard programming interface such as STL C++ library, or a parser builder like Bison?)

  • Basic data structures: Stack, Queue, Hashing, Binary tree, Array of pointers, Graph, etc.
  • You probably want to get familiar with STL C++ library on using basic data structures and algorithms
  • Basic algorithms: Sorting, Search algorithms, Branch and Bound, Local search, Genetic algorithm
  • Parsers: Do you know how to write a parser to parse a circuit netlist, a timing model, a design data format like XML? Do you know how to use a parser builder like Bison?
  • ATPG: Do know know how to write an ATPG?
  • SAT: Can you take a SAT solver and write a SAT-based path delay fault ATPG?
  • Simulators: Can you write a fault simulator? Can you write a timing simulator based on a given fixed-delay timing model?
     
(still under construction ...) Last update: 09/27/2006 02:10:32 PM

For 1173.001, the project started on Jan 1, 2004. You can find the progressive reports here (username: src, password: src1578). Where this research is going can be found at this NSF project proposal with references.

Our focus of research is to solve problems after design timing closure and before mass production. If you are not familiar with what problems to solve, you probably want to review my TTEP tutorial slides. We can divide the problems into several categories:

  • Pre-silicon simulation and analysis: The simulation and analysis tools are more accurate with the objective to support test preparation and silicon debug. An example of this can be the Pattern-based statistical timing analysis tool.

  • Timed ATPG and statistical timed ATPG: The objective is to build an ATPG tool that can extend the ATPG analysis to include timing information or even statistical timing information. An example can be the Learning-driven statistical timing ATPG approach.

  • Timing diagnosis and debug: The objective is to extend the traditional research in diagnosis and debug to consider process variations. For example, statistical diagnosis is quite different from traditional diagnosis as stated in this paper. I think to go further, the statistical diagnosis has to be combined with Design-for-Manufacturing (DFM) techniques such as Identifying and Matching Problematic Layout Patterns.

  • Test preparation and test optimization: The objective is to develop the best test sets or the optimal test strategy in delay test or speed binning. To begin the thinking of this direction, we have been work on Test Pattern Selection. This is only a very small step to achieve Test Optimization. In general, we need to think, after analyzing the test results from the 1st silicon samples, what can we do to improve our test pattern set or to improve our test strategy?

  • Test data mining and learning: To support diagnosis, debug, and test optimization, test data mining and learning techniques should be invented. However, so far we have not yet proposed something concrete enough to be called Test Data Mining. This will continuously be the question driving us.

In summary, to be able to pursue research in this area, you need to get yourself familiar with the skills and knowledge listed on the left-hand side. You need to understand the materials covered in the TTEP tutorial. Also, you need to understand the basic algorithms in data mining and learning. Then, we can start the discussion of how to apply various learning techniques to solve problems in this domain.


Working on the existing tools:

A good way to get yourself familiar with the concepts and skills listed on the left-hand side is to work on something that is real. So far we have developed various tools and methodologies. You can pick up the code of a tool and try to extend it or develop some simplified versions of the codes.

  • Statistical timing model: You need to get familiar with this model and also, try to develop and enhance the model so that it can be incorporated with our tools.

  • Pattern-based statistical timing analyzer: This tool takes a pattern and simulate it based on the statistical timing model. The simulation is hazard-aware as described in the paper. You can extend it to consider other timing effects such as spatial correlations, cross-talks, MISs, etc.

  • Statistical static timing analyzer: This tool implements the IBM SSTA methodology. The enhancement is to allow spatial correlations to be learned from the silicon path delay testing results as described in this DAC submission. You can take this tool and add various features to it, such as selection of critical paths and add a SAT-based path delay ATPG to it.

After you read the book, you can try to develop some simple codes to do:

  • Transition fault and path delay fault simulation (logic analysis only)

  • ATPG for path delay fault

  • Critical path classification (logic analysis only)

  • Path classification and path simulation by considering timing

Developing those simple tools can help you understand the concepts as well as help you to practice your coding ability.