EE141 System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 1 Chapter 11 Chapter 11 Software Software - - Based Self Based Self - - Testing Testing
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 1
Chapter 11Chapter 11
SoftwareSoftware--Based SelfBased Self--TestingTesting
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 2
SoftwareSoftware--Based SelfBased Self--TestingTesting
�Introduction
�Software-based Self-Testing Paradigm
�Processor functional fault self-testing
�Processor structural fault self-testing
�Processor self-diagnosis
�Testing global interconnect
�Testing nonprogrammable cores
�Instruction-level DFT
�DSP-based AMS component testing
�Concluding remarks
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 3
Fabrication versus Test CapitalFabrication versus Test Capital
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 4
Test Paradigm ShiftTest Paradigm Shift
�Functional testing
�Structural testing
�BIST
• Embedded hardware tester
• Area, performance, design overhead
• Limited at-speed testing
�SBST
• Embedded software tester
• Use self-tested memory and processor to test
other on-chip components
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 5
SoftwareSoftware--Based SelfBased Self--TestingTesting
�Introduction
�Software-based Self-Testing Paradigm
�Processor functional fault self-testing
�Processor structural fault self-testing
�Processor self-diagnosis
�Testing global interconnect
�Testing nonprogrammable cores
�Instruction-level DFT
�DSP-based AMS component testing
�Concluding remarks
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 6
A SoftwareA Software--Based SelfBased Self--Testable SoCTestable SoC
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 7
SelfSelf--Test FlowTest Flow
�Memory self-testing
�Processor self-testing
�Global interconnect testing
�Testing nonprogrammable cores
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 8
SBST vs. BISTSBST vs. BIST
�BIST places the system in nonfunctional
mode
�SBST handles testing as an application
• Minimized DFT circuitry
• Reduce external tester performance requirement
• Greater test accuracy
• Excessive test power and overkill problems
eliminated
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 9
SoftwareSoftware--Based SelfBased Self--TestingTesting
�Introduction
�Software-based Self-Testing Paradigm
�Processor functional fault self-testing
�Processor structural fault self-testing
�Processor self-diagnosis
�Testing global interconnect
�Testing nonprogrammable cores
�Instruction-level DFT
�DSP-based AMS component testing
�Concluding remarks
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 10
Processor ModelProcessor Model
�RTL level
�System-graph (S-graph)
• Node: a register that can
be explicitly modified by
an instruction
• Edge: data flow
between registers
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 11
Node LabelingNode Labeling
�assign label 0 to OUT
�K = 0
�while there exists unlabeled nodes
• Assign K+1 to unlabeled nodes whose contents can be transferred to any register(s) labeled K by
executing a single class T or B instruction
• K = K + 1
�end while
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 12
Edge LabelingEdge Labeling
�Edges of an instruction that reads a register
to OUT are labeled 1
�A instruction’s edges are labeled K+1 if its
destination register is labeled K
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 13
FunctionalFunctional--Level Fault ModelsLevel Fault Models
�Register decoding fault
�Instruction decoding and control fault
�Data storage fault
�Data transfer fault
�Data manipulation fault
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 14
Test Generation ProceduresTest Generation Procedures
�Utilize the S-graph and the node/edge labels
to facilitate test generation
�The knowledge gained from edges and
nodes with lower labels is utilized in
generation tests for those with higher labels
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 15
Test Generation ComplexityTest Generation Complexity
�nR: number of registers
�nI: number of instructions
�Register decoding fault
• O(nR3)
�Instruction decoding and control fault
• O(nI2) if the instruction labels do not exceed 2.
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 16
SoftwareSoftware--Based SelfBased Self--TestingTesting
�Introduction
�Software-based Self-Testing Paradigm
�Processor functional fault self-testing
�Processor structural fault self-testing
�Processor self-diagnosis
�Testing global interconnect
�Testing nonprogrammable cores
�Instruction-level DFT
�DSP-based AMS component testing
�Concluding remarks
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 17
Test FlowTest Flow
�Test preparation
• One major challenge is extraction of instruction-
imposed I/O constraints
�Self-testing
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 18
PARWAN SHU I/O and PARWAN SHU I/O and
An Example Test Application SequenceAn Example Test Application Sequence
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 19
SHU Input Spatial ConstraintsSHU Input Spatial Constraints
Control Inputs Flag Inputs Data Inputs
asl asr v c z n s (data_in[7]) data_in[6:0]
lda 0 0 0 0 data_in≡ 0 s X X
and 0 0 0 0 data_in≡ 0 s X X
add 0 0 c⊕s X data_in≡ 0 s X X
sub 0 0 c⊕s X data_in≡ 0 s X X
asl 1 0 0 0 data_in≡ 0 s X X
asr 0 1 0 0 data_in≡ 0 s X X
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 20
SHU Temporal ConstrainSHU Temporal Constrain
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 21
Constrained Component Test GenerationConstrained Component Test Generation
�I = IC; F = FC; VC = Φ; TC = Φ;
�while I≠Φ and F ≠Φ
• pick i from I;
• if not Vi,C⊆ VC
– (Ti,C, Fdet) = constrainedTG(F, Vi,C);
– TC = TC∪ Ti,C;
– F = F - Fdet;
– VC = VC∪ Vi,C;
• end if
• I = I - { i };
�end while
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 22
Component Tests for PARWAN ALUComponent Tests for PARWAN ALU
Test Pattern
alu_code in_1 in_2
lda 100 (1111 1111,0110 0011,82) ZZZZ ZZZZ
sta 110 ZZZZ ZZZZ (1111 1111,0110 0011,82)
cma 001 ZZZZ ZZZZ (1111 1111,0110 0011,35)
and 000 (1111 1111,0110 0011,98): odd (1111 1111,0110 0011,98): even
sub 111 (1111 1111,0110 0011,24): odd (1111 1111,0110 0011,24): even
add 101 (1111 1111,0110 0011,26): odd (1111 1111,0110 0011,26): even
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 23
Test Program for Observing ALU OutputsTest Program for Observing ALU Outputs
lda addr(y) // load
add addr(x)
sta data_out // store AC
lda 11111111
brav ifv // branch if overflow
and 11110111
label ifv brac ifc // branch if carry
and 11111011
label ifc braz ifz // branch if zero
and 11111101
label ifz bran ifn // branch if negative
and 11111110
label ifn sta flag_out
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 24
Processor SelfProcessor Self--TestingTesting
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 25
VCCVCC--Based Test Program Synthesis FlowBased Test Program Synthesis Flow
� M = partitioning();
� T = extractTemplate();
� foreach m∈ M
• Tm = rankTemplate();
• while Tm≠ ϕ or fault coverage not acceptable
– t = highest ranked template in Tm;
– F = deriveMappingFunction(t,m);
– generateVCC();
– Pm,t = constrainedTG();
– processor-level fault simulation;
– Tm = Tm - { t };
• end while
� end foreach
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 26
Test Generation Using VCCsTest Generation Using VCCs
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 27
A Test Program Synthesis ExampleA Test Program Synthesis Example
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 28
Functionally Untestable Delay FaultsFunctionally Untestable Delay Faults
�Faults for which no functional test exists
�In PARWAN, paths that start at S1 and end
at the inputs of IR or AC are functionally
untestable
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 29
PARWAN Datapath Constraints for thePARWAN Datapath Constraints for the
““NOP; add;NOP; add;”” SequenceSequence
A7-A0 B7-B0 S2-S0 IR AC
Cycle 1 V1A V1B 100 (NOP)
Cycle 2 V2A V1B 101 (add) Latch
Constraint X...X C...C OZR Care
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 30
Delay Fault Test Program Generation Delay Fault Test Program Generation
FlowFlow
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 31
Functional Random Instruction TestingFunctional Random Instruction Testing
�FRITS
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 32
SoftwareSoftware--Based SelfBased Self--TestingTesting
�Introduction
�Software-based Self-Testing Paradigm
�Processor functional fault self-testing
�Processor structural fault self-testing
�Processor self-diagnosis
�Testing global interconnect
�Testing nonprogrammable cores
�Instruction-level DFT
�DSP-based AMS component testing
�Concluding remarks
EE14133
System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 33
ChallengesChallenges
�Faults in functionality critical nodes tend to
fail all diagnostic programs
�A test program may activate multiple modules
�Some faults cannot be detected by SBST at
all
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 34
PrinciplesPrinciples
�Reduce the variety of instructions in each test
program
�Reduce the number of instructions in each
test program
�Create multiple copies of the same test
program to observe different outputs of the
target module
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 35
Diagnostic Test Program Generation FlowDiagnostic Test Program Generation Flow
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 36
SoftwareSoftware--Based SelfBased Self--TestingTesting
�Introduction
�Software-based Self-Testing Paradigm
�Processor functional fault self-testing
�Processor structural fault self-testing
�Processor self-diagnosis
�Testing global interconnect
�Testing nonprogrammable cores
�Instruction-level DFT
�DSP-based AMS component testing
�Concluding remarks
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 37
Maximum Aggressor Fault ModelMaximum Aggressor Fault Model
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 38
Data Bus TestingData Bus Testing
�Must be tested from both directions
�Vector 1
• Data may be from or to the processor
�Vector 2
• Test for target core to processor
– Processor reads from core
• Test for processor to target core
– Processor writes target core
– The written vector is read back for comparison
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 39
Address Bus TestingAddress Bus Testing
�Unidirectional
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 40
Functional MA TestingFunctional MA Testing
�Many of the MA faults can never occur during
normal system operations
�FMA tests meet the system constraints and
can be conducted while operating in the
functional mode
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 41
SoftwareSoftware--Based SelfBased Self--TestingTesting
�Introduction
�Software-based Self-Testing Paradigm
�Processor functional fault self-testing
�Processor structural fault self-testing
�Processor self-diagnosis
�Testing global interconnect
�Testing nonprogrammable cores
�Instruction-level DFT
�DSP-based AMS component testing
�Concluding remarks
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 42
Test FlowTest Flow
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 43
SoftwareSoftware--Based SelfBased Self--TestingTesting
�Introduction
�Software-based Self-Testing Paradigm
�Processor functional fault self-testing
�Processor structural fault self-testing
�Processor self-diagnosis
�Testing global interconnect
�Testing nonprogrammable cores
�Instruction-level DFT
�DSP-based AMS component testing
�Concluding remarks
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 44
InstructionInstruction--Level DFT ConceptLevel DFT Concept
�Inserts test circuitry into the design in the
form of test instructions
• Less intrusive than gate-level DFT
• More attractive for applying at-speed test and for
power/thermal management
�Reuse existing hardware as much as
possible to reduce area overhead
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 45
The Example ProcessorThe Example Processor
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 46
Testability InstructionsTestability Instructions
�s2r (move SR to Rn)
• Improve the observability of SR
• SR => ALU => C => Rn
�r2s (move A to SR)
• Improve the controllability of SR
• A => ALU => SR
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 47
� Read exception signals from Rn
• Allows the processor to set the values of the exception signals from
Rn
• Set T o 1. Then, R27 => controller
� Pipeline register access
• For the hard-to-control registers buried deeply embedded in the
pipeline
• Loading data from general purpose registers to B
EE14148
System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 48
Test Optimization InstructionsTest Optimization Instructions
�load2 (consecutive load to Ri and Rj)
• Reduce the test program size
�xor_all (signature computation)
• Perform a sequence of XOR operations on the
register file
• Reduce test program run time
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 49
SoftwareSoftware--Based SelfBased Self--TestingTesting
�Introduction
�Software-based Self-Testing Paradigm
�Processor functional fault self-testing
�Processor structural fault self-testing
�Processor self-diagnosis
�Testing global interconnect
�Testing nonprogrammable cores
�Instruction-level DFT
�DSP-based AMS component testing
�Concluding remarks
EE14150
System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 50
DSPDSP--Based BIST for AMS ComponentsBased BIST for AMS Components
�Utilize on-chip DSP resources to facilitate
stimulus generation and response analysis
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 51
SoftwareSoftware--Based SelfBased Self--TestingTesting
�Introduction
�Software-based Self-Testing Paradigm
�Processor functional fault self-testing
�Processor structural fault self-testing
�Processor self-diagnosis
�Testing global interconnect
�Testing nonprogrammable cores
�Instruction-level DFT
�DSP-based AMS component testing
�Concluding remarks
EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 52
�SBST has the potential to alleviate many
problems associated current structural BIST
techniques
�One major challenge is extracting functional
constraints imposed by the processor
instruction set
�Further research
• Automatic constraint extraction
• Generalized for AMS components