Download presentation
Presentation is loading. Please wait.
1
Layout-aware Scan-based Delay Fault Testing Puneet Gupta 1 Andrew B. Kahng 1 Ion Mandoiu 2 Puneet Sharma 1 1 ECE Department, University of California – San Diego 2 CSE Department, University of Connecticut, Storrs http://vlsicad.ucsd.edu
2
Outline Introduction Introduction Problem formulations Problem formulations Multi-fragment greedy algorithm Multi-fragment greedy algorithm Experiments and results Experiments and results Future directions Future directions
3
Delay Fault Testing Delay fault: failure of a path to meet timing Delay fault: failure of a path to meet timing Initialization Vector 1001 11 High clock speeds + increasing variability High clock speeds + increasing variability Delay fault testing important Pair of vectors required Pair of vectors required Initialization vector Initialization vector Launch vector Launch vector Launch Vector 1 0
4
Scan-based Delay Fault Testing Utilizes standard shift- scan architecture Utilizes standard shift- scan architecture Launch vector produced in two ways: Launch vector produced in two ways: From circuit logic From circuit logic Functional justification Functional justification From scan chain From scan chain Scan justification
5
Functional Justification Launch vector generated by the circuit logic Launch vector generated by the circuit logic 1.Scan-in initialization vector No effect of scan order No effect of scan order 2. Give system CLK to generate launch vector 3.Give system CLK, capture result 4.Scan-out result 1 0 0 11 1 1 0 Not all paths testable Not all paths testable Difficult to produce vector pairs Difficult to produce vector pairs
6
Scan Justification Launch vector generated by shifting initialization vector Launch vector generated by shifting initialization vector 1.Scan-in initialization vector 2.Give scan CLK to generate launch vector 3.Give system CLK, capture result 4.Scan-out result Given scan order, not all vector pairs usable Given scan order, not all vector pairs usable Coverage: %age of vector pairs usable Initialization: 1 0 0 1 0 Launch: 1 0 1 1 0100 10 11001 1 1 0 1 0 0 0 1
7
Increasing Scan Coverage Scan order Scan order Initialization: 1 0 0 1 0 Launch: 1 0 1 1 0 100 10 11001 Don’t cares Don’t cares Initialization: 1 0 x 1 1 Launch: 1 1 x 1 1 101 11 11011 Dummy flops Dummy flops Initialization: 0 0 0 0 1 Launch: 0 1 0 0 1 100 10 10110 0 0 0 01 01001 1 0
8
Scan Order Objectives Coverage driven, layout oblivious Coverage driven, layout oblivious Gupta et al, Cheng et al, … Gupta et al, Cheng et al, … WL: 10.09 mm, Cov: 100.00% WL: 1.22 mm, Cov: 56.80% Layout driven, coverage oblivious Layout driven, coverage oblivious QPlace, Boese et al., Kobayashi et al., … QPlace, Boese et al., Kobayashi et al., … WL: 1.46 mm, Cov: 100.00% Layout + Coverage driven Our approach
9
Outline Introduction Introduction Problem formulations Problem formulations Multi-fragment greedy algorithm Multi-fragment greedy algorithm Experiments and results Experiments and results Future directions Future directions
10
Scan Chain Ordering Modeled as TSP with flops as cities Modeled as TSP with flops as cities TSP objective TSP objective Minimize WL: MinWL (Boese et al.) Minimize WL: MinWL (Boese et al.) Minimize #dummy for 100% coverage: CompleteDFC (Gupta et al.) Minimize #dummy for 100% coverage: CompleteDFC (Gupta et al.) This paper: Minimize WL + Maximize coverage: MaxDFC This paper: Minimize WL + Maximize coverage: MaxDFC u(i)=0 & v(j)=1 where, u: Initialization vector or u(i)=1 & v(j)=0v: Launch vector Dummy insertion in an edge makes all vector pairs compatible with it Dummy insertion in an edge makes all vector pairs compatible with it Vector pair incompatible with an edge Vector pair incompatible with an edge A vector pair is incompatible with an edge e ij if placing flop j after flop i in the scan chain causes it to become unusable A vector pair is incompatible with an edge e ij if placing flop j after flop i in the scan chain causes it to become unusable Formally, vector pair (u, v) is incompatible with e ij if Formally, vector pair (u, v) is incompatible with e ij if
11
MinWL (e.g., Boese et al.) Given Given Set of n placed flip-flops F, Scan-in SI, Scan-out SO Find Scan chain ordering of F {SI, SO}, starting with SI ending with SO Such that Total scan chain length minimized Total scan chain length minimized
12
CompleteDFC (Gupta et al.) Given Given Set of n flip-flops F, Scan-in SI, Scan-out SO Set of n flip-flops F, Scan-in SI, Scan-out SO Set of m delay fault vector pairs Set of m delay fault vector pairs Find Find Scan chain ordering of F {SI, SO}, starting with SI ending with SO Scan chain ordering of F {SI, SO}, starting with SI ending with SO Such that Such that # dummy flops required for 100% coverage minimized # dummy flops required for 100% coverage minimized
13
MaxDFC Given Given Set of n placed flip-flops F, Scan-in SI, Scan-out SO Set of n placed flip-flops F, Scan-in SI, Scan-out SO Set of m delay fault vector pairs, each with a weight w t, t Set of m delay fault vector pairs, each with a weight w t, t Upped bound on #dummies, D Upped bound on #dummies, D Find Find Scan chain ordering of F {SI, SO}, starting with SI ending with SO Scan chain ordering of F {SI, SO}, starting with SI ending with SO Set of alive vector pairs, C Set of alive vector pairs, C Such that Such that Scan length minimized Scan length minimized Sum of weights of alive vector pairs maximized Sum of weights of alive vector pairs maximized Vectors pairs incompatible with at most D edges Vectors pairs incompatible with at most D edges
14
Outline Introduction Introduction Problem formulations Problem formulations Multi-fragment greedy algorithm Multi-fragment greedy algorithm Experiments and results Experiments and results Future directions Future directions
15
Three Phase MFG - Overview Phase I Phase I Produce D+1 short, high coverage scan chain fragments Produce D+1 short, high coverage scan chain fragments Based on multi-fragment algorithm for TSP Based on multi-fragment algorithm for TSP Data structures Data structures Edge-vector incompatibility matrix Edge-vector incompatibility matrix Edge buckets Edge buckets Phase II Phase II Stitch D+1 fragments using D dummies minimizing WL Stitch D+1 fragments using D dummies minimizing WL Phase III Phase III Further reduce scan chain WL Further reduce scan chain WL
16
Three Phase MFG – Phase I initialize edge-vector incompatibility matrix distribute edges in buckets based on #incompatible vector pairs while #fragments > #dummies+1 pop shortest edge e ij from first non-empty bucket if( eij is admissible in tour ) add e ij to tour remove vectors incompatible with e ij from edge-vector matrix promote edges with which removed vectors were incompatible 1212121200001 1313131300101 2323232310000 2121212101000 3131313100001 3232323211000 1 2 3 50 200 300 13131313 23232323 + 5 vectors, 0 dummies edge-vector matrix 012 buckets 12121212 21212121 31313131 32323232
17
Three Phase MFG – Phase I Scalability Scalability Use small #edges, w(e) < T Use small #edges, w(e) < T If #frags < #dummies + 1, rerun with threshold=M T If #frags < #dummies + 1, rerun with threshold=M T Quite insensitive to T, M Quite insensitive to T, M
18
Three Phase MFG – Phase II Target: Stitch D+1 fragments, minimizing WL Target: Stitch D+1 fragments, minimizing WL 56 89 123 7 10 11 4 Approach Approach ATSP with fragments as cities ATSP with fragments as cities 1 2 3500300 600 600 100 600 D1 D2 w e WL required to connect fragments w e WL required to connect fragments Small #cities Small #cities Quick even with high quality TSP solver
19
Three Phase MFG – Phase III Target: Further reduce scan WL Target: Further reduce scan WL Approach Approach Create TSP instance with flops as cities Create TSP instance with flops as cities Throw in edges compatible with all alive faults Throw in edges compatible with all alive faults w e WL of edge e w e WL of edge e 56 89 1 7 10 11 4 23 D1 D2 56 89 1 7 10 11 4 23 D1 D2 56 89 1 7 10 11 4 23 D1 D2
20
Outline Introduction Introduction Problem formulations Problem formulations Multi-fragment greedy algorithm Multi-fragment greedy algorithm Experiments and results Experiments and results Future directions Future directions
21
Experimental Flows Comparison of three flows Comparison of three flows MinWL (Boese et al.) MinWL (Boese et al.) Reference min WL tour CompleteDFC (Gupta et al.) CompleteDFC (Gupta et al.) Reference full coverage tour MaxDFC MaxDFC
22
Testcases Testcase # cells # flops # paths Functional coverage s38417629115645520.54% s132071648627498.16% s923452914536122.71% AES10465554305058.03% DES3391212814047.69% Synthesis Design Compiler STAPrimeTimeATPGTetraMAX PlacementQPlace Source all vectors scanvectorsfloplocations paths func vectors
23
Results: s38417 Wirelength Wirelength Coverage Coverage MinWLMaxDFC
24
Results: aes Wirelength Wirelength Coverage Coverage MinWLMaxDFC
25
MFG Scalability MFG Runtime Time(s)
26
Dummy-Coverage Tradeoff Proposed ILP formulation Proposed ILP formulation s38417
27
Outline Introduction Introduction Problem formulations Problem formulations Multi-fragment greedy algorithm Multi-fragment greedy algorithm Experiments and results Experiments and results Future directions Future directions
28
Conclusions We proposed an algorithm to simultaneously reduce WL and increase delay fault coverage We proposed an algorithm to simultaneously reduce WL and increase delay fault coverage Significant increase in coverage with 10-30% WL increase Significant increase in coverage with 10-30% WL increase Explored tradeoff b/w coverage and dummy insertion Explored tradeoff b/w coverage and dummy insertion
29
Future Directions Extension to multiple scan chains Extension to multiple scan chains Congestion aware scan ordering Congestion aware scan ordering Modifications to use compacted and/or redundant vectors Modifications to use compacted and/or redundant vectors
30
Thank You
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.