1 Lecture 11 Major Combinational Automatic Test-Pattern Generation Algorithms n Definitions n D-Algorithm (Roth) -- 1966 D-cubes Bridging faults Logic.

Slides:



Advertisements
Similar presentations
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 121 Lecture 12 Advanced Combinational ATPG Algorithms  FAN – Multiple Backtrace (1983)  TOPS – Dominators.
Advertisements

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
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 13/12alt1 Lecture 13 Sequential Circuit ATPG Time-Frame Expansion (Lecture 12alt in the Alternative.
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.
TOPIC : Backtracking Methodology UNIT 3 : VLSI Testing Module 3.2: Arriving at Input Test Vector.
Copyright 2001, Agrawal & BushnellDay-1 AM-3 Lecture 31 Testing Analog & Digital Products Lecture 3: Fault Modeling n Why model faults? n Some real defects.
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 71 Lecture 7 Fault Simulation n Problem and motivation n Fault simulation algorithms n Serial n Parallel.
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 91 Lecture 9 Combinational Automatic Test-Pattern Generation (ATPG) Basics n Algorithms and representations.
Sequential Optimization without State Space Exploration A. Mehrota, S. Qadeer, V. Singhal, R. Brayton, A. Sangiovanni-Vincentelli, A. Aziz Presented by:
Copyright 2001, Agrawal & BushnellDay-1 PM Lecture 4b1 Design for Testability Theory and Practice Lecture 4b: Fault Simulation n Problem and motivation.
Algorithms and representations Structural vs. functional test
Chapter 7: Testing Of Digital Circuits 1 Testing of Digital Circuits M. Balakrishnan Dept. of Comp. Sci. & Engg. I.I.T. Delhi.
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 9alt1 Lecture 9alt Combinational ATPG (A Shortened version of Original Lectures 9-12) n ATPG problem.
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
Lecture 5 Fault Simulation
Lecture 5 Fault Modeling
1 Lecture 10 Redundancy Removal Using ATPG n Redundancy identification n Redundancy removal Original slides copyright by Mike Bushnell and Vishwani Agrawal.
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 51 Lecture 5 Fault Modeling n Why model faults? n Some real defects in VLSI and PCB n Common fault.
Spring 08, Mar 27 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2008 Fault Simulation Vishwani D. Agrawal James J.
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.
Spring 08, Apr 8 ELEC 7770: Advanced VLSI Design (Agrawal) 1 ELEC 7770 Advanced VLSI Design Spring 2008 Combinational Circuit ATPG Vishwani D. Agrawal.
Testing.
ECE 553: TESTING AND TESTABLE DESIGN OF DIGITAL SYSTES Fault Modeling.
Unit II Test Generation
VLSI Testing Lecture 7: Combinational ATPG
Digital Logic Design Lecture # 7 University of Tehran.
Chapter 7. Testing of a digital circuit
CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.
ECE 260B – CSE 241A Testing 1http://vlsicad.ucsd.edu ECE260B – CSE241A Winter 2005 Testing Website:
Fault Models, Fault Simulation and Test Generation Vishwani D. Agrawal Department of ECE, Auburn University Auburn, AL 36849, USA
Universität Dortmund Chapter 6A: Validation Simulation and test pattern generation (TPG) EECE **** Embedded System Design.
12/3/2015 Based on text by S. Mourad "Priciples of Electronic Systems" and M. L. Bushnell and V. D. Agrawal, Essentials of Electronic Testing for Digital,
EE434 ASIC & Digital Systems Partha Pande School of EECS Washington State University
Copyright 2001, Agrawal & BushnellLecture 6: Sequential ATPG1 VLSI Testing Lecture 6: Sequential ATPG n Problem of sequential circuit ATPG n Time-frame.
SOLUTION TO module 3.3. Feb.. 16, 2001VLSI Test: Bushnell-Agrawal/Lecture 112 Example 7.2 Fault A sa0 Step 1 – D-Drive – Set A = 1 D 1 D.
ECE 553: TESTING AND TESTABLE DESIGN OF DIGITAL SYSTES Combinational ATPG.
Jan. 26, 2001VLSI Test: Bushnell-Agrawal/Lecture 51 Lecture 5 Fault Modeling n Why model faults? n Some real defects in VLSI and PCB n Common fault models.
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) 李晓维 中科院计算技术研究所
Copyright 2001, Agrawal & BushnellLecture 6:Fault Simulation1 VLSI Testing Lecture 6: Fault Simulation Dr. Vishwani D. Agrawal James J. Danaher Professor.
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 51 Lecture 5 Fault Modeling n Why model faults? n Some real defects in VLSI and PCB n Common fault.
Fault Models, Fault Simulation and Test Generation Vishwani D. Agrawal Department of ECE, Auburn University Auburn, AL 36849, USA
Lecture 9 Advanced Combinational ATPG Algorithms
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 7: Combinational ATPG
CPE/EE 428, CPE 528 Testing Combinational Logic
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)
Lecture 5 Fault Modeling
Automatic Test Generation for Combinational Circuits
CPE/EE 428, CPE 528 Testing Combinational Logic (2)
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
CPE/EE 428, CPE 528 Testing Combinational Logic (3)
VLSI Testing Lecture 7: Combinational ATPG
Automatic Test Pattern Generation
VLSI Testing Lecture 3: Fault Modeling
Presentation transcript:

1 Lecture 11 Major Combinational Automatic Test-Pattern Generation Algorithms n Definitions n D-Algorithm (Roth) D-cubes Bridging faults Logic gate function change faults n PODEM (Goel) X-Path-Check Backtracing n Summary Original slides copyright by Mike Bushnell and Vishwani Agrawal

2 Forward Implication n Results in logic gate inputs that are significantly labeled so that output is uniquely determined n AND gate forward implication table:

3 Backward Implication n Unique determination of all gate inputs when the gate output and some of the inputs are given

4 Implication Stack n Push-down stack. Records: Each signal set in circuit by ATPG Whether alternate signal value already tried Portion of binary search tree already searched

5 Implication Stack after Backtrack E F BB F F 1 Unexplored Present Assignment Searched and Infeasible

6 Objectives and Backtracing of ATPG Algorithm n Objective – desired signal value goal for ATPG Guides it away from infeasible/hard solutions n Backtrace – Determines which primary input and value to set to achieve objective Use testability measures

7 Branch-and-Bound Search n Efficiently searches binary search tree n Branching – At each tree level, selects which input variable to set to what value n Bounding – Avoids exploring large tree portions by artificially restricting search decision choices Complete exploration is impractical Uses heuristics

8 D-Algorithm -- Roth IBM (1966) n Fundamental concepts invented: First complete ATPG algorithm D-Cube D-Calculus Implications – forward and backward Implication stack Backtrack Test Search Space

9 Singular Cover Example n Minimal set of logic signal assignments to show essential prime implicants of Karnaugh map Gate AND Inputs A 0 X 1 BX01BX01 Output d 0 1 Gate NOR Inputs d 1 X 0 eX10eX10 Output F 0 1

10 D-Cube n Collapsed truth table entry to characterize logic n Use Roth’s 5-valued algebra n Can change all D’s to D’s and D’s to D’s (do both) n AND gate: Rows 1 & 3 Reverse inputs And two cubes Interchange D and D AD1DD1DAD1DD1D B1DDDD1B1DDDD1 dDDDDDDdDDDDDD

11 D-Cube Operation of D-Intersection  – undefined (same as  )  or – requires inversion of D and D n D-intersection: 0 0 = 0 X = X 0 = = 1 X = X 1 = 1 X X = X n D-containment – Cube a contains Cube b if b is a subset of a 01XDD01XDD 000000 111111 X01XDDX01XDD D  D  D  D         

12 Primitive D-Cube of Failure n Models circuit faults: Stuck-at-0 Stuck-at-1 Bridging fault (short circuit) Arbitrary change in logic function n AND Output sa0: “1 1 D” n AND Output sa1: “0 X D ” “X 0 D ” n Wire sa0: “D” n Propagation D-cube – models conditions under which fault effect propagates through gate

13 Implication Procedure 1. Model fault with appropriate primitive D-cube of failure (PDF) 2. Select propagation D-cubes to propagate fault effect to a circuit output (D-drive procedure) 3. Select singular cover cubes to justify internal circuit signals (Consistency procedure) n Put signal assignments in test cube n Regrettably, cubes are selected very arbitrarily by D-ALG

14 Bridging Fault Circuit

15 Construction of Primitive D-Cubes of Failure 1. Make cube set  1 when good machine output is 1 and set  0 when good machine output is 0 2. Make cube set  1 when failing machine output is 1 and  0 when it is 0 3. Change  1 outputs to 0 and D-intersect each cube with every  0. If intersection works, change output of cube to D 4. Change  0 outputs to 1 and D-intersect each cube with every  1. If intersection works, change output of cube to D

16 Bridging Fault D-Cubes of Failure Cube-set  0  1  0  1 a0X1X0X1a0X1X0X1 bX0X101XbX0X101X a* 0 X 1 X 0 1 b* X 0 X Cube-set PDFs for Bridging fault b01b01 a* 1 D b* D 1 a10a10

17 Gate Function Change D- Cube of Failure Cube-set  0  1  0  1 a0X101Xa0X101X bX010X1bX010X1 c001011c Cube-set PDFs for AND changing to OR a01a01 b10b10 cDDcDD

18 D-Algorithm – Top Level 1.Number all circuit lines in increasing level order from PIs to POs; 2.Select a primitive D-cube of the fault to be the test cube; Put logic outputs with inputs labeled as D (D) onto the D-frontier; 3. D-drive (); 4. Consistency (); 5.return ();

19 D-Algorithm – D-drive while (untried fault effects on D-frontier) select next untried D-frontier gate for propagation; while (untried fault effect fanouts exist) select next untried fault effect fanout; generate next untried propagation D-cube; D-intersect selected cube with test cube; if (intersection fails or is undefined) continue; if (all propagation D-cubes tried & failed) break; if (intersection succeeded) add propagation D-cube to test cube -- recreate D-frontier; Find all forward & backward implications of assignment; save D-frontier, algorithm state, test cube, fanouts, fault; break; else if (intersection fails & D and D in test cube) Backtrack (); else if (intersection fails) break; if (all fault effects unpropagatable) Backtrack ();

20 D-Algorithm -- Consistency g = coordinates of test cube with 1’s & 0’s; if (g is only PIs) fault testable & stop; for (each unjustified signal in g) Select highest # unjustified signal z in g, not a PI; if (inputs to gate z are both D and D) break; while (untried singular covers of gate z) select next untried singular cover; if (no more singular covers) If (no more stack choices) fault untestable & stop; else if (untried alternatives in Consistency) pop implication stack -- try alternate assignment; else Backtrack (); D-drive (); If (singular cover D-intersects with z) delete z from g, add inputs to singular cover to g, find all forward and backward implications of new assignment, and break; If (intersection fails) mark singular cover as failed;

21 Backtrack if (PO exists with fault effect) Consistency (); else pop prior implication stack setting to try alternate assignment; if (no untried choices in implication stack) fault untestable & stop; else return;

22 Circuit Example 7.1 and Truth Table Inputs a 0 1 b b c c Output F 0 1 0

23 Singular Cover & D-Cubes n Singular cover – Used for justifying lines n Propagation D-cubes – Conditions under which difference between good/failing machines propagates A10D1DA10D1D B10101DDD1DB10101DDD1D C101DDC101DD d10010DDDD0Dd10010DDDD0D e01110DDD0DDe01110DDD0DD F001DDDF001DDD

24 Steps for Fault d sa0 Step A1A1 B11B11 C1C1 dDDdDD e00e00 FDFD Cube type PDF of AND gate Prop. D-cube for NOR Sing. Cover of NAND

25 Example 7.2 Fault A sa0 n Step 1 – D-Drive – Set A = 1 D 1 D

26 Step 2 -- Example 7.2 D 1 0 D n Step 2 – D-Drive – Set f = 0 D

27 Step 3 -- Example 7.2 D 1 0 D n Step 3 – D-Drive – Set k = 1 D 1 D

28 Step 4 -- Example 7.2 D 1 0 D n Step 4 – Consistency – Set g = 1 D 1 D 1

29 Step 5 -- Example 7.2 D 1 0 D n Step 5 – Consistency – f = 0 Already set D 1 D 1

30 Step 6 -- Example 7.2 D 1 0 D n Step 6 – Consistency – Set c = 0, Set e = 0 D 1 D 1 0 0

31 D-Chain Dies -- Example 7.2 D 1 0 X D n Step 7 – Consistency – Set B = 0 n D-Chain dies D 1 D n Test cube: A, B, C, D, e, f, g, h, k, L

32 Example 7.3 – Fault s sa1 n Primitive D-cube of Failure 1 D sa1

33 Example 7.3 – Step 2 s sa1 n Propagation D-cube for v 1 D 0 sa1 D 1 D

34 Example 7.3 – Step 2 s sa1 n Forward & Backward Implications 1 D sa1 0 D D

35 Example 7.3 – Step 3 s sa1 n Propagation D-cube for Z – test found! 1 D sa1 0 D D D

36 Example 7.3 – Fault u sa1 n Primitive D-cube of Failure 1 D 0 sa1

37 Example 7.3 – Step 2 u sa1 n Propagation D-cube for v 1 D 0 sa1 D 0

38 Example 7.3 – Step 2 u sa1 n Forward and backward implications 1 D 0 sa1 D

39 Inconsistent n d = 0 and m = 1 cannot justify r = 1 (equivalence) Backtrack Remove B = 0 assignment

40 Example 7.3 – Backtrack n Need alternate propagation D-cube for v 1 sa1 D 0

41 Example 7.3 – Step 3 u sa1 n Propagation D-cube for v 1 sa1 D 0 1 D

42 Example 7.3 – Step 4 u sa1 n Propagation D-cube for Z D 1 sa1 D 0 1 D 1 1

43 Example 7.3 – Step 4 u sa1 n Propagation D-cube for Z and implications D 1 sa1 D 0 1 D

44 PODEM -- Goel IBM (1981) n New concepts introduced: Expand binary decision tree only around primary inputs Use X-PATH-CHECK to test whether D-frontier still there Objectives -- bring ATPG closer to propagating D (D) to PO Backtracing

45 Motivation n IBM introduced semiconductor DRAM memory into its mainframes – late 1970’s n Memory had error correction and translation circuits – improved reliability D-ALG unable to test these circuits n Search too undirected n Large XOR-gate trees n Must set all external inputs to define output Needed a better ATPG tool

46 PODEM High-Level Flow 1. Assign binary value to unassigned PI 2. Determine implications of all PIs 3. Test Generated? If so, done. 4. Test possible with more assigned PIs? If maybe, go to Step 1 5. Is there untried combination of values on assigned PIs? If not, exit: untestable fault 6. Set untried combination of values on assigned PIs using objectives and backtrace. Then, go to Step 2

47 n Select path s – Y for fault propagation sa1 Example 7.3 Again

48 n Initial objective: Set r to 1 to sensitize fault 1 sa1 Example Step 2 s sa1

49 Example Step 3 s sa1 n Backtrace from r 1 sa1

50 Example Step 4 s sa1 n Set A = 0 in implication stack 1 0 sa1

51 Example Step 5 s sa1 n Forward implications: d = 0, X = 1 1 sa

52 Example Step 6 s sa1 n Initial objective: set r to 1 1 sa

53 Example Step 7 s sa1 n Backtrace from r again 1 sa

54 Example Step 8 s sa1 n Set B to 1. Implications in stack: A = 0, B = 1 1 sa

55 D Example Step 9 s sa1 n Forward implications: k = 1, m = 0, r = 1, q = 1, Y = 1, s = D, u = D, v = D, Z = 1 1 sa D D

56 Backtrack -- Step 10 s sa1 n X-PATH-CHECK shows paths s – Y and s – u – v – Z blocked (D-frontier disappeared) 1 sa

57 Step s sa1 n Set B = 0 (alternate assignment) 1 sa1 0 0

58 Backtrack -- s sa1 1 sa n Forward implications: d = 0, X = 1, m = 1, r = 0, s = 1, q = 0, Y = 1, v = 0, Z = 1. Fault not sensitized

59 Step s sa1 n Set A = 1 (alternate assignment) 1 sa1 1

60 Step s sa1 n Backtrace from r again 1 sa1 1

61 Step s sa1 n Set B = 0. Implications in stack: A = 1, B = 0 1 sa1 1 0

62 Backtrack -- s sa1 n Forward implications: d = 0, X = 1, m = 1, r = 0. Conflict: fault not sensitized. Backtrack sa

63 Step s sa1 n Set B = 1 (alternate assignment) 1 sa1 1 1

64 Fault Tested -- Step 18 s sa1 n Forward implications: d = 1, m = 1, r = 1, q = 0, s = D, v = D, X = 0, Y = D 1 sa D 0 D D X D

65 Backtrace (s, v s ) Pseudo-Code v = v s ; while (s is a gate output) if (s is NAND or INVERTER or NOR) v = v; if (objective requires setting all inputs) select unassigned input a of s with hardest controllability to value v; else select unassigned input a of s with easiest controllability to value v; s = a; return (s, v) /* Gate and value to be assigned */;

66 Objective Selection Code if (gate g is unassigned) return (g, v); select a gate P from the D-frontier; select an unassigned input l of P; if (gate g has controlling value) c = controlling input value of g; else if (0 value easier to get at input of XOR/EQUIV gate) c = 1; else c = 0; return (l, c );

67 PODEM Algorithm while (no fault effect at POs) if (xpathcheck (D-frontier) (l, v l ) = Objective (fault, v fault ); (pi, v pi ) = Backtrace (l, v l ); Imply (pi, v pi ); if (PODEM (fault, v fault ) == SUCCESS) return (SUCCESS); (pi, v pi ) = Backtrack (); Imply (pi, v pi ); if (PODEM (fault, v fault ) == SUCCESS) return (SUCCESS); Imply (pi, “X”); return (FAILURE); else if (implication stack exhausted) return (FAILURE); else Backtrack (); return (SUCCESS);

68 Summary n D-ALG – First complete ATPG algorithm D-Cube D-Calculus Implications – forward and backward Implication stack Backup n PODEM Expand decision tree only around PIs Use X-PATH-CHECK to see if D-frontier exists Objectives -- bring ATPG closer to getting D (D) to PO Backtracing