Sei sulla pagina 1di 21

TestTest PatternPattern GenerationGeneration -- OrganizationOrganization

TypesTypes ofof TestTest PatternsPatterns CountersCounters FiniteFinite StateState MachinesMachines LinearLinear FeedbakFeedbak ShiftShift RegistersRegisters PrimitivePrimitive PolynomialsPolynomials PP

PP

dd

ii

ucuc ngng tt

hh

AllAll 00

ss

roro

ee

atternattern

ReciprocalReciprocal PolynomialPolynomial CellularCellular AutomataAutomata WeightedWeighted PseudoPseudo--RandomRandom TestTest PatternsPatterns OtherOther TPGsTPGs ComparingComparing TPGsTPGs

TypesTypes ofof TestTest PatternsPatterns

DeterministicDeterministic -- specificspecific toto CUTCUT developeddeveloped viavia ATPGATPG oror faultfault simulationsimulation AlgorithmicAlgorithmic -- usedused toto testtest regularregular structuresstructures andand specificspecific faultfault modelsmodels ExhaustiveExhaustive -- allall possiblepossible inputinput testtest patternspatterns Example:Example: 22 patternspatterns forfor nn--inputinput combinationalcombinational logiclogic circuitcircuit PseudoPseudo--exhaustiveexhaustive -- eacheach partitionedpartitioned subsub--circuitcircuit isis exhaustivelyexhaustively testedtested PseudoPseudo--randomrandom -- propertiesproperties similarsimilar toto randomrandom sequencessequences butbut repeatablerepeatable WeightedWeighted pseudopseudo--randomrandom -- specificspecific bitsbits produceproduce moremore 1s1s oror 0s0s RandomRandom -- truetrue randomrandom patternspatterns

nn

ExamplesExamples ofof TestTest PatternPattern GeneratorsGenerators

DeterministicDeterministic (limited(limited applicability)applicability) ROMROM storesstores testtest patterns,patterns, countercounter addressesaddresses ROMROM AlgorithmicAlgorithmic FSMsFSMs ExhaustiveExhaustive (not(not practicalpractical forfor largelarge nn)) nn--bitbit countercounter producesproduces allall 22 nn testtest patternspatterns PseudoPseudo--exhaustiveexhaustive counter,counter, LFSR,LFSR, oror CACA w/w/ MUXsMUXs forfor partitioningpartitioning PseudoPseudo--randomrandom (most(most commoncommon inin BIST)BIST) LFSRLFSR oror CACA withwith maximalmaximal--lengthlength sequencesequence WeightedWeighted pseudopseudo--randomrandom LFSRLFSR oror CACA withwith AND/ORAND/OR gatesgates forfor weightingweighting RandomRandom difficultdifficult toto implementimplement truetrue randomrandom vectorsvectors

CountersCounters

GeneratesGenerates allall possiblepossible 22 nn patternspatterns EasyEasy toto implementimplement ModerateModerate areaarea overheadoverhead 11 FF,FF, 11 XOR,XOR, andand 11 ANDAND perper bitbit GoodGood forfor testingtesting combinationalcombinational logiclogic NotNot soso goodgood forfor testingtesting sequentialsequential logiclogic DueDue toto fixed,fixed, regularregular transitionstransitions

enable enable out out enable enable Q Q i i in in
enable
enable
out
out
enable
enable
Q Q
i i
in
in

QQ 22

QQ 11

QQ 00

00

00

00

00

00

11

00

11

00

00

11

11

11

00

00

11

00

11

11

11

00

11

11

11

00

00

00

LSBLSB togglestoggles everyevery clockclock cyclecycle MSBMSB toggletoggle halfhalf wayway throughthrough sequencesequence

CareCare inin whichwhich bitsbits areare assignedassigned toto whichwhich inputsinputs ofof CUTCUT OtherOther typestypes ofof counterscounters toto considerconsider GrayGray codecode

distance=1distance=1 forfor consecutiveconsecutive patternspatterns (only(only 11 bitbit changes)changes)

NN--outout--ofof--MM codecode (constant(constant weight)weight)

example:example: 33 outout ofof 88 bitsbits areare alwaysalways 1s1s

FiniteFinite StateState MachinesMachines

GoodGood forfor algorithmicalgorithmic testtest patternpattern generationgeneration DesignedDesigned specificallyspecifically forfor algorithmalgorithm Example:Example: MarchMarch YY testtest algorithmalgorithm forfor RAMRAM ↨↨(w0);(w0); ↑↑(r0,(r0, w1,r1);w1,r1); ↓↓(r1,(r1, w0,w0, r0);r0); ↑↑(r0);(r0);

w0w0 == writewrite 00 r1r1 == readread 11 ↑↑ addressaddress upup ↓↓ addressaddress downdown ↨↨ addressaddress eithereither wayway

downdown ↨↨ addressaddress eithereither wayway SeriesSeries ofof 44 marchmarch sequencessequences EachEach

SeriesSeries ofof 44 marchmarch sequencessequences

EachEach marchmarch addressesaddresses throughthrough RAMRAM

LinearLinear FeedbackFeedback ShiftShift RegistersRegisters (LFSRs)(LFSRs)

EfficientEfficient designdesign forfor TPGsTPGs andand ORAsORAs FFsFFs plusplus aa fewfew XORXOR gatesgates

ExternalExternal FeedbackFeedback LFSRLFSR

ExternalExternal FeedbackFeedback LFSRLFSR

betterbetter thanthan countercounter

fewerfewer gatesgates higherhigher clockclock frequencyfrequency

TwoTwo tt

eses ofof LFSRsLFSRs

ypyp ExternalExternal FeedbackFeedback InternalInternal FeedbackFeedback

higherhigher clockclock frequencyfrequency

CharacteristicCharacteristic polynomialpolynomial

D D D Q Q Q D D D Q Q Q D D D
D
D
D
Q
Q
Q
D
D
D
Q
Q
Q
D
D
D
Q
Q
Q
D
D
D
Q
Q
Q
CK
CK
CK
CK
CK
CK
CK
CK
CK
CK
CK
CK

InternalInternal FeedbackFeedback LFSRLFSR

InternalInternal FeedbackFeedback LFSRLFSR

D Q D D D Q Q Q D D D Q Q Q D
D Q
D
D
D
Q
Q
Q
D
D
D
Q
Q
Q
D
D
D
Q
Q
Q
CK
CK
CK
CK
CK
CK
CK
CK
CK
CK
CK
CK

defineddefined byby

PP((xx)) == xx 44 ++ xx 33 ++ xx ++ 11 inin bothboth examplesexamples

XORXOR positionspositions

LFSRsLFSRs (cont)(cont)

CharacteristicCharacteristic polynomialpolynomial ofof LFSRLFSR nn == ## ofof FFsFFs == degreedegree ofof polynomialpolynomial

XORXOR feedbackfeedback connectionconnection toto FFFF ii €€ coefficientcoefficient ofof xx ii CoefficientCoefficient == 00 ifif nono connectionconnection

CoefficientCoefficient == 11 ll

CC

ifif connectionconnection ee

ii

ll

dd

ncnc uu

ffiffi

ii

dd ii

oeoe

cc entsents aa waysways

hh

ii

ii

ll

ii

ll

nn cc aracteraracter stst cc popo ynomynom aa ::

xx nn (degree(degree ofof polynomialpolynomial && primaryprimary feedback)feedback) xx 00 == 11 (principle(principle inputinput toto shiftshift register)register)

Note:Note: statestate ofof thethe LFSRLFSR €€ polynomialpolynomial ofof degreedegree nn--11 Example:Example: PP((xx)) == xx 33 ++ xx ++ 11

1x 1x 1x 0 0 0 1x 1x 1x 1 1 1 0x 0x 2
1x
1x
1x 0
0 0
1x
1x
1x 1
1 1
0x
0x 2
0x
2 2
1x
1x
1x
3
3 3
DD
DD
DD
QQ
QQ
QQ
DD
DD
DD
QQ
QQ
QQ
DD
DD
DD
QQ
QQ
QQ
FF#1FF#1
FF#1FF#1
FF#1FF#1
FF#2FF#2
FF#2FF#2
FF#2FF#2
FF#3FF#3
FF#3FF#3
FF#3FF#3
CKCK
CKCK
CKCK
CKCK
CKCK
CKCK
CKCK
CKCK
CKCK

LSFRsLSFRs (cont)(cont)

AnAn LFSRLFSR generatesgenerates periodicperiodic sequencesequence MustMust startstart inin aa nonnon--zerozero state,state, TheThe maximummaximum--lengthlength ofof anan LFSRLFSR sequencesequence isis 22 nn --11 DoesDoes notnot generategenerate allall 0s0s patternpattern (gets(gets stuckstuck inin thatthat state)state) TheThe characteristiccharacteristic polynomialpolynomial ofof anan LFSRLFSR generatinggenerating aa maximummaximum--lengthlength sequencesequence isis aa primitiveprimitive polynomialpolynomial AA maximummaximum--lengthlength sequencesequence isis pseudopseudo--randomrandom::

NumberNumber ofof 1s1s == numbernumber ofof 0s0s ++ 11 SameSame numbernumber ofof runsruns ofof consecutiveconsecutive 0s0s andand 1s1s 1/21/2 ofof thethe runsruns havehave lengthlength 11 1/41/4 ofof thethe runsruns havehave lengthlength 22 …… (as(as longlong asas fractionsfractions resultresult inin integralintegral numbersnumbers ofof runs)runs)

LFSRsLFSRs (cont)(cont)

Example:Example: CharacteristicCharacteristic polynomialpolynomial isis PP((xx)) == xx 33 ++ xx ++ 11 BeginningBeginning atat allall 1s1s statestate

77 clockclock cyclescycles toto repeatrepeat MaximalMaximal lengthlength == 22 nn --11 PolynomialPolynomial isis primitiveprimitive Properties:Properties:

11xx 11xx 11xx 00 00 00 11xx 11xx 11xx 11 11 11 00xx 22 00xx
11xx
11xx
11xx 00
00 00
11xx
11xx
11xx 11
11 11
00xx 22
00xx
00xx
22 22
11xx 33
11xx
11xx
33 33
DD
QQ
DD
DD
DD
QQ
QQ
QQ
DD
DD
DD
QQ
QQ
QQ
FF1FF1
FF1FF1
FF1FF1
FF2FF2
FF2FF2
FF2FF2
FF3FF3
FF3FF3
FF3FF3
CKCK
CKCK
CKCK
CKCK
CKCK
CKCK
CKCK
CKCK
CKCK
11
11 11
11
11
11
11
11
11
11
11
11
11
11 11
00
00
00
11
11
11
22
22
22
11 11
11
00
00
00
00
00
00
33
33
33
00
00 00
11
11
11
00
00
00
44
44
44
00 00
00
00
00
00
11
11
11
55
55
55
11
11 11
11
11
11
00
00
00
66
66
66
00
00 00
11
11
11
11
11
11
77
77
77
11
11 11
11
11
11
11
11
11

FourFour 1s1s andand threethree 0s0s 44 runs:runs:

22 runsruns ofof lengthlength 11 (one(one 00 && oneone 1)1) 11 runrun ofof lengthlength 22 (0s)(0s) 11 runrun ofof lengthlength 33 (1s)(1s)

Note:Note: externalexternal && internalinternal LFSRsLFSRs withwith samesame primitiveprimitive polynomialpolynomial dodo notnot generategenerate samesame sequencesequence (only(only samesame length)length)

LFSRsLFSRs (cont)(cont)

ReciprocalReciprocal polynomial,polynomial, PP*(*(xx)) PP*(*(xx)) == xx nn PP(1/(1/xx))

Example:Example: PP((xx)) == xx 33 ++ xx ++ 11 Then:Then: PP*(*(xx)) == xx 33 ((xx --33 ++ xx --11 +1)+1) == 11 ++ xx 22 ++ xx 33 == xx 33 ++ xx 22 +1+1

IfIf PP((xx)) isis primitive,primitive, PP*(*(xx)) isis alsoalso primitiveprimitive

SameSame forfor nonnon--primitiveprimitive polynomialspolynomials

PolynomialPolynomial arithmeticarithmetic ModuloModulo--22 ((xx nn ++ xx nn == xx nn -- xx nn == 0)0)

Addition/SubtractionAddition/Subtraction Addition/SubtractionAddition/Subtraction
Addition/SubtractionAddition/Subtraction
Addition/SubtractionAddition/Subtraction
Addition/SubtractionAddition/Subtraction
((xx
((xx
((xx 55 ++ xx 22 ++ 1)1) ++ ((xx 44 ++ xx 22 )) ))
55 55
++ xx
++ xx
22 22
++ 1)1) ++ ((xx
++ 1)1) ++ ((xx
44 44
++ xx ))
++ xx
22 22
xx
xx 55
xx
55 55
xx 22
xx
xx
22 22
11 11 11
++
++
++
xx 44
xx
xx
44 44
xx 22
xx
xx
22 22
xx
xx 55
xx
55 55
xx
xx
xx 44
44 44
11 11 11
== xx 55 ++ xx 44 ++ 11
== xx
== xx
55 55
++ xx
++ xx
44 44
++ 11
++ 11

MultiplicationMultiplication

((xx 22 ++ xx ++ 1)1)

((xx 22 ++ 1)1)

xx

22 ++ xx ++ 11

xx 22 ++ 11

xx

22 ++ xx ++ 11

xx 44 ++ xx 33 ++ xx 22

== xx 44 ++ xx 33 ++ xx ++ 11

DivisionDivision DivisionDivision DivisionDivision xx xx xx 22 22 22 ++ xx ++ 11 ++ xx
DivisionDivision
DivisionDivision
DivisionDivision
xx
xx
xx
22 22
22 ++ xx ++ 11
++ xx ++ 11
++ xx ++ 11
xx
xx
xx
22 ++ 11
22 22
++ 11
++ 11
xx
xx
xx
44 44
44 ++ xx 33 ++ xx ++ 11
++ xx
++ xx
33 33
++ xx ++ 11
++ xx ++ 11
xx
xx
xx
44 44
44
++ xx 22
++ xx
++ xx
22 22
xx
xx
xx
33 33
33 ++ xx 22 ++ xx ++ 11
++ xx
++ xx
22 22
++ xx ++ 11
++ xx ++ 11
xx
xx
xx
33 33 33
++ xx
++ xx
++ xx
xx
xx
xx
22 22
22 ++ 11
++ 11
++ 11
xx
xx
xx
22 22
22 ++ 11
++ 11
++ 11
00
00
00

LFSRsLFSRs (cont)(cont)

NonNon--primitiveprimitive polynomialspolynomials produceproduce sequencessequences << 22 nn --11 TypicallyTypically primitiveprimitive polyspolys desireddesired forfor TPGsTPGs && ORAsORAs ExampleExample ofof nonnon--primitiveprimitive polynomialpolynomial PP((xx)) == xx 33 ++ xx 22 ++ xx ++ 11

ExternalExternalExternalExternal FeedbackFeedbackFeedbackFeedback LFSRLFSRLFSRLFSR

D D D Q Q Q D D D Q Q Q D D D
D
D
D
Q
Q
Q
D
D
D
Q
Q
Q
D
D
D
Q
Q
Q
CK
CK
CK
CK
CK
CK
CK
CK
CK

00

00

00

11

11

11

00

00

00

11

11

11

11 11 11 00 00 00 00 00 00 11 11 11 11 11 11
11 11
11
00 00
00
00
00 00
11 11
11
11
11 11
00 00
00
00 00
00
11
11
11
11
11
11
00
00 00
00
00
00
11
11
11
11 11
11
00
00
00
00
00
00

00

11

00

11

00

11

00

11

00

InternalInternalInternalInternal FeedbackFeedbackFeedbackFeedback LFSRLFSRLFSRLFSR

D D D Q Q Q D D D Q Q Q D D D
D
D
D
Q
Q
Q
D
D
D
Q
Q
Q
D
D
D
Q
Q
Q
CK
CK
CK
CK
CK
CK
CK
CK
CK

00

00

00

00

00

00

11 11 11 11 11 11 11 11 11 11 11 11 00 00 00
11
11 11
11 11
11
11 11
11
11 11
11
00
00 00
00
00 00
00 00
00
11
11
11
00
00
00
00 00
00
00
00
00
11
11
11
11
11 11
11
11
11
11
11
11
11 11 11 11 11 11 00 00 00 11 11 11 00 00 00
11
11 11
11
11
11
00
00
00
11
11 11
00
00
00
11
11
11
00
00 00
11
11
11
11
11
11
11
11 11
00
00
00
11
11
11
11
11 11
11
11
11
00
00
00

LFSRsLFSRs (cont)(cont)

PrimitivePrimitive polynomialspolynomials withwith minimumminimum ## ofof XORsXORs

DegreeDegree ((nn) ) DegreeDegree ((nn) ) ) DegreeDegree ((nn) Polynomial Polynomial Polynomial Polynomial
DegreeDegree ((nn) )
DegreeDegree ((nn) ) )
DegreeDegree ((nn)
Polynomial
Polynomial
Polynomial
Polynomial
Polynomial
Polynomial
2,3,4,6,7,15,222,3,4,6,7,15,22
2,3,4,6,7,15,222,3,4,6,7,15,22
2,3,4,6,7,15,222,3,4,6,7,15,22
xx
xx
xx nn ++ xx ++ 11
nn
nn
++ xx ++ 11
++ xx ++ 11
5,11,21,295,11,21,29
5,11,21,295,11,21,29
5,11,21,295,11,21,29
xx
xx
xx nn ++ xx 22 ++ 11
nn
nn
++ xx
++ xx
22 22
++ 11
++ 11
8,198,19
8,198,19
8,198,19
xx
xx nn ++ xx 66 ++ xx 55 ++ xx ++ 11
xx
nn
nn
++ xx
++ xx
66 66
++ xx
++ xx
55 55
++ xx ++ 11
++ xx ++ 11
99
99
99
xx
xx nn ++ xx 44 ++ 11
xx
nn
nn
++ xx
++ xx
44 44
++ 11
++ 11
10,17,20,25,2810,17,20,25,28
10,17,20,25,2810,17,20,25,28
10,17,20,25,2810,17,20,25,28
xx
xx
xx nn ++ xx 33 ++ 11
nn
nn
++ xx
++ xx
33 33
++ 11
++ 11
1212
1212
1212
xx
xx
xx nn ++ xx 77 ++ xx 44 ++ xx 33 ++ 11
nn
nn
++ xx
++ xx
77 77
++ xx
++ xx
44 44
++ xx
++ xx
33 33
++ 11
++ 11
13,2413,24
13,2413,24
13,2413,24
xx
xx
xx nn ++ xx 44 ++ xx 33 ++ xx ++ 11
nn
nn
++ xx
++ xx
44 44
++ xx
++ xx
33 33
++ xx ++ 11
++ xx ++ 11
1414
1414
1414
xx nn ++ xx 1212 ++ xx 1111 ++ xx ++ 11
xx
xx
nn
nn
++ xx
++ xx
1212
1212
++ xx
++ xx
1111
1111
++ xx ++ 11
++ xx ++ 11
1616
1616
1616
xx nn ++ xx 55 ++ xx 33 ++ xx 22 ++ 11
xx
xx
nn
nn
++ xx
++ xx
55 55
++ xx
++ xx
33 33
++ xx
++ xx
22 22
++ 11
++ 11
1818
1818
1818
xx
xx nn ++ xx 77 ++ 11
xx
nn
nn
++ xx
++ xx
77 77
++ 11
++ 11
2323
2323
2323
xx nn ++ xx 55 ++ 11
xx
xx
nn
nn
++ xx
++ xx
55 55
++ 11
++ 11
26,2726,27
26,2726,27
26,2726,27
xx nn ++ xx 88 ++ xx 77 ++ xx ++ 11
xx
xx
nn
nn
++ xx
++ xx
88 88
++ xx
++ xx
77 77
++ xx ++ 11
++ xx ++ 11
3030
3030
3030
xx
xx
xx nn ++ xx 1616 ++ xx 1515 ++ xx ++ 11
nn
nn
++ xx
++ xx
1616
1616
++ xx
++ xx
1515
1515
++ xx ++ 11
++ xx ++ 11

ProblemsProblems withwith LFSRsLFSRs forfor TPGsTPGs

SomeSome faultsfaults areare randomrandom--patternpattern resistantresistant LowLow detectiondetection probabilityprobability -- detecteddetected byby onlyonly byby aa fewfew vectorsvectors NonNon--functionalfunctional patternspatterns appliedapplied toto CUTCUT maymay causecause problemsproblems HowHow manymany vectorsvectors toto apply?apply? HaveHave wewe reachedreached thethe desireddesired faultfault coverage?coverage? MethodsMethods toto reducereduce oror eliminateeliminate randomrandom--patternpattern resistance:resistance:

WeightedWeighted pseudopseudo--randomrandom patternspatterns

AddAdd filterfilter betweenbetween TPGTPG andand CUTCUT toto getget desireddesired pattepatternrn probabilitiesprobabilities

CombineCombine adad--hochoc DFTDFT techniquestechniques

InsertInsert additionaladditional controlcontrol pointspoints InsertInsert additionaladditional observationobservation pointspoints CanCan useuse aa parityparity treetree toto feedfeed extraextra responsesresponses toto ORORAA

ModificationsModifications toto LFSRsLFSRs

AllAll 0s0s statestate cancan bebe includedincluded inin thethe pseudopseudo--randomrandom sequencesequence Cost:Cost: 11 XORXOR andand nn--11 inputinput NORNOR gategate

1x 0 1x 1x 0 0 1x 1x 1 1x 1 1 0x 0x 2
1x 0
1x
1x
0 0
1x
1x 1
1x
1 1
0x
0x 2
0x
2 2
1x 3
1x
1x
3 3
D Q
D
D
D
Q
Q
Q
D
D
D
Q
Q
Q
1 1 1
2 2
2
3 3
3
CK
CK
CK
CK
CK
CK
CK
CK
CK

11

11

11

11

11

00

11

22

11

00

00

33

00

11

00

44

00

00

11

55

00

00

00

66

11

11

00

77

00

11

11

88

11

11

11

WeightedWeighted pseudopseudo--randomrandom patternspatterns ProbabilityProbability ofof aa logiclogic 11 pp 11 0.50.5 forfor eacheach LFSRLFSR bitbit ((pp 00 0.5)0.5)

ProbabilityProbability

cancan bebe weightedweighted usingusing AND/ORAND/OR gatesgates

NN--inputinput ANDAND gategate givesgives pp 11 0.50.5 NN NN--inputinput OROR gategate givesgives pp 00 0.50.5 NN

C. Stroud 9/09

Test Pattern Generation

D D D Q Q Q D D D Q Q Q D D D
D
D
D
Q
Q
Q
D
D
D
Q
Q
Q
D
D
D
Q
Q
Q
1 1 1
2 2
2
3
3 3
CK
CK
CK
CK
CK
CK
CK
CK
CK
p 0 0.25
p 0 0.25
14

CellularCellular AutomataAutomata (CA)(CA) RegistersRegisters

SimilarSimilar toto anan LFSRLFSR GeneratesGenerates pseudopseudo--randomrandom testtest patternspatterns DifferentDifferent fromfrom anan LFSRLFSR DoesDoes notnot havehave obviousobvious shiftshift inin patternspatterns likelike LFSRLFSR

ExternalExternal FeedbackFeedback LFSRLFSR

InternalInternal FeedbackFeedback LFSRLFSR

CellularCellular AutomataAutomata RegisterRegister

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

11

00

11

11

11

11

11

11

11

11

00

11

11

11

00

00

11

11

00

11

00

11

00

11

11

11

00

11

11

11

11

11

11

11

00

00

11

11

00

11

00

00

00

11

00

11

00

00

11

00

11

00

11

11

11

11

11

00

11

00

00

11

11

00

11

00

11

11

00

11

11

11

00

11

00

11

00

11

11

11

11

11

11

11

00

00

00

00

00

11

11

00

00

00

00

00

11

00

11

00

11

00

11

11

11

00

11

11

11

00

00

00

00

11

11

11

00

00

00

11

00

00

00

11

00

11

00

11

11

00

00

11

11

11

00

00

00

11

00

00

11

00

11

11

11

00

00

00

11

00

11

00

11

00

00

00

11

11

11

00

00

00

11

11

00

00

11

11

11

00

00

00

00

11

00

11

00

00

00

00

00

11

11

11

00

11

11

00

11

11

11

11

11

11

00

00

00

00

11

00

11

00

00

00

00

00

11

11

11

11

11

00

11

11

00

11

11

11

11

00

00

00

00

11

00

11

11

00

00

00

11

00

11

11

11

00

11

00

00

00

11

11

11

11

00

00

00

00

11

11

00

11

00

00

11

00

00

11

11

00

00

11

00

11

00

00

11

11

11

00

00

00

00

00

11

00

11

00

00

11

00

11

11

11

11

11

00

11

11

00

00

11

11

11

00

00

00

00

00

11

00

11

00

00

11

11

00

11

00

00

00

00

11

11

00

00

11

11

11

00

00

11

11

00

11

00

00

11

00

00

00

11

11

00

00

11

00

11

11

00

00

11

11

11

00

00

11

11

00

11

00

00

11

00

11

00

11

11

11

11

11

CACA RegistersRegisters (continued)(continued)

NextNext statestate forfor aa CACA registerregister bitbit isis aa functionfunction ofof TheThe CACA registerregister bitbit beforebefore it:it: xx ii--11 (t)(t)

Itself:Itself: xx ii (t)(t) TheThe CACA registerregister bitbit afterafter it:it: xx i+1i+1 (t)(t) ThereThere areare 88 possiblepossible valuesvalues for:for:

ThisThis correspondscorresponds toto valuesvalues 00 throughthrough 77

000000

111111

))

xx ii--11 (t)(t) xx ii (t)(t) xx i+1i+1 (t)(t) ((

,…,,…,

xx xx xx xx xx xx xx xx xx ii--11 ii--11 ii--11 ii ii ii
xx
xx
xx
xx
xx
xx
xx
xx
xx
ii--11
ii--11
ii--11
ii ii
ii
i+1i+1
i+1i+1
i+1i+1

AA CACA registerregister isis constructedconstructed fromfrom rulesrules TheThe areare 256256 possiblepossible combinationscombinations ofof binarybinary valuesvalues forfor thethe 88 variationsvariations ofof xx ii--11 (t)(t) xx ii (t)(t) xx i+1i+1 (t)(t) EachEach combinationcombination isis aa rulerule (0(0--255)255) OnlyOnly rulesrules 9090 andand 150150 areare usefuluseful forfor CACA--basedbased TPGsTPGs

CACA RulesRules 9090 andand 150150

xx ii--11 (t)(t) xx ii (t)(t) xx i+1i+1 (t)(t)

77

66

55

44

33

22

11

00

111111

110110

101101

100100

011011

010010

001001

000000

RuleRule 9090

 

22

66

 

22

44

22

33

 

22

11

 

64+16+8+2=9064+16+8+2=90

(64)(64)

(16)(16)

(8)(8)

(2)(2)

xx

ii (t+1)(t+1)

00

11

00

11

11

00

11

00

RuleRule 150150

22

77

   

22

44

 

22

22

22

11

 

128+16+4+2=150128+16+4+2=150

(128)(128)

(16)(16)

(4)(4)

(2)(2)

xx

ii (t+1)(t+1)

11

00

00

11

00

11

11

00

xx

xx

ii--11

ii--11

xx (t)(t) xx xx ii (t)(t) xx (t)(t) (t)(t) ii i+1i+1 i+1i+1 00 0000 0101
xx (t)(t) xx
xx ii (t)(t) xx
(t)(t)
(t)(t)
ii
i+1i+1
i+1i+1
00
0000
0101
01
11
1111
1010
10
(t)(t)
(t)(t)
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1 1 1
1 1 1

RuleRule 90:90: xx ii (t)(t) == xx ii--11 (t)(t)≈≈ xx i+1i+1 (t)(t)

xx xx xx xx xx xx xx xx xx ii--11 ii--11 ii--11 ii ii ii
xx
xx
xx
xx
xx
xx
xx
xx
xx
ii--11
ii--11
ii--11
ii
ii ii
i+1i+1
i+1i+1
i+1i+1

xx

xx

ii--11

ii--11

xx (t)(t) xx xx ii (t)(t) xx (t)(t) (t)(t) ii i+1i+1 i+1i+1 0000 00 0101
xx (t)(t) xx
xx ii (t)(t) xx
(t)(t)
(t)(t)
ii
i+1i+1
i+1i+1
0000
00
0101
01
11
1111
10
1010
(t)(t)
(t)(t)
0
0
0
0
0
0
1
1
1
0
0
0
1 1 1
1
1
1
0
0
0
1
1
1
0
0
0
1 1 1

RuleRule 150:150: xx ii (t)(t) == xx ii--11 (t)(t)≈≈ xx ii (t)(t)≈≈ xx i+1i+1 (t)(t)

xx xx xx xx xx xx xx xx xx ii--11 ii--11 ii--11 ii ii ii
xx
xx
xx
xx
xx
xx
xx
xx
xx
ii--11
ii--11
ii--11
ii
ii ii
i+1i+1
i+1i+1
i+1i+1

CACA RegisterRegister ConstructionConstruction

CACA registersregisters areare constructedconstructed givengiven aa rulerule forfor eacheach bitbit CombinationsCombinations ofof rulesrules determinedetermine maximalmaximal lengthlength sequencesequence (or(or not)not)

RulesRules obtainedobtained fromfrom tablestables justjust likelike LFSRLFSR JustJust likelike primitiveprimitive vs.vs. nonnon--primitiveprimitive polynomialspolynomials inin LFSRsLFSRs

WhatWhat aboutabout thethe endsends ofof thethe registerregister sincesince therethere isis nono adjacentadjacent bit?bit? TwoTwo typetype ofof boundaryboundary conditionsconditions

NullNull –– assumeassume logiclogic 00 forfor missingmissing bitbit ReducesReduces numbernumber ofof XORsXORs CyclicCyclic –– assumeassume “wrap“wrap--around”around” ofof endsends ofof registerregister

SoSo farfar onlyonly NullNull boundaryboundary conditionsconditions havehave beenbeen foundfound thatthat produceproduce maximalmaximal lengthlength sequencesequence CACA registerregister areaarea overhead:overhead: NN xorxor == NN ffff ++ RR 150150 -- 22

ExampleExample CACA RegisterRegister

66--bitbit CACA constructedconstructed forfor rules:rules: 150,150, 90,90, 90,90, 90,90, 90,90, 9090 ProducesProduces aa maximalmaximal lengthlength sequencesequence

AllAll 22 nn --11 possiblepossible nonnon--00 valuesvalues JustJust likelike LFSRLFSR

NoteNote thatthat wewe locklock upup inin thethe allall 0s0s statestate

JustJust likelike LFSRLFSR

MoreMore XORXOR gatesgates thanthan LFSRLFSR

LFSRLFSR MoreMore XORXOR gatesgates thanthan LFSRLFSR RuleRule 150150 w/w/ nullnull BCBC RuleRule 9090 RuleRule

RuleRule 150150 w/w/ nullnull BCBC

RuleRule 9090

RuleRule 9090

RuleRule 9090

RuleRule 9090

RuleRule 9090 w/w/ nullnull BCBC

OtherOther TPGsTPGs

LFSRLFSR withwith shiftshift registerregister LargerLarger numbernumber ofof bitsbits withwith smallsmall LFSRLFSR

LFSRLFSR

NN

ShiftShift RegisterRegister

MM

AccumulatorAccumulator withwith constantconstant primeprime numbernumber GeneratesGenerates allall 22 nn patternspatterns likelike countercounter MoreMore MSBMSB transitionstransitions thanthan countercounter DoesDoes notnot havehave randomrandom propertiesproperties ofof LFSRLFSR

LSBLSB stillstill togglestoggles 22 LSBsLSBs stillstill countcount

constantconstant constantconstantconstantconstant adderadderadderadder adderadder RegisterRegister
constantconstant
constantconstantconstantconstant
adderadderadderadder
adderadder
RegisterRegister
RegisterRegisterRegisterRegister
Example:Example: ++55 00000000 11 00 01010101 22 55 10101010 33 1010 11111111 44 1515 01000100
Example:Example: ++55
00000000
11
00
01010101
22
55
10101010
33 1010
11111111
44 1515
01000100
55
44
10011001
66
99
11101110
77 1414
00110011
88
33
10001000
99
88
11011101
1010 1313
00100010
1111
22
01110111
1212
77
11001100
1313 1212
00010001
1414
11
01100110
1515
66
10111011
1616 1111
00000000
00

ComparisonComparison ofof TPGsTPGs

TPGTPG

#FFs#FFs

#XORs#XORs

#gates#gates

GateGate I/OI/O

LFSRLFSR

88

33

88

3333

WLFSRWLFSR

1313

33

1515

5151

CARCAR

88

99

88

5151

CounterCounter

88

88

1515

6969

MarchYMarchY

99

99

1919

9494

AreaArea andand performanceperformance LFSRLFSR mostmost efficientefficient

InternalInternal feedbackfeedback hashas higherhigher performanceperformance

HowHow wellwell doesdoes thethe TPGTPG testtest itself?itself? InternalInternal feedbackfeedback LFSRLFSR winswins again,again, butbut barelybarely beatsbeats CARCAR NoteNote countercounter--basedbased TPGsTPGs achieveachieve maxmax faultfault coveragecoverage whenwhen MSBMSB togglestoggles

C. Stroud 9/09

achieveachieve maxmax faultfault coveragecoverage whenwhen MSBMSB togglestoggles C. Stroud 9/09 Test Pattern Generation 21

Test Pattern Generation

21