24
A Test Pattern Generator for A Test Pattern Generator for DSP BIST in Virtex DSP BIST in Virtex - - 4 4 Chris Erickson Chris Erickson

A Test Pattern Generator for DSP BIST in Virtex-4strouce/DaTseminar/Erickson07s.pdfModified Booth multiplier Applied previous test algorithms to both multipliers Single stuck-at gate-level

Embed Size (px)

Citation preview

A Test Pattern Generator forA Test Pattern Generator forDSP BIST in VirtexDSP BIST in Virtex--44

Chris EricksonChris Erickson

2/7/07 2

Outline of PresentationOutline of PresentationOverview of Digital Signal ProcessorOverview of Digital Signal Processor

Test configurationsTest configurationsTest problemsTest problems

Multiplier Implementation ComparisonMultiplier Implementation ComparisonArray multiplierArray multiplierModified Booth multiplierModified Booth multiplier

Test Algorithm ComparisonTest Algorithm ComparisonApplying each algorithm to all multipliersApplying each algorithm to all multipliersExperimental ResultsExperimental Results

Summary and ConclusionsSummary and Conclusions

2/7/07 3

Primary Inputs Primary Inputs A A –– 18 bits18 bitsB B –– 18 bits18 bitsC C –– 48 bits48 bitsCinCinSubtractSubtract

Cascade Inputs Cascade Inputs BCinBCin –– 18 bits18 bitsPCinPCin –– 48 bits48 bits

Primary Outputs Primary Outputs P P –– 48 bits48 bits

Cascade OutputsCascade OutputsPCoutPCout –– 48 bits48 bitsBCoutBCout –– 18 bits18 bits

Outline of DSPOutline of DSP

2/7/07 4

Test Configurations & ProblemsTest Configurations & Problems

Test configurations = 3 minimumTest configurations = 3 minimumTest Problems Test Problems –– no implementation detailsno implementation details

18x1818x18--bit Multiplierbit Multiplier4848--bit (3bit (3--input) Adder/input) Adder/SubtactorSubtactor

2/7/07 5

Test Pattern GeneratorTest Pattern GeneratorNeed TPG to complete DSP BIST developmentNeed TPG to complete DSP BIST developmentGoals for multiplier and adder/Goals for multiplier and adder/subtractorsubtractor

Develop a set of test patterns that will work Develop a set of test patterns that will work regardless of design implementation used by Xilinxregardless of design implementation used by XilinxDevelop a minimum vector set that will provide 100% Develop a minimum vector set that will provide 100% fault coveragefault coverage

Previous multiplier work includes:Previous multiplier work includes:Minimum test vectors for a 16x16 array multiplierMinimum test vectors for a 16x16 array multiplier

10 test vectors for C6288 (10 test vectors for C6288 (KalyanaKalyana KantipudiKantipudi’’ss MS Defense)MS Defense)Test algorithm for a 16 x 16 Modified Booth multiplierTest algorithm for a 16 x 16 Modified Booth multiplier

256 test vectors256 test vectorsGizopoulosGizopoulos, , et.alet.al., IEEE Design & Test 1998., IEEE Design & Test 1998

2/7/07 6

Multiplier ComparisonMultiplier ComparisonArray MultiplierArray Multiplier

Uses full addersUses full addersEasy to implementEasy to implementLow area overheadLow area overhead

18x1818x18--bitbit# gates = 1800# gates = 1800

SlowSlowImplementation Implementation choice for small area choice for small area applications applications

Booth MultiplierBooth MultiplierUses carryUses carry--save adderssave addersComplex to implementComplex to implementLarge area overheadLarge area overhead

18x1818x18--bitbit# gates = 2600# gates = 2600

FastFastImplementation choice Implementation choice for high performance for high performance applicationsapplicationsUse in Use in VirtexVirtex--IIII

Probably used in VirtexProbably used in Virtex--44

2/7/07 7

Ripple CarryRipple CarryB0A0B1A1B2A3 B3 A2

S3 S2 S1 S0

Carryout Carryin

Easy and efficient to build but not fast. Every bit calculation is done in series. Not

an option for circuits requiring speed.

FAFA FA FA

2/7/07 8

CarryCarry--Save AdderSave Adder

S3 S2 S1 S0

Only more efficient than ripple-carry when the number of inputs >= 3

B0A0 C0B3A3 C3 B2A2 C2 B1A1 C1

Carry3

FAFA FA FA

HAFAFAFA

Carry0Carry1Carry2

CarryinCarryout HA

2/7/07 9

Carry LookCarry Look--AheadAhead

CarryinCarryout

B0A0B1A1B2A3 B3 A2

S3 S2 S1 S0

Requires significantly more area and logic. Speeds up calculation time immensely since

calculations can be completed in parallel.

2/7/07 10

Array MultiplierArray Multiplier

HA

FA

HAFA FA

HA HA

FAFA

FAFA

FA

B0A0B0A1B0A2B0An-1

B3An-1

B2An-1

B1An-1

An-2B3

A1B1

A0B1

A1B3

A0B3

An-2B2

An-2B1

A0B2

A1B2

S0

S1

S2

S3

SnSn+1S2n-1S2n-2

2/7/07 11

Modified Booth MultiplierModified Booth Multiplier

r

pp

A0

A1

A2

A3

A4

A5

A6A7

r

pp pp pp pp

pp pp pp pp pp

r

pp pp pp pp pp

r

pp pp pp pp pp

3,0 3,1 3,2 3,3

2,0 2,1 2,2 2,3

1,0 1,1 1,2 1,3

0,0 0,1 0,2 0,3

B0 B1 B2 B3

2/7/07 12

Modified Booth MultiplierModified Booth Multiplier

P4P3P2P1P0

F F F F F

F F F F F

H H H H H

F F F F F

2,23,0 2,33,1

1,41,22,0 1,32,1

0,21,0 0,31,1

0,0 0,1

P10P9

P8

P7

P11

P6

P5

A7

A5

A3

A1

3,3 3,42,43,2

0,4

2/7/07 13

Fault Simulation ModelsFault Simulation Models

ASL models developed for 18x18ASL models developed for 18x18--bitbitArray multiplier Array multiplier Modified Booth multiplierModified Booth multiplier

Applied previous test algorithms to both Applied previous test algorithms to both multipliersmultipliers

Single stuckSingle stuck--at gateat gate--level fault model with level fault model with AUSIMAUSIM

2/7/07 14

Vector create/edit/compare ProgramVector create/edit/compare ProgramWill take a vector list and expand itWill take a vector list and expand itWill take the results of simulation and Will take the results of simulation and compare to its own generated resultscompare to its own generated resultsWill indicate where errors occurredWill indicate where errors occurredCapable of segmenting and parsing Capable of segmenting and parsing through long lines of binary data to through long lines of binary data to produce a readable, understandable produce a readable, understandable formatformat

2/7/07 15

Vector Program ExampleVector Program Example

2/7/07 16

Pattern ExpansionPattern Expansion

Expanded 18Expanded 18--bit Patternbit Pattern

110110110110110110 110111111111111111110110110110110110 110111111111111111011011011011011011 111111111111111111011011011011011011 111111111111111111000000000000000000 001011111111111111000000000000000000 001011111111111111101101101101101101 110111111111111111101101101101101101 110111111111111111111111111111111111 110101010101010101111111111111111111 110101010101010101111111111111111111 011010101010101010111111111111111111 011010101010101010001111111111111101 110101010101010101001111111111111101 110101010101010101001111111111111101 101010101010101011001111111111111101 101010101010101011111011011011011011 001011111111111111111011011011011011 001011111111111111110110110110110110 101010101010101010110110110110110110 101010101010101010

Minimum 10 vector set for 16Minimum 10 vector set for 16--bit Patternbit Pattern

1101101101101101 11011111111111111101101101101101 11011111111111110110110110110110 11111111111111110110110110110110 11111111111111110000000000000000 00101111111111110000000000000000 00101111111111111011011011011011 11011111111111111011011011011011 11011111111111111111111111111111 11010101010101011111111111111111 11010101010101011111111111111111 01101010101010101111111111111111 01101010101010100011111111111101 11010101010101010011111111111101 11010101010101010011111111111101 10101010101010110011111111111101 10101010101010111110110110110110 00101111111111111110110110110110 00101111111111111101101101101100 10101010101010101101101101101100 1010101010101010

2/7/07 17

Array Multiplier Array Multiplier TestTest AlgorithmAlgorithm10 vectors total for C628810 vectors total for C628818x1818x18--bit array multiplier resultsbit array multiplier results

≈≈ 95%95%Pattern expansion requiredPattern expansion required

To go from 16x16To go from 16x16--bit for C6288 to 18x18bit for C6288 to 18x18--bit fro DSPbit fro DSP

Booth multiplier resultsBooth multiplier results≈≈ 37% with carry37% with carry--looklook--ahead implementationahead implementation≈≈ 62% with carry62% with carry--save implementationsave implementation

Booth multiplier models may have had bugsBooth multiplier models may have had bugs

Array multiplier test vectors do not test Booth Array multiplier test vectors do not test Booth multipliermultiplier

2/7/07 18

Booth Multiplier Test AlgorithmBooth Multiplier Test Algorithm

Uses an 8Uses an 8--bit counter or bit counter or LFSRLFSRIs based on pseudoIs based on pseudo--exhaustive testingexhaustive testingReported to provide Reported to provide >99% fault coverage on >99% fault coverage on any size Nany size N--bit modified bit modified Booth multiplierBooth multiplier

2/7/07 19

Test PatternsTest Patterns0000 0000 00000000 00000000 00000000 00000000 000000000001 0001 00010001 00010001 00010001 00010001 000100010010 0010 00100010 00100010 00100010 00100010 001000100011 0011 00110011 00110011 00110011 00110011 001100110100 0100 01000100 01000100 01000100 01000100 010001000101 0101 01010101 01010101 01010101 01010101 010101010110 0110 01100110 01100110 01100110 01100110 011001100111 0111 01110111 01110111 01110111 01110111 011101111000 1000 10001000 10001000 10001000 10001000 100010001001 1001 10011001 10011001 10011001 10011001 100110011010 1010 10101010 10101010 10101010 10101010 101010101011 1011 10111011 10111011 10111011 10111011 101110111100 1100 11001100 11001100 11001100 11001100 110011001101 1101 11011101 11011101 11011101 11011101 110111011110 1110 11101110 11101110 11101110 11101110 111011101111 1111 11111111 11111111 11111111 11111111 11111111

Groupings of 4Groupings of 4--bitsbitsAllows for recode circuitry to Allows for recode circuitry to be symmetrically alignedbe symmetrically aligned

X2i+1X2i X2i-1 Sign One Two Operation0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0 0 0

0 1 0

0 1 0

0 0 1

1 0 1

1 1 0

1 1 0

1 0 0

+0Y

+1Y

+1Y

+2Y

-2Y

-1Y

-1Y

-0Y

Recode Results

2/7/07 20

Modified Booth MultiplierModified Booth Multiplier

r

pp

A0

A1

A2

A3

A4

A5

A6A7

r

pp pp pp pp

pp pp pp pp pp

r

pp pp pp pp pp

r

pp pp pp pp pp

3,0 3,1 3,2 3,3

2,0 2,1 2,2 2,3

1,0 1,1 1,2 1,3

0,0 0,1 0,2 0,3

B0 B1 B2 B3

00 00

00000000

00010001

00100010

11111111

00000000

1

00000

0

0 0

0 0

0 0

0 0

0

0 0 00 0

00010001

1

1

0

2/7/07 21

Modified Booth MultiplierModified Booth Multiplierr

pp

A0

A1

A2

A3

A4

A5

A6A7

r

pp pp pp pp

pp pp pp pp pp

rpp pp pp pp pp

rpp pp pp pp pp

3,0 3,1 3,2 3,3

2,0 2,1 2,2 2,3

1,0 1,1 1,2 1,3

0,0 0,1 0,2 0,3

B0 B1 B2 B300 0100010001

00000

1

0 0

0 0

0 0

0 0

0

1 0 00 0

0000000001

00000

00001

000000010001

2/7/07 22

Booth Multiplier Booth Multiplier TestTest AlgorithmAlgorithmTried two algorithmsTried two algorithms

256 vectors total for 4256 vectors total for 4--bit groupingbit grouping88--bit counterbit counter

64 vectors total for 364 vectors total for 3--bit groupingbit grouping66--bit counterbit counter

18x1818x18--bit array multiplier resultsbit array multiplier results≈≈ 99.99%99.99%1 undetected fault1 undetected fault

Booth multiplier resultsBooth multiplier results≈≈ 70%70% with carrywith carry--looklook--ahead implementationahead implementation≈≈ 90%90% with carrywith carry--save implementationsave implementation≈≈ 90%90% with ripplewith ripple--carry implementationcarry implementation

Undetected faults primarily in recode circuitryUndetected faults primarily in recode circuitryBooth multiplier models may have had bugsBooth multiplier models may have had bugs

Booth multiplier test vectors do test Array multiplier Booth multiplier test vectors do test Array multiplier

2/7/07 23

Planned TPG DevelopmentPlanned TPG DevelopmentContinue debugging gateContinue debugging gate--level multiplierlevel multiplierIncorporate multiplier into the DSP model Incorporate multiplier into the DSP model Validate and debug gateValidate and debug gate--level DSP design level DSP design by comparing to VHDL/by comparing to VHDL/VerilogVerilog simulation simulation resultsresultsSimilar TPG development for 3Similar TPG development for 3--input input adder/adder/subtractorsubtractor in DSPin DSPAdditional test patterns for remaining logic Additional test patterns for remaining logic in DSPin DSP

If not tested by multiplier and adder/If not tested by multiplier and adder/subtractorsubtractortest algorithmstest algorithms

2/7/07 24

SummarySummaryCompared previously proposed test algorithms Compared previously proposed test algorithms forfor

Array multipliers Array multipliers -- small vector setsmall vector setModified Booth multiplier Modified Booth multiplier -- larger but reasonable larger but reasonable vector setvector set

Array multiplier test vectors do poor job of Array multiplier test vectors do poor job of testing Booth multipliertesting Booth multiplierBooth multiplier test vectors do good job of Booth multiplier test vectors do good job of testing multiplierstesting multipliers

Independent of implementationIndependent of implementation

Similar approach should feasible for Similar approach should feasible for development of TPG for 48development of TPG for 48--bit adder/bit adder/subtractorsubtractor