Built-in Self-test November 2, 2012 1
Introduction • Test generation and response evaluation done on-chip. • Only a few external pins to control BIST operation. • Additional hardware overhead. • Additional hardware overhead. • Offers a number of benefits. November 2, 2012 2
BIST Motivation • Useful for field test and diagnosis: – Less expensive than a local automatic test equipment • Software tests for field test and diagnosis: – Low hardware fault coverage – Low diagnostic resolution – Slow to operate • Hardware BIST benefits: – Lower system test effort – Improved system maintenance and repair – Improved component repair – Better diagnosis November 2, 2012 3
BIST – Basic Idea Test Generator CHIP Circuit Under Test (CUT) Response Compressor BIST Basics
BIST Architecture TEST TEST CONTROLLER ROM M Pattern Circuit Circuit Response Response Generator Generator U = Compactor under X test Good / PI Bad PO � Note: BIST cannot test wires and transistors: � From PI pins to input MUX � From POs to output pins November 2, 2012 5
BIST Costs – Chip area overhead for: • Test controller • Hardware pattern generator / response compactor • Testing of BIST hardware – Pin overhead • At least 1 pin needed to activate BIST operation – Performance overhead – Performance overhead • Extra path delays due to BIST – Yield loss • Due to increased chip area – Reliability reduction • Due to increased area – Increased BIST hardware complexity • Happens when BIST hardware is made testable November 2, 2012 6
BIST Benefits • Faults tested: – Single combinational / sequential stuck-at faults – Delay faults – Single stuck-at faults in BIST hardware • BIST benefits – Reduced testing and maintenance cost – Lower test generation cost – Reduced storage / maintenance of test patterns – Simpler and less expensive ATE – Can test many units in parallel – Shorter test application times – Can test at functional system speed November 2, 2012 7
BIST Techniques • Stored Vector Based – Microinstruction support – Stored in ROM • Algorithmic Hardware Test Pattern Generators Generators – Counter :: exhaustive, pseudo-exhaustive – Linear Feedback Shift Register – Cellular Automata BIST Basics - LFSR
Exhaustive Pattern Generation • Shows that every state and transition works • For n -input circuits, requires all 2 n vectors • Impractical for n > 20 November 2, 2012 9
Pseudo-Exhaustive Method • Partition large circuit into fanin cones – Backtrace from each PO to PIs influencing it – Test fanin cones in parallel • An illustrative example (next slide): – No. of tests reduced from 2 8 = 256 to 2 5 x 2 = 64 – No. of tests reduced from 2 8 = 256 to 2 5 x 2 = 64 November 2, 2012 10
Pseudo-Exhaustive Pattern Generation November 2, 2012 11
Random Pattern Testing • Generate pseudo-random patterns as test input vectors. • Evaluate fault coverage through fault simulation. • Motivation: • Motivation: – Test length may be larger. – Faster test generation. • Used to get tests for 60-80% of faults, then switch to ATPG for rest. • Some circuits may be random pattern resistant . November 2, 2012 12
100% % Fault Coverage Number of test vectors November 2, 2012 13
P R P G C U T Response Evaluation November 2, 2012 14
Linear Feedback Shift Register (LFSR) November 2, 2012 15
What is LFSR? • A simple hardware structure based on shift register. – Linear feedback circuit. • Has a number of useful applications: – Pseudo-random number generation – Pseudo-random number generation – Response compression – Error checking (Cyclic Redundancy Code) – Data compression November 2, 2012 16
Two types of LFSR Type 1 Type 2 + + D 1 D 2 D 3 D 4 D 1 D 2 D 3 D 4 • Unit delay – D Flip flop • Modulo 2 adder – XOR gate • Modulo 2 multiplier – Connection
General Type-1 LFSR November 2, 2012 18
LFSR Example D D D 2 D 4 3 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 + 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 D 1 D 2 D 3 D 4 1 0 1 0 0 1 0 1 1 0 1 1 f ( x ) = x 4 + x 1 + 1 0 1 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0
LFSR - Recurrence Relation ... + + + g 1 g 2 g n-1 ... D 1 D 2 D 3 D n-1 D n I s I s a -1 a -1 a -2 a -2 a -3 ... a -3 ... a -n+1 a -n+1 a -n a -n C s a m-1 a m-2 a m-3 ... a m-n+1 a m-n ∞ � m G x ( ) = a x • Generating Function m m = 0 n • Characteristic polynomial i � f x ( ) = c x + 1 i i 1 =
LFSR - Recurrence Relation (continue) n a m = � c i a m-i i = 1 ∞ = � a m x m G ( x ) m = 0 n n = � � c i a m-i x m = � c i x i � a m-i x m-i ∞ ∞ = � � c i a m-i x = � c i x � a m-i x m = 0 i = 1 m = 0 i = 1 n ∞ = � c i x i [ a -i x -i +...+ a - 1 x - 1 + � a m x m ] m = 0 i = 1 n = � c i x i [ a -i x -i +...+ a - 1 x - 1 + G ( x ) ] i = 1
LFSR - Recurrence Relation (continue) n n � � ( ) � − − 1 i i i � G ( x ) = c x G ( x ) + c x a x + + a x i i − i − 1 i = 1 i = 1 n � ( ) i − i − 1 � c x a x + + a x − − i i 1 � = 1 i G ( x ) = n � � i 1 + c x i i = 1 n � ( ) i − i − 1 � c x a x + + a x i − i − 1 i = 1 ( ) = G x f ( x ) 1 � � if a = a = = a = 0 and a = 1 G ( x ) = − 1 − 2 − n + 1 − n f ( x ) G ( x ) is function of initial state and g ( x )
LFSR - Definitions • If the sequence generated by an n-stage LFSR has period 2 n -1, then it is called a maximum-length sequence or m-sequence. • The characteristic polynomial associated with maximum-length sequence is called a with maximum-length sequence is called a primitive polynomial. • An irreducible polynomial is one that cannot be factored; i.e., it is not divisible by any other polynomial other than 1 and itself.
Example Primitive Polynomials � x 3 + x + 1 1 0 � � � 3: 4: 1 0 5: 2 0 6: 1 0 7: 1 0 8: 6 5 1 0 16: 5 3 2 0 32: 28 27 1 0 64: 4 3 1 0 November 2, 2012 24
LFSR - Theories • If the initial state of an LFSR is a -1 = a -2 = ... = a 1-n = 0, a -n = 1 then the LFSR sequence { a m } is periodic with a period that is the smallest integer k for which f(x) divides (1+x k ). • An irreducible polynomial f(x) satisfying the following two conditions is a primitive polynomial : – It has an odd number of terms including the 1 term. – If its degree n is greater than 3, then f(x) must divide ( 1 + x k ), where k = 2 n –1 BIST Basics - LFSR
Properties of m-sequences The period of {a n } is p=2 n -1, that is, a p+I = a i , for all i 1. ≥ 0. ≥ ≥ ≥ 2. Starting from any nonzero state, the LFSR that generates {a n } goes through all 2 n -1 states before repeating. 3. 3. The number of 1’s differs from the number of 0’s by The number of 1’s differs from the number of 0’s by one. 4. If a window of width n is slid along an m-sequence, then each of the 2 n -1 nonzero binary n-tuples is seen exactly once in a period. 5. In every period of an m -sequence, one-half the runs have length 1, one-fourth have length 2, one-eighth have length 3, and so on. November 2, 2012 26
Randomness Properties of m-sequence • m-sequences generated by LFSRs are called pseudo random sequence. – The autocorrelation of any output bit is very close to zero. – The correlation of any two output bits is very – The correlation of any two output bits is very close to zero. BIST Basics - LFSR
LFSR as Pseudo-Random Pattern Generator • Standard LFSR – Produces patterns algorithmically – repeatable. – Has most of desirable randomness properties. • Need not cover all 2 n input combinations. • Long sequences needed for good fault • Long sequences needed for good fault coverage. November 2, 2012 28
Weighted Pseudo-Random Pattern Generation ����� �� 1 • If p (1) at all PIs is 0.5, p F (1) = 0.5 8 = • If p (1) at all PIs is 0.5, p F (1) = 0.5 = 256 256 1 255 p F (0) = 1 – = 256 256 • Will need enormous # of random patterns to test a stuck-at 0 fault on F. • We must not use an ordinary LFSR to test this. • IBM holds patents on weighted pseudo-random pattern generator in ATE. November 2, 2012 29
• LFSR p (1) = 0.5 • Solution: – Add programmable weight selection and complement LFSR bits to get p (1)’s other than 0.5. 0.5. • Need 2-3 weight sets for a typical circuit. • Weighted pattern generator drastically shortens pattern length for pseudo- random patterns. November 2, 2012 30
Weighted Pattern Generator w 1 w 2 Inv . p ( output ) w 1 w 2 p ( output ) Inv . 0 0 0 ½ 1 0 1/8 0 0 0 1 ½ 1 0 7/8 1 0 1 0 ¼ 1 1 1/16 0 0 1 1 3/4 1 1 15/16 1 November 2, 2012 31
How to compute weights? • Assume p(1) of primary output(s) to be 0.5. • Systematically backtrace and compute the p(1) values of all other lines. • Finally obtain the p(1) values of the • Finally obtain the p(1) values of the primary input lines. November 2, 2012 32
Recommend
More recommend