9/30/2014 Overview Major ATPG algorithms • Definitions ECE 553: TESTING AND • D-Algorithm (Roth) -- 1966 TESTABLE DESIGN OF – D-cubes – Bridging faults DIGITAL SYSTES DIGITAL SYSTES – Logic gate function change faults • PODEM (Goel) -- 1981 – X-Path-Check – Backtracing • Summary Combinational ATPG 9/30/2014 2 Forward Implication Backward Implication • Results in logic gate inputs that are significantly labeled so that output • Unique determination of all gate inputs when the gate is uniquely determined output and some of the inputs are given • AND gate forward implication table: 9/30/2014 3 9/30/2014 4 Objectives and Backtracing in ATPG Objectives and Backtracing in ATPG Implication Stack, Decision Tree, and Backtrack Implication Stack, Decision Tree, and Backtrack • Objective – desired signal value goal for ATPG – Guides it away from infeasible/hard solutions – Uses heuristics • Backtrace – Determines which primary input and Unexplored Unexplored value to set to achieve objective l hi bj i E 0 1 Present Assignment Searched and Infeasible – Use heuristics such as nearest PI B B 0 0 • Forward trace – Determines gate through which the 1 1 fault effect should be sensitized F F F – Use heuristics such as output that is closest to the present 1 0 1 0 0 1 fault effect 9/30/2014 5 9/30/2014 6 1
9/30/2014 D-Algorithm – Roth (1966) D-Algorithm – Roth (1966) Branch-and-Bound Search • Efficiently searches binary search tree • Branching – At each tree level, selects which input • Fundamental concepts invented: variable to set to what value – First complete ATPG algorithm • Bounding – Avoids exploring large tree portions by – D-Cube artificially restricting search decision choices – Complete exploration is impractical – Complete exploration is impractical – D-Calculus D Calculus – Uses heuristics – Implications – forward and backward • Backtracking – Search fails, therefore undo some of the – Implication stack work completed and start searching from a location where search options still exist – Backtrack – Test Search Space 9/30/2014 7 9/30/2014 8 Singular Cover Example Singular Cover Example Primitive D-Cube of Failure • Minimal set of logic signal assignments to represent a function • Models circuit faults: – show prime implicants and prime implicates of Karnaugh map (with explicitly showing the outputs too) – Stuck-at-0 – Stuck-at-1 – Other faults, such as Bridging fault (short circuit) – Arbitrary change in logic function Arbitrary change in logic function • AND Output sa0: “1 1 D” • AND Output sa1: “0 X D” Gate Inputs Output Gate Inputs Output “X 0 D” AND A B d NOR d e F • Wire sa0: “D” 1 0 X 0 1 1 X 0 • Propagation D-cube – models conditions under 2 X 0 0 2 X 1 0 which fault effect propagates through gate 1 0 3 1 1 3 0 1 9/30/2014 9 9/30/2014 10 Gate Function Change D-Cube of Gate Function Change D-Cube of Construction of Primitive Failure Failure 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 Cube-set a b c Cube-set a b c 3. Change α 1 outputs to 0 and D-intersect each cube with every β 0. If intersection works, α 0 0 X 0 X 0 0 PDFs for 0 1 D change output of cube to D α 1 1 1 1 AND changing 4. Change α 0 outputs to 1 and D-intersect each β 0 0 0 0 to OR 1 0 D cube with every β 1. If intersection works, β 1 1 X 1 change output of cube to D X 1 1 9/30/2014 11 9/30/2014 12 2
9/30/2014 Propagation D-Cube D-Cube Operation of D-Intersection D-Cube Operation of D-Intersection • Collapsed truth table entry to characterize logic ψ – undefined (same as φ ) • Use Roth’s 5-valued algebra µ or λ – requires inversion of D and D • AND gate: use the rules given earlier using α and β ∩ ∩ ∩ • D-intersection : 0 0 = 0 X = X 0 = 0 but in this case work with good circuit only ∩ ∩ ∩ 1 1 1 X X 1 1 1 1 = 1 X = X 1 = 1 A B d ∩ X X = X D 1 D Write all primitive ∩ • D-containment – 1 D D Cubes of AND gate 0 1 X D D D D D and then create 0 0 φ 0 ψ ψ Cube a contains D D D propagation cubes 1 φ 1 1 ψ ψ Cube b if b is a 1 D D X 0 1 X D D subset of a D 1 D D ψ ψ D µ λ D ψ ψ D λ µ 9/30/2014 13 9/30/2014 14 Implication Procedure D-Algorithm – Top Level 1. Model fault with appropriate primitive D- 1. Number all circuit lines in increasing level cube of failure (PDF) order from PIs to POs; 2. Select propagation D-cubes to propagate fault 2. Select a primitive D-cube of the fault to be the effect to a circuit output ( D-drive procedure) effect to a circuit output ( D drive procedure) test cube ; test cube ; 3. Select singular cover cubes to justify internal – Put logic outputs with inputs labeled as D (D) onto circuit signals ( Consistency procedure) the D-frontier ; 3. D-drive (); • Put signal assignments in test cube 4. Consistency (); • Regrettably, cubes are selected very 5. return (); arbitrarily by D-ALG 9/30/2014 15 9/30/2014 16 D-Algorithm -- Consistency D-Algorithm – D-drive g = coordinates of test cube with 1’s & 0’s; while (untried fault effects on D-frontier) if ( g is only PIs) fault testable & stop; select next untried D-frontier gate for propagation; for (each unjustified signal in g ) while (untried fault effect fanouts exist) Select highest # unjustified signal z in g, not a PI; if (inputs to gate z are both D and D) break; select next untried fault effect fanout; generate next untried propagation D-cube; while (untried singular covers of gate z ) select next untried singular cover; D-intersect selected cube with test cube; if (no more singular covers) if (intersection fails or is undefined) continue; If (no more stack choices) fault untestable & stop; if (all propagation D-cubes tried & failed) break; else if (untried alternatives in Consistency ) if (intersection succeeded) pop implication stack -- try alternate assignment; add propagation D-cube to test cube -- recreate D-frontier ; else Find all forward & backward implications of assignment; Backtrack (); D-drive (); save D-frontier , algorithm state, test cube, fanouts, fault; If (singular cover D-intersects with z ) delete z from g , add inputs to break; singular cover to g, find all forward and backward implications of else if (intersection fails & D and D in test cube) Backtrack (); new assignment, and break; 9/30/2014 else if (intersection fails) break; 17 9/30/2014 18 If (intersection fails) mark singular cover as failed; if (all fault effects unpropagatable) Backtrack (); 3
9/30/2014 Circuit Example 7.1 and Truth Circuit Example 7.1 and Truth Backtrack Table Table Inputs Output if (PO exists with fault effect) Consistency (); a b c F else pop prior implication stack setting to try 0 0 0 0 alternate assignment; 0 0 1 0 if (no untried choices in implication stack) 0 1 0 0 0 1 fault untestable & stop; 1 1 1 0 0 0 else return; 1 0 0 1 1 1 0 0 1 1 1 0 9/30/2014 19 9/30/2014 20 Singular Cover & Propagation D-Cubes Singular Cover & Propagation D-Cubes Steps for Fault d sa0 Steps for Fault d sa0 A B C d e F • Singular cover – 1 1 1 Used for justifying lines 0 0 0 0 1 1 0 0 1 Step A B C d e F Cube type 0 1 1 0 1 1 1 D PDF of AND gate 1 1 0 0 0 0 1 2 D 0 D Prop. D-cube for NOR D 1 D • Propagation D-cubes 1 D D 3 1 1 0 Sing. Cover of NAND – Conditions under D D D which difference 1 D D 1 D D between good/failing D D D machines propagates D 0 D 0 D D D D D 9/30/2014 21 9/30/2014 22 Example 7.3 – Fault u sa1 Example 7.3 – Step 2 u sa1 • Primitive D-cube of Failure • Propagation D-cube for v 1 1 0 0 0 0 0 D sa1 sa1 D D 9/30/2014 23 9/30/2014 24 4
9/30/2014 Example 7.3 – Step 2 u sa1 Inconsistent • Forward and backward implications 1 1 • d = 0 and m = 1 cannot justify r = 1 (equivalence) – Backtrack 0 1 – Remove B = 0 assignment 0 0 0 0 0 sa1 D D 9/30/2014 25 9/30/2014 26 Example 7.3 – Backtrack Example 7.3 – Step 3 u sa1 • Need alternate propagation D-cube for v • Propagation D-cube for v 1 1 1 1 0 0 0 0 D D sa1 sa1 D 9/30/2014 27 9/30/2014 28 Example 7.3 – Step 4 u sa1 Example 7.3 – Step 4 u sa1 • Propagation D-cube for Z • Propagation D-cube for Z and implications 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 sa1 sa1 D D D D D D 1 1 9/30/2014 29 9/30/2014 30 5
Recommend
More recommend