Download presentation
Presentation is loading. Please wait.
Published byEdwin Butler Modified over 9 years ago
1
Survey of the Algorithms in the Column-Matching BIST Method Survey of the Algorithms in the Column-Matching BIST Method Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical University Karlovo nam. 13, 121 35 Prague 2 e-mail: fiserp@fel.cvut.cz, kubatova@fel.cvut.cz Mixed-Mode BIST for combinational circuits Main algorithms are described here Mixed-Mode Structure Two separate test phases: Pseudorandom – cover the easy-to-detect faults by pseudorandom patterns produced by LFSR (unmodified) Deterministic – generate deterministic patterns computed by ATPG. These are produced by a transformation of the LFSR vectors Mixed-Mode BIST Design Phases 1. Simulate first n LFSR patterns 2. Determine undetected faults 3. Compute a test for them (APTG) 4. Make a decoder producing test from LFSR patterns following those n
2
Column - Matching The Decoder = purely combinational circuit It is being designed using the Column-Matching Algorithm Input: The C-Matrix = the LFSR code words The T-Matrix = the deterministic test patterns Output: The Decoder logic transforming some of the C-Matrix rows to all T-Matrix rows – makes an assignment of rows Principles of the Method We try to implement as many Decoder outputs as simple wires - without any combinational logic If we reorder the T-matrix vectors so that some test columns are equal to the LFSR columns, the outputs of the decoder described by these columns will be implemented as wires (we call it matches) No output decoder is needed for matched columns Remaining outputs must be synthesized by some Boolean minimizer (ESPRESSO, BOOM) Direct Matches If i-th C-Matrix column is matched with j-th T-Matrix column, no decoder logic is needed, however, the MUX has to be present in the Switch But - if i-th C-Matrix column is matched with i-th T-Matrix column, no MUX is needed – really just a wire! – we call it a direct match Negative Matches If i-th C-Matrix column is matched with j-th T-Matrix column, but having opposite values, no decoder is needed, switch = MUX+NOT If i-th C-Matrix column is matched with i-th T-Matrix column, but having opposite values, no decoder is needed, switch = XOR Negative (direct) matches
3
How to select the columns to be matched? It is of a key importance. But NP-hard some heuristic needed In fact – when # of C-Matrix columns >> # of T-matrix columns, almost any match is possible, until some threshold we do it at random How to Do It? What to do after a match is found? The possible assignments of the rows have to be restricted. Two methods: 1.Decomposition into Set Systems Initially, each of the test vectors might be assigned to any of the LFSR vectors. When an ith T-matrix column is matched with j-th C- matrix column, all the values in these columns have to be equal. Thus, both sets of the test and LFSR vectors have to be divided into halves – the halves with the “1” and “0” values in the matched columns. Vectors belonging to the sets with equal values can be matched with each other, the others not each match = one division, until one set is empty. Then the matching ends. The final assignment of rows is easy – to each T-matrix row select one at random. 2.Blocking Matrix Set system approach is not suitable for tests with don’t cares – the divided matrices must be repeatedly duplicated here – slow -Blocking matrix B = binary matrix, B[r, s] = 1 when r-th C-Matrix row can be assigned to the s-th T-Matrix row -Initially, all cells contain “1”s -After each match, the B matrix is “pruned” -The final assignment is not easy – NP-hard. t1t1 t2t2 t3t3 t4t4 t5t5 t 1 – c 1 t 2 – c 2 or c 3 t 3 – c 4 t 4 – c 6 t 5 – c 5 c1c1 10010 c2c2 01000 c3c3 01000 c4c4 00100 c5c5 00101 c6c6 00011 If c 1 is assigned to t 1 – OK But if c 1 is assigned to t 4 – no solution
4
B-Matrix Assignment Algorithms Note: All the T-Matrix rows have to be assigned to some C-Matrix rows all B-Matrix columns have to be covered by rows Not a standard CP! One row covers only one column! Methods Random Randomly select one column, then randomly select one row – just for comparison LCLR (Least Column - Least Row) heuristic Select column with the least number of “1”s (i.e., with a small chance to be covered) and select an appropriate row with a least number of 1s to it (i.e., for other columns the most “useless” one) Scoring matrix based heuristic Like LCLR, however more sophisticated – computes scoring matrix based on those two frequencies of 1s. Good, but slow. algorithmsuccessfulnessruntime LCLR97.3%0.28 ns scoring matrix97.6%2.94 ns random57.2%0.09 ns Comparison with Other Methods Col.-matchingBit-fixingRow-matching BenchTLGEsTLGEsTLGEs c8801 K10.51 K271 K21 c13552 K153 K112 K0 c19083 K7.54 K124.5 K8 c26705 K1725 K1215 K119 c35405.5 K1.54.5 K134.5 K4 c75528 K58610 K1868 K297 Col.-matchingBit-fixingRow-matching BenchTLGEsTLGEsTLGEs s4201 K24.51 K28-- s6414 K1510 K1210 K6 s7135 K16.5--5 K4 s8386 K13010 K37-- s119610 K6-- 36 Acknowledgement This research was supported by a grant GA 102/03/0672 and MSM 212300014
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.