Lecture 9 Advanced Combinational ATPG Algorithms

Slides:



Advertisements
Similar presentations
CMP238: Projeto e Teste de Sistemas VLSI Marcelo Lubaszewski Aula 4 - Teste PPGC - UFRGS 2005/I.
Advertisements

Hybrid BDD and All-SAT Method for Model Checking Orna Grumberg Joint work with Assaf Schuster and Avi Yadgar Technion – Israel Institute of Technology.
Automatic Test Generation and Logic Optimization.
Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 121 Lecture 12 Advanced Combinational ATPG Algorithms  FAN – Multiple Backtrace (1983)  TOPS – Dominators.
Appendix: Other ATPG algorithms 1. TOPS – Dominators Kirkland and Mercer (1987) n Dominator of g – all paths from g to PO must pass through the dominator.
Based on text by S. Mourad "Priciples of Electronic Systems" Digital Testing: Design Representation and Fault Detection
Timing Analysis - Delay Analysis Models
1 Lecture 10 Sequential Circuit ATPG Time-Frame Expansion n Problem of sequential circuit ATPG n Time-frame expansion n Nine-valued logic n ATPG implementation.
Partial Implications, etc.
3/30/05Agrawal: Implication Graphs1 Implication Graphs and Logic Testing Vishwani D. Agrawal James J. Danaher Professor Dept. of ECE, Auburn University.
1 Recursive Learning Madhurima Maddela. ELEC /26/052 Decision Tree Traditionally used to branch and bound in the search space to generate test.
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 91 Lecture 9 Combinational Automatic Test-Pattern Generation (ATPG) Basics n Algorithms and representations.
Jan. 29, 2002Gaur, et al.: DELTA'021 A New Transitive Closure Algorithm with Application to Redundancy Identification Vivek Gaur Avant! Corp., Fremont,
1 Lecture 11 Major Combinational Automatic Test-Pattern Generation Algorithms n Definitions n D-Algorithm (Roth) D-cubes Bridging faults Logic.
6/11/2015A Fault-Independent etc…1 A Fault-Independent Transitive Closure Algorithm for Redundancy Identification Vishal J. Mehta Kunal K. Dave Vishwani.
Algorithms and representations Structural vs. functional test
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 9alt1 Lecture 9alt Combinational ATPG (A Shortened version of Original Lectures 9-12) n ATPG problem.
4/28/05 Raghuraman: ELEC To Generate a Single Test Vector to detect all/most number of faults in a given set Project by: Arvind Raghuraman Course.
Copyright 2001, Agrawal & BushnellDay-1 PM Lecture 61 Design for Testability Theory and Practice Lecture 6: Combinational ATPG n ATPG problem n Example.
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 11alt1 Lecture 11alt Advances in Combinational ATPG Algorithms  Branch and Bound Search  FAN – Multiple.
Lecture 6 Testability Measures
Logic Synthesis 5 Outline –Multi-Level Logic Optimization –Recursive Learning - HANNIBAL Goal –Understand recursive learning –Understand HANNIBAL algorithms.
1 Lecture 10 Redundancy Removal Using ATPG n Redundancy identification n Redundancy removal Original slides copyright by Mike Bushnell and Vishwani Agrawal.
1 Oct 24-26, 2006 ITC'06 Fault Coverage Estimation for Non-Random Functional Input Sequences Soumitra Bose Intel Corporation, Design Technology, Folsom,
Efficient Reachability Checking using Sequential SAT G. Parthasarathy, M. K. Iyer, K.-T.Cheng, Li. C. Wang Department of ECE University of California –
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 81 Lecture 8 Testability Measures n Origins n Controllability and observability n SCOAP measures 
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 111 Lecture 11 Major Combinational Automatic Test-Pattern Generation Algorithms n Definitions n D-Algorithm.
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 101 Lecture 10 Combinational ATPG and Logic Redundancy n Redundancy identification n Redundancy removal.
Using Contrapositive Law in an Implication Graph to Identify Logic Redundancies Kunal K. Dave ATI Research INC. Vishwani D. Agrawal Dept. of ECE, Auburn.
Unit II Test Generation
VLSI Testing Lecture 7: Combinational ATPG
Technical University Tallinn, ESTONIA 1 Boolean derivatives Calculation of the Boolean derivative: Given:
MBSat Satisfiability Program and Heuristics Brief Overview VLSI Testing B Marc Boulé April 2001 McGill University Electrical and Computer Engineering.
Modern VLSI Design 3e: Chapter 5,6 Copyright  2002 Prentice Hall PTR Adapted by Yunsi Fei Topics n Sequential machine (§5.2, §5.3) n FSM construction.
ECE 260B – CSE 241A Testing 1http://vlsicad.ucsd.edu ECE260B – CSE241A Winter 2005 Testing Website:
Copyright 2001, Agrawal & BushnellLecture 6: Sequential ATPG1 VLSI Testing Lecture 6: Sequential ATPG n Problem of sequential circuit ATPG n Time-frame.
ECE 553: TESTING AND TESTABLE DESIGN OF DIGITAL SYSTES Combinational ATPG.
A New ATPG Algorithm for 21 st Century: The wojoRithm John Sunwoo Electrical & Computer Engineering Auburn University, AL.
EE141 VLSI Test Principles and Architectures Test Generation 1 1 中科院研究生院课程: VLSI 测试与可测试性设计 第 5 讲 测试生成 (1) 李晓维 中科院计算技术研究所
Hybrid BDD and All-SAT Method for Model Checking
Algorithms and representations Structural vs. functional test
VLSI Testing Lecture 4: Testability Analysis
VLSI Testing Lecture 6: Fault Simulation
Algorithms and representations Structural vs. functional test
CS137: Electronic Design Automation
Definitions D-Algorithm (Roth) D-cubes Bridging faults
Lecture 13 Sequential Circuit ATPG Time-Frame Expansion
Definitions D-Algorithm (Roth) D-cubes Bridging faults
VLSI Testing Lecture 6: Fault Simulation
VLSI Testing Lecture 7: Combinational ATPG
Lecture 10 Sequential Circuit ATPG Time-Frame Expansion
ELEC Digital Logic Circuits Fall 2014 Logic Testing (Chapter 12)
CPE/EE 428, CPE 528 Testing Combinational Logic (5)
Pattern Compression for Multiple Fault Models
Lecture 5 Fault Modeling
Automatic Test Generation for Combinational Circuits
CPE/EE 428, CPE 528 Testing Combinational Logic (4)
VLSI Testing Lecture 8: Sequential ATPG
Lecture 12 Advanced Combinational ATPG Algorithms
A New ATPG Algorithm for 21st Century: The wojoRithm
Fault Models, Fault Simulation and Test Generation
VLSI Testing Lecture 7: Combinational ATPG
Automatic Test Pattern Generation
VLSI Testing Lecture 4: Testability Analysis
Sungho Kang Yonsei University
Theorems on Redundancy Identification
D-Algorithm (1/4) h d' d i j e' n e k a g b c l f' f m Example 1 D’ G1
Lecture 13 Sequential Circuit ATPG Time-Frame Expansion
CS137: Electronic Design Automation
Presentation transcript:

Lecture 9 Advanced Combinational ATPG Algorithms FAN – Multiple Backtrace (1983) TOPS – Dominators (1987) SOCRATES – Learning (1988) Legal Assignments (1990) EST – Search space learning (1991) BDD Test generation (1991) Implication Graphs and Transitive Closure (1988 - 97) Recursive Learning (1995) Test Generation Systems Test Compaction Summary Original slides copyright by Mike Bushnell and Vishwani Agrawal

FAN -- Fujiwara and Shimono (1983) New concepts: Immediate assignment of uniquely-determined signals Unique sensitization Stop Backtrace at head lines Multiple Backtrace

PODEM Fails to Determine Unique Signals Backtracing operation fails to set all 3 inputs of gate L to 1 Causes unnecessary search

FAN -- Early Determination of Unique Signals Determine all unique signals implied by current decisions immediately Avoids unnecessary search

PODEM Makes Unwise Signal Assignments Blocks fault propagation due to assignment J = 0

Unique Sensitization of FAN with No Search Path over which fault is uniquely sensitized FAN immediately sets necessary signals to propagate fault

Headlines Headlines H and J separate circuit into 3 parts, for which test generation can be done independently

Contrasting Decision Trees FAN decision tree PODEM decision tree

Multiple Backtrace FAN – breadth-first passes – 1 time PODEM – depth-first passes – 6 times

AND Gate Vote Propagation [5, 3] [0, 3] [5, 3] [0, 3] [0, 3] AND Gate Easiest-to-control Input – # 0’s = OUTPUT # 0’s # 1’s = OUTPUT # 1’s All other inputs -- # 0’s = 0

Multiple Backtrace Fanout Stem Voting [5, 1] [1, 1] [3, 2] [18, 6] [4, 1] [5, 1] Fanout Stem -- # 0’s = S Branch # 0’s, # 1’s = S Branch # 1’s

Multiple Backtrace Algorithm repeat remove entry (s, vs) from current_objectives; If (s is head_objective) add (s, vs) to head_objectives; else if (s not fanout stem and not PI) vote on gate s inputs; if (gate s input I is fanout branch) vote on stem driving I; add stem driving I to stem_objectives; else add I to current_objectives;

Rest of Multiple Backtrace if (stem_objectives not empty) (k, n0 (k), n1 (k)) = highest level stem from stem_objectives; if (n0 (k) > n1 (k)) vk = 0; else vk = 1; if ((n0 (k) != 0) && (n1 (k) != 0) && (k not in fault cone)) return (k, vk); add (k, vk) to current_objectives; return (multiple_backtrace (current_objectives)); remove one objective (k, vk) from head_objectives;

TOPS – Dominators Kirkland and Mercer (1987) Dominator of g – all paths from g to PO must pass through the dominator Absolute -- k dominates B Relative – dominates only paths to a given PO If dominator of fault becomes 0 or 1, backtrack

SOCRATES Learning (1988) Static and dynamic learning: a = 1 f = 1 means that we learn f = 0 a = 0 by applying the Boolean contrapositive theorem Set each signal first to 0, and then to 1 Discover implications Learning criterion: remember f = vf only if: f = vf requires all inputs of f to be non-controlling A forward implication contributed to f = vf

Improved Unique Sensitization Procedure When a is only D-frontier signal, find dominators of a and set their inputs unreachable from a to 1 Find dominators of single D-frontier signal a and make common input signals non-controlling

Constructive Dilemma [(a = 0) (i = 0)] [(a = 1) (i = 0)] (i = 0) If both assignments 0 and 1 to a make i = 0, then i = 0 is implied independently of a

Modus Tollens and Dynamic Dominators (f = 1) [(a = 0) (f = 0)] (a = 1) Dynamic dominators: Compute dominators and dynamically learned implications after each decision step Too computationally expensive

EST – Dynamic Programming (Giraldi & Bushnell) E-frontier – partial circuit functional decomposition Equivalent to a node in a BDD Cut-set between circuit part with known labels and part with X signal labels EST learns E-frontiers during ATPG and stores them in a hash table Dynamic programming – when new decomposition generated from implications of a variable assignment, looks it up in the hash table Avoids repeating a search already conducted Terminates search when decomposition matches: Earlier one that lead to a test (retrieves stored test) Earlier one that lead to a backtrack Accelerated SOCRATES nearly 5.6 times

Fault B sa1

Fault h sa1

Implication Graph ATPG Chakradhar et al. (1990) Model logic behavior using implication graphs Nodes for each literal and its complement Arc from literal a to literal b means that if a = 1 then b must also be 1 Extended to find implications by using a graph transitive closure algorithm – finds paths of edges Made much better decisions than earlier ATPG search algorithms Uses a topological graph sort to determine order of setting circuit variables during ATPG

Example and Implication Graph

Graph Transitive Closure When d set to 0, add edge from d to d, which means that if d is 1, there is conflict Can deduce that (a = 1) F When d set to 1, add edge from d to d

Consequence of F = 1 Boolean false function F (inputs d and e) has deF For F = 1, add edge F F so deF reduces to d e To cause de = 0 we add edges: e d and d e Now, we find a path in the graph b b So b cannot be 0, or there is a conflict Therefore, b = 1 is a consequence of F = 1

Related Contributions Larrabee – NEMESIS -- Test generation using satisfiability and implication graphs Chakradhar, Bushnell, and Agrawal – NNATPG – ATPG using neural networks & implication graphs Chakradhar, Agrawal, and Rothweiler – TRAN --Transitive Closure test generation algorithm Cooper and Bushnell – Switch-level ATPG Agrawal, Bushnell, and Lin – Redundancy identification using transitive closure Stephan et al. – TEGUS – satisfiability ATPG Henftling et al. and Tafertshofer et al. – ANDing node in implication graphs for efficient solution

Recursive Learning Kunz and Pradhan (1992) Applied SOCRATES type learning recursively Maximum recursion depth rmax determines what is learned about circuit Time complexity exponential in rmax Memory grows linearly with rmax

Recursive_Learning Algorithm for each unjustified line for each input: justification assign controlling value; make implications and set up new list of unjustified lines; if (consistent) Recursive_Learning (); if (> 0 signals f with same value V for all consistent justifications) learn f = V; make implications for all learned values; if (all justifications inconsistent) learn current value assignments as consistent;

Recursive Learning i1 = 0 and j = 1 unjustifiable – enter learning a1 h h1 a2 b2 e2 f2 c2 g2 i2 j = 1 d2 h2 k

Justify i1 = 0 Choose first of 2 possible assignments g1 = 0 a1 a b b1 d d1 h h1 a2 b2 e2 f2 c2 g2 i2 j = 1 d2 h2 k

Implies e1 = 0 and f1 = 0 Given that g1 = 0 a1 a e1 = 0 b b1 c1 c j = 1 d2 h2 k

Justify a1 = 0, 1st Possibility Given that g1 = 0, one of two possibilities a1 = 0 a e1 = 0 b b1 c1 c g1 = 0 i1 = 0 d d1 f1 = 0 h h1 a2 b2 e2 f2 c2 g2 i2 j = 1 d2 h2 k

Implies a2 = 0 Given that g1 = 0 and a1 = 0 a1 = 0 a e1 = 0 b b1 c1 c f1 = 0 h h1 a2 = 0 b2 e2 f2 c2 g2 i2 j = 1 d2 h2 k

Implies e2 = 0 Given that g1 = 0 and a1 = 0 a1 = 0 a e1 = 0 b b1 c1 c f1 = 0 h h1 a2 = 0 e2 = 0 b2 f2 c2 g2 i2 j = 1 d2 h2 k

Now Try b1 = 0, 2nd Option Given that g1 = 0 a1 a e1 = 0 b b1 = 0 c1 c f1 = 0 h h1 a2 e2 b2 f2 c2 g2 i2 j = 1 d2 h2 k

Implies b2 = 0 and e2 = 0 Given that g1 = 0 and b1 = 0 a1 a e1 = 0 b c1 c g1 = 0 i1 = 0 d d1 f1 = 0 h h1 a2 e2 = 0 b2 = 0 f2 c2 g2 i2 j = 1 d2 h2 k

Both Cases Give e2 = 0, So Learn That d d1 f1 = 0 h h1 a2 e2 = 0 b2 f2 c2 g2 i2 j = 1 d2 h2 k

Justify f1 = 0 Try c1 = 0, one of two possible assignments a1 a e1 = 0 d d1 f1 = 0 h h1 a2 e2 = 0 b2 f2 c2 g2 i2 j = 1 d2 h2 k

Implies c2 = 0 Given that c1 = 0, one of two possibilities a1 a e1 = 0 d d1 f1 = 0 h h1 a2 e2 = 0 b2 c2 = 0 f2 g2 i2 j = 1 d2 h2 k

Implies f2 = 0 Given that c1 = 0 and g1 = 0 a1 a e1 = 0 b b1 c1 = 0 c j = 1 d2 f2 = 0 h2 k

Try d1 = 0 Try d1 = 0, second of two possibilities a1 a e1 = 0 b b1 c1 g1 = 0 i1 = 0 d d1 = 0 f1 = 0 h h1 a2 e2 = 0 b2 f2 c2 g2 i2 j = 1 d2 h2 k

Implies d2 = 0 Given that d1 = 0 and g1 = 0 a1 a e1 = 0 b b1 c1 c f1 = 0 h h1 a2 e2 = 0 b2 f2 c2 g2 i2 j = 1 d2 = 0 h2 k

Implies f2 = 0 Given that d1 = 0 and g1 = 0 a1 a e1 = 0 b b1 c1 c j = 1 d2 = 0 f2 = 0 h2 k

Since f2 = 0 In Either Case, Learn f2 = 0 b b1 c1 c g1 = 0 i1 = 0 d d1 f1 h h1 a2 e2 = 0 b2 c2 g2 i2 j = 1 d2 f2 = 0 h2 k

Implies g2 = 0 a1 a e1 b b1 c1 c g1 = 0 i1 = 0 d d1 f1 h h1 a2 e2 = 0 j = 1 d2 f2 = 0 h2 k

Implies i2 = 0 and k = 1 a1 a e1 b b1 c1 c g1 = 0 i1 = 0 d d1 f1 h h1 j = 1 d2 f2 = 0 h2 k = 1

Justify h1 = 0 Second of two possibilities to make i1 = 0 a1 a b b1 e1 g1 i1 = 0 d d1 h h1 = 0 a2 b2 e2 f2 c2 g2 i2 j = 1 d2 h2 k

Implies h2 = 0 Given that h1 = 0 a1 a b b1 e1 c1 f1 c g1 i1 = 0 d d1 h j = 1 d2 h2 = 0 k

Implies i2 = 0 and k = 1 Given 2nd of 2 possible assignments h1 = 0 a1 c1 f1 c g1 i1 = 0 d d1 h h1 = 0 a2 b2 e2 f2 c2 g2 i2 = 0 j = 1 d2 h2 = 0 k = 1

Both Cases Cause k = 1 (Given j = 1), i2 = 0 Therefore, learn both independently a1 a b b1 e1 c1 f1 c g1 i1 = 0 d d1 h h1 a2 b2 e2 f2 c2 g2 i2 = 0 j = 1 d2 h2 k = 1

Other ATPG Algorithms Legal assignment ATPG (Rajski and Cox) Maintains power-set of possible assignments on each node {0, 1, D, D, X} BDD-based algorithms Catapult (Gaede, Mercer, Butler, Ross) Tsunami (Stanion and Bhattacharya) – maintains BDD fragment along fault propagation path and incrementally extends it Unable to do highly reconverging circuits (parallel multipliers) because BDD essentially becomes infinite

Fault Coverage and Efficiency # of detected faults Total # faults Fault coverage = Fault efficiency # of detected faults Total # faults -- # undetectable faults =

Test Generation Systems Circuit Description Fault List Compacter SOCRATES With fault simulator Aborted Faults Test Patterns Backtrack Distribution Undetected Faults Redundant Faults

Test Compaction Fault simulate test patterns in reverse order of generation ATPG patterns go first Randomly-generated patterns go last (because they may have less coverage) When coverage reaches 100%, drop remaining patterns (which are the useless random ones) Significantly shortens test sequence – economic cost reduction

Static and Dynamic Compaction of Sequences Static compaction ATPG should leave unassigned inputs as X Two patterns compatible – if no conflicting values for any PI Combine two tests ta and tb into one test tab = ta tb using D-intersection Detects union of faults detected by ta & tb Dynamic compaction Process every partially-done ATPG vector immediately Assign 0 or 1 to PIs to test additional faults

Compaction Example t1 = 0 1 X t2 = 0 X 1 t3 = 0 X 0 t4 = X 0 1 Combine t1 and t3, then t2 and t4 Obtain: t13 = 0 1 0 t24 = 0 0 1 Test Length shortened from 4 to 2

Summary Test Bridging, Stuck-at, Delay, & Transistor Faults Must handle non-Boolean tri-state devices, buses, & bidirectional devices (pass transistors) Hierarchical ATPG -- 9 Times speedup (Min) Handles adders, comparators, MUXes Compute propagation D-cubes Propagate and justify fault effects with these Use internal logic description for internal faults Results of 40 years research – mature – methods: Path sensitization Simulation-based Boolean satisfiability and neural networks