VLSI Design Verification and Testing Overview
Motivation and introduction
Functional Testing Structure independent approach
Structure dependant approach
Organization/architecture dependant
approach
Microprocessor testing
Mohammad Tehranipoor Memory testing
Electrical and Computer Engineering Summary
University of Connecticut
1 2
Motivation and Introduction Structure independent approach
Ref: Abramovici, et. Al Reference book Section Combinational circuit testing
18.2 of the text (for understanding the problem) Exhaustive testing of circuits that do not have
Motivation very large number of inputs
Structural information can facilitate testing we show Note: if a fault can cause the circuit to behave
this for combinational and sequential circuits like a circuit with states (i.e. causes increase
Organization/Architecture information can make testing in the number of states combinational circuit
of microprocessors and memories practical becomes sequential in nature) then exhaustive
Develop fault models when we are to use this kind of testing may not fully test the circuit. Example
information of such a fault is stuck-open fault in a CMOS
implementation
3 4
Structure independent approach Structure independent approach
Combinational circuit testing (contd.)
Combinational circuit testing (contd.)
A non-exhaustive functional test must be A fully specified test can potentially be (the one that
carefully designed otherwise it may not repeats values in the test) as follows:
achieve the desired objective. Consider a 2-to-
S A B D
1 mux. A non-exhaustive functional test is
given below: 0 0 0 0 A
A D
S A B D 0 1 1 1 B
D
0 0 x 0 B 1 0 0 0
S
0 1 x 1 S 1 1 1 1
1 x 0 0 Exhaustive = 8 patterns This test cannot test stuck-at fault on the control line S
1 x 1 1 Non-exhaustive = 6 patterns
5 6
1
Structure independent approach Structure dependent approach
Sequential circuit testing
An example of this method and its limitations Combinational circuit testing
has been discussed in detail in the checking Structure can potentially provide the
experiment approach to testing information about dependence of outputs on
inputs. This leads to two methods of structure
dependent functional testing
Pseudo-exhaustive testing
Sensitized partition testing
7 8
Structure dependent approach Structure dependent approach
Pseudo-exhaustive testing Sensitized partition testing
The circuit will require 128 A B C D E F G Testing an ALU control signals are determined
patterns for exhaustive and applied in such a way that each smaller part
testing (say 4-bit ALU) is exhaustively tested
Function description may not An example from the book by Abramovici et. al.
tell us the dependence of the
output on partial input set
Both f1 and f2 can be tested
exhaustively with 16 pattern
each, thus requiring a total of
32 patterns f1 f2
9 10
Structure dependent approach Organization/architecture dependent approach
Sequential circuit testing
Testing iterative logic arrays In many cases architecture and/or
Machine partitioning approach to testing organization information is available and
Substantial literature in this area but has not been
applied to real application of today such information can be used to facilitate
An example testing of Shift Register testing. We will show two applications of
A simple test 0 1 1 0 0 x x x x x can test this approach.
the shift register completely. This test is often
used in testing scan chains; to be discussed
under DFT and BIST methods
11 12
2
Microprocessor testing Microprocessor testing
Basic concept
References Need to develop test programs that can be
Reference book Abramovici et. Al. executed on the processor
Thatte and Abraham, Test generation of Need an open loop strategy to force instructions in
microprocessors, IEEE Transactions on the order we wish to execute e.g. after a jump
Computers, June 1980, pp. 429-441 instruction we may wish to execute an instruction
from an address different from the address
provided by jump instruction
Develop a model (or models) for faults in different
organizational sub-units of the microprocessor
13 14
Microprocessor testing Microprocessor testing
What do we know? Method
Different sub-units Test each instruction
Register file, bus, ALU, memory (cache), Test each sub-unit such as ALU
How instructions are executed Test busses
How data moves from one sub-unit to other sub- Test register file and decoders
units Test sequencing of instructions
Data movement from and to the external world Key Concept
Sequencing and timing Start small test components and instructions that are
Number of clocks, atomic and semi-atomic actions, small and easy to test and then use the tested parts to
e.g. PUSH causes increment PC, send SP as test other parts
address, send register as data, increment SP, etc.
15 16
Microprocessor testing Microprocessor testing
Model development Fault model development
Busses: stuck-at and bridging faults
Determine which instructions are easy to execute
such as those that use fewest resources, fewest cycles ALU: stuck-at (assume that the structural information
easy to control and observe (graph model) is available)
Use such instructions to read and write register file to Register file: stuck-at, arbitrary decoder failure this
test register file(s) and address decoding logic will use similar fault model and tests as used for
testing memories
Test busses by moving different types of data on
busses Instruction decoder:
Test ALU by executing ALU related instructions such as No instruction is executed (Ij/)
ADD, SUB, Different instruction is executed (Ij/Ik)
An additional instruction is also executed (Ij/Ij+Ik)
17 18
3
Microprocessor testing Microprocessor testing
Results (case study on an 8-bit HP processors)
Algorithm development
Program size 1K FC about 90%
Develop simple sub-programs for each sub- Additional complexities introduced in the test program (8K
unit testing program) raised the coverage by 6%
Put them together Other faults were associated with the power-up logic,
initialization, interrupts, (hard to test by functional tests)
Testing jumps and call will require
Limitations
intervention of tester open loop strategy of Lack of good and practical model of modern microprocessors
testing microprocessor Automating the program generation difficult and
impractical
Structural methods with the use of DFT provide better
coverage with fewer test vectors
19 20
Memory testing Summary
Basic reasoning
Logic design methods may not be applicable
Special design methods
Described structure independent and structure
Not designed using logic gates dependent methods of testing logic
Cutting edge technology Microprocessor testing using organization
High density
Novel and non-traditional design methods and layout information model, fault model, test
Can be stand alone or embedded algorithms, results and limitations
Need to develop Memory testing it needs
Fault model
Test algorithms Model, fault model and test algorithms to be
discussed next
21 22