survey of the algorithms in the column-matching bist method survey of the algorithms in the...
Post on 18-Jan-2016
218 Views
Preview:
TRANSCRIPT
Survey of the Algorithms in the Survey of the Algorithms in the Column-Matching BIST MethodColumn-Matching BIST Method
Petr Fišer, Hana KubátováDepartment of Computer Science and Engineering
Czech Technical UniversityKarlovo 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 faultsby pseudorandom patternsproduced by LFSR (unmodified)
Deterministic – generate deterministic patternscomputed by ATPG. These are producedby a transformation of the LFSR vectors
LFSR
Decoder
Switch
CUT
MISR
TPG
mode
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
10100010100010110110010111000111100011100011110111
Pseudo-randomsequence }Simulate Non-covered
faultsATPG Test
Vectors
1X0001010X110110001X
101001101101011 0000110000
(non-det)Deterministicsequence
} }
x-x0 4 y-y0 4
LFSR
10100010100010110110010111010011011010110000110000
Final test sequence LFSR
CUT
1
x0 x1 x2 x3 x4
y0 y1 y2 y3 y4
Deterministicmode
y = x0 0
’
’
y = xy = xy = xy = x +x
1 1
2 2
3 1
4 0 1+
Column - MatchingColumn - 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 MatchesIf 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 SwitchBut - 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 MatchesIf i-th C-Matrix column is matched with j-th T-Matrix column, but having opposite
values, no decoder is needed, switch = MUX+NOTIf 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
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?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 i th 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.
t1 t2 t3 t4 t5 t1 – c1
t2 – c2 or c3
t3 – c4
t4 – c6
t5 – c5
c1 1 0 0 1 0
c2 0 1 0 0 0
c3 0 1 0 0 0
c4 0 0 1 0 0
c5 0 0 1 0 1
c6 0 0 0 1 1
If c1 is assigned to t1
– OK
But if c1 is assigned to t4 – no solution
B-Matrix Assignment AlgorithmsB-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.
algorithm successfulness runtime
LCLR 97.3% 0.28 ns
scoring matrix 97.6% 2.94 ns
random 57.2% 0.09 ns
Comparison with Other MethodsComparison with Other MethodsCol.-matching Bit-fixing Row-matching
Bench TL GEs TL GEs TL GEs
c880 1 K 10.5 1 K 27 1 K 21
c1355 2 K 15 3 K 11 2 K 0
c1908 3 K 7.5 4 K 12 4.5 K 8
c2670 5 K 172 5 K 121 5 K 119
c3540 5.5 K 1.5 4.5 K 13 4.5 K 4
c7552 8 K 586 10 K 186 8 K 297
Col.-matching Bit-fixing Row-matching
Bench TL GEs TL GEs TL GEs
s420 1 K 24.5 1 K 28 - -
s641 4 K 15 10 K 12 10 K 6
s713 5 K 16.5 - - 5 K 4
s838 6 K 130 10 K 37 - -
s1196 10 K 6 - - 10 K 36
Acknowledgement
This research was supported by a grant GA 102/03/0672 and MSM 212300014
top related