CMOS Testing
CMOS Testing
12/03/24
VLSI Design
Outline
Introduction
Testing
Logic Verification
Silicon Debug
Manufacturing Test
Fault Models
Observability and Controllability
Design for Test
Scan
BIST
Boundary Scan
12/03/24
Definition of Testing
A known input stimulus is applied to
a unit in a known state, and a known
response can be evaluated.
12/03/24
VLSI Realization Process
Customer’s need
Determine requirements
Write specifications
Test development
Fabricatio
n
Manufacturing test
Chips to customer
12/03/24
Chip photo
SoC Flash Memory
12/03/24
24/12/03 System Arch 2008 (Fire Tom Wada)
FAULTS
If anything can go
wrong, it will.
Murphy’s Law
Testing
Testing is one of the most expensive parts of
chips
Logic verification accounts for > 50% of design
effort for many chips
Debug time after fabrication has enormous
opportunity cost
Shipping defective parts can sink a company
12/03/24
Logic Verification
Does the chip simulate correctly?
Usually done at HDL level
Verification engineers write test bench for
HDL
Can’t test all cases
Ex: 32-bit adder
Test all combinations of corner cases as
inputs:
0, 1, 2, 231-1, -1, -231, a few random numbers
Good tests require ingenuity
12/03/24
Silicon Debug
Test the first chips back from fabrication
If you are lucky, they work the first time
If not…
Logic bugs vs. electrical failures
Most chip failures are logic bugs from inadequate
simulation
Some are electrical failures
Crosstalk
Dynamic nodes: leakage, charge sharing
Ratio failures
A few are tool or methodology failures (e.g. DRC)
Fix the bugs and fabricate a corrected chip
12/03/24
Think about testing from the
beginning
Simulate as you go
Plan for test after fabrication
12/03/24
Defects
Defects: physical problems that occur in
silicon
Common Silicon CMOS defects:
Gate-oxide shorts
Insufficient doping
12/03/24
Defects
12/03/24
• Teradyne A575 Tester
12/03/24
LTX FUSION HF ATE
12/03/24
Verification vs. Test
Verification Test
• Verifies correctness of • Verifies correctness of
design. manufactured hardware.
• Performed by • Two-part process:
simulation, formal – 1. Test generation: software
methods. process executed once during
• Performed once prior to design
manufacturing. – 2. Test application: electrical
tests applied to hardware
• Responsible for quality
• Test application performed on
of design.
every manufactured device.
• Responsible for quality of devices.
12/03/24
Testing Procedure:
• Apply input vectors one at a time
• Examine each resulting output vector
– Compare value to "known good" value
– If different, chip is faulty
• Native approach to testing:
– Use all possible input vectors (2n for n inputs)
– Impractical for all but very small circuits
• Alternative approach:
– Model things that can go wrong in design as faults
– Find test vectors that expose faults
– Find shortest set of vectors that expose all faults
12/03/24
Why Test at the Chip
Level?
Rule of Thumb: A test escape at
one level of packaging costs ten
times more to detect at the next
higher level of packaging.
12/03/24
20
Main Difficulties in Testing
• Miniaturization Physical access
difficult or impossible.
• Increasing complexity Large
amount of test data.
• Number of access ports remains
constant Long test application
time.
• Testing accounts up to 50% of
product development efforts.
12/03/24
Main Difficulties in Testing (Cont..)
• VLSI circuits are difficult to test due to their
inherent complexity and pin limitations
12/03/24
23
Testing Challenges (2)
12/03/24
24
Testing Challenges (3)
• Inadequate Fault Modeling
– A new technology (e.g. when going from 90
nm to 65 nm feature size) can introduce
new types of likely defects that are not
modeled by the existing fault models
12/03/24
25
Testing Goals
• High coverage of real defects
• Short testing time
• Easy test generation
• Fault diagnosis
• Design for testability (DFT) makes it easier
to produce high-quality tests
• Built-in self-test (BIST)
12/03/24
26
Tools for Testing
• Automatic Test Pattern Generation (ATPG)
– Searches for a test for every possible fault
– Attempts to minimize total number of vectors
• Fault Simulator
– Simulates response of faulty circuit to a set of test
vectors
– Measures fault coverage for a given set of test vectors
• Design-for-Testability, Built-In Self Test
– Ways to make testing easier, especially for sequential
circuits
– More about these later
12/03/24
Fault Coverage
• Used as measure of test quality
Detected Faults
Fault Coverage
Number of Faults
12/03/24
Testing Categories
• Functionality tests
– Done at each level of hierarchy (software+model)
Higher levels of abstraction faster
– Use diagnostic reasoning to find the bug
• Manufacturing tests
– Performed on the final product (wafer or package)
– Transistor-level simulation and testing
– “Are there any disconnected wires?”
“Any layer-to-layer shorts?”
“Is the product tolerant to Vdd variations?”
12/03/24
Manufacturing Test
• A speck of dust on a wafer is sufficient to kill chip
• Yield of any chip is < 100%
– Must test chips after manufacturing before delivery to
customers to only ship good parts
• Manufacturing testers are
very expensive
– Minimize time on tester
– Careful selection of
test vectors
12/03/24
The Chip Testing Process
Test
Responses R Comparator Pass: R=R’
Fail: otherwise
Unit R’
Under Expected
Responses
Test Test
Patterns T
(UUT) Tests
ATE
Test
Responses R Comparator Pass: R=R’
Fail: otherwise
R’
Expected
UUT Responses
Test
Patterns T
Tests
ATE
12/03/24
36
Design for Testability (DFT)
ATE
12/03/24
37
Self Testing
Built-in self test (BIST)
Chip itself generates test vectors (internally)
Dedicated sub-circuit to generate pseudo-random
test vectors
Use “linear feedback shift register (LFSR)” to
12/03/24
DFT Approaches
Ad Hoc Design Rules
• Control/test point insertion
• Circuit restructuring, e.g. feedback control
• Special timing considerations
12/03/24
39
Fault Models
Faults
12/03/24
Fault Models - Stuck-at-0/1
• Assume that every fault forces a gate output to be
– Always zero - stuck-at-0
– Always one - stuck-at-1
• Testing procedure: for each node in a design
– Assume that node is S-A-0
– Find a test that reveals this fault
– Assume this node is S-A-1
– Find a test that reveals this fault
– For each circuit node
• One test vector may detect more than one fault!
12/03/24
Stuck-At Faults in Gates
12/03/24
NAND NOR
Testing Simple Gates for Stuck-At Faults
12/03/24
Fault Models
Stuck-at covers most of the faults
Shown: short (,), open ()
Z , : x1 sa1
x1
: x1 sa0 or
x3 x2 sa0
x2
Fault simulation
Determine minimal test vectors that will sensitize circuit to
the fault
Simulates correct network in parallel with faulty networks
12/03/24
PRSG (Pseudo-Random Sequence
Generator)
Linear Feedback Shift Register
Step Q
0 111
1
CLK
2
Q[0] Q[1] Q[2]
F lo p
F lo p
F lo p
D D D 3
4
5
6
7
12/03/24
PRSG
Linear Feedback Shift Register
Shift register with input taken from XOR of state
Step Q
CLK
0 111
Q[0] Q[1] Q[2]
1 110
F lo p
F lo p
F lo p
D D D
2
3
4
5
6
7
12/03/24
PRSG
Linear Feedback Shift Register
Shift register with input taken from XOR of state
Step Q
CLK
0 111
Q[0] Q[1] Q[2]
1 110
F lo p
F lo p
F lo p
D D D
2 101
3
4
5
6
7
12/03/24
PRSG
Linear Feedback Shift Register
Shift register with input taken from XOR of state
Step Q
CLK
0 111
Q[0] Q[1] Q[2]
1 110
F lo p
F lo p
F lo p
D D D
2 101
3 010
4
5
6
7
12/03/24
PRSG
Linear Feedback Shift Register
Shift register with input taken from XOR of state
CLK Step Q
Q[0] Q[1] Q[2] 0 111
F lo p
F lo p
F lo p
D D D
1 110
2 101
3 010
4 100
5
6
7
12/03/24
PRSG
Linear Feedback Shift Register
Shift register with input taken from XOR of state
Step Q
CLK
0 111
Q[0] Q[1] Q[2]
1 110
F lo p
F lo p
F lo p
D D D
2 101
3 010
4 100
5 001
6
7
12/03/24
PRSG
Linear Feedback Shift Register
Shift register with input taken from XOR of state
Pseudo-Random Sequence Generator
Step Q
CLK 0 111
Q[0] Q[1] Q[2] 1 110
D D D
F lo p
F lo p
F lo p
2 101
3 010
4 100
5 001
6 011
7
12/03/24
PRSG
Linear Feedback Shift Register
Shift register with input taken from XOR of state
Step Q
CLK 0 111
Q[0] Q[1] Q[2] 1 110
F lo p
F lo p
F lo p
D D D
2 101
3 010
4 100
5 001
6 011
7 111
12/03/24
(repeats)
Test Vector Generation: Path
Sensitization
Work forward and backward from node of interest to determine
values of inputs to test for fault
Select a path from the circuit inputs through the site of the fault to
an output, the path is sensitized if the inputs to the gates along the
path are set so as to propagate the value at the fault site
Determine the primary inputs that will produce the required values
at the gate inputs as determined above
[©Hauck]
12/03/24
Automatic Test Pattern
Generation
Eases generation of
test vectors.
Reduces cost of test
More efficient test
vectors
Reduction in cycle time
Provides a
deterministic quality
metric.
12/03/24
ATPG
no error error
0
0/1
0 1/0 1/0
1 1
1
12/03/24
Path Sensitization Example
Trigger the fault
Make it propagate to output
sa0
1
Fault enabling 1 1
1 Out
1
Fault propagation 1 0
0
[©Prentice Hall]
12/03/24
Level Sensitive Scan Design
(LSSD)
Known as scan-based test
Scan path (shift register) links all state elements in circuit
Observe and control all states
Requires 3 extra pins and a bit more logic in FFs
All tests become combinational
Very slow — shift in test vector and shift out output
vector serially — partial scan
paths only use necessary amount
Easy to extend to system level
[©Hauck]
12/03/24
Using Scan Design
12/03/24
Scan Flip-Flop
Scan-out
Scan-out Din 0
Din
Dout D Q Dout
Scan-in Scan-in 1
Q Q
Test
Test
Clock Q
Clock
12/03/24
Scan design
12/03/24
Scan Based Test
ScanIn ScanOut
Out
Register
Register
In Combinational Combinational
Logic Logic
A B
Test
1
2
Scan In
Scan
Out
Latch Latch Latch Latch
12/03/24
Limitations of a single serial scan
chain
For chips with a large number of flop-flops, serial
shifts can take a quite long time.
Hence, it becomes necessary to provide several
scan chains.
Trying to avoid serial shifts by generating test
patterns internally and by also storing the
results internally.
Compaction of circuit response in a signature.
Shifting the entire result out becomes obsolete,
we just shift out the signature.
12/03/24
Signature analysis
Test
Responses R Comparator Pass: R=R’
Fail: otherwise
Unit R’
Expected
Under Responses
Test
Test Patterns T
Tests
BIST Logic
Chip Boundary
12/03/24
70
Built-In Self-Test (BIST)
Self-test logic, consisting of pattern generator, response analyzer & test manager, is built into the chip.
The test manager executes the self-test and accumulates its result for transmission to an an external pin or higher
package-level test manager.
System
Board Chip
Test
Manager
Test
Manager
Test
Manager Pattern Response
CUT
Generator Analyzer
12/03/24
71
Built-In Self Test (BIST)
Goal: provide limited testing within the chip
itself
Typical approach: use Linear Feedback Shift
Register (LFSR)
Structure: shift register with exclusive-OR
feedback
"Pseudo-random" state sequence
D Q D Q D Q D Q
12/03/24
BIST (cont'd)
Applications of LFSRs
Generate pseudo-random test vectors
for self-test
Use as signature analyzer to
compress output vectors
TEST INPUT
D Q D Q D Q D Q
CLK
12/03/24
BIST (cont'd)
Applications of LFSRs
Generate pseudo-random test vectors for self-
test
Use as signature analyzer to compress output
LFSR
vectors
Signature Analyzer
12/03/24
BIST: Signature Analysis
Compress the output vector
Time compression (count # of transitions)
In
Counter
[©Prentice Hall]
12/03/24
BIST Hardware Structures
Response
Pattern Generators: Compressor:
LFSR XOR Trees
Binary Counter -Level Counter
XOR Trees Transition Counter
12/03/24
76
Replacing serially shifted test pattern
by pseudo random test patterns
Shifting in test patterns can be avoided if we generate
(more or less) all possible test patterns internally with a
pseudo-random test pattern generator.
connections
Scan-in
Normal
si so
Scan-out
scan path
Bonding Pad
12/03/24
[©Prentice Hall]
JTAG (Boundary scan)
12/03/24
JTAG (Boundary scan) (2)
Defines method for setting up a scan chain on a PCB
Source: http://www.jtag.
com/brochure.php
12/03/24
The TAP Signals
12/03/24
Top-Level View of the TAP Controller
12/03/24
12/03/24
Linear-Feedback Shift Register (LFSR)
R R R
S0 S1 S2
1 0 0
0 1 0
1 0 1
1 1 0
1 1 1
0 1 1
0 0 1
1 0 0
12/03/24
Built-in Logic Block Observation (BILBO)
D0 D1 D2
B0
B1
ScanOut
ScanIn
R R R
S0 S1 S2
B0 B1 Operation mode
1 1 Normal
0 0 Scan
1 0 Pattern generation or signature analysis
0 1 Reset [©Prentice Hall]
12/03/24
BILBO – Pattern Generation
D0=1 D1=1 D2 =1
B0=1
B1=0
ScanOut
ScanIn
R R R
S0 S1 S2
B0 B1 Operation mode
1 0 Pattern generation or signature analysis
12/03/24
BILBO – Pattern Generation vs.
Signature Analysis
In addition to the BILBO circuit shown in two slides ago,
you may need some extra logic
(e.g., multiplexers) that send either Di’s or 1’s
Pattern generation
simple LFSR
Signature analysis
Complex
But we can simulate and predict the correct values
12/03/24
BILBO Application
Scan in
BILBO 1
BILBO 2
BILBO 3
BILBO 4
BILBO 5
in out
Comb Comb Comb Comb
Logic 1 Logic 2 Logic 3 Logic 4
Scan out
Operation:
Seed sent in using the scan chain
Even BILBOs operate in pattern gen mode, odd ones in signature
analysis
After a complete cycle (or desired # of cycles), odd BILBO values
read through scan out
The same process repeats, this time with even BILBOs in
12/03/24
Typical application
DUT-1
DUT-1 DUT-2
DUT-2
Bilbo-1 (generates
Bilbo-1 (generates Bilbo-2
Bilbo-2
pseudo-random
pseudo-random test (compresses
(compresses
patterns) response)
test patterns) response)
12/03/24
Self-test
(Sub)-Circuit
Test
Test Controller
12/03/24
References
1. Principles of CMOS VLSI Design -
Weste and Eshraghian, Pearson
Education,
2. Digital Integrated Circuits - John M.
Rabaey, PHI,
3. Essentials of VLSI circuits and
systems – Kamran Eshraghian,
Eshraghian Dougles and A. Pucknell,
12/03/24
Thank You
………………
12/03/24
12/03/24
12/03/24
If you are successful, it is because some
where, some time, someone gave you a life
or an idea that started you in the right
direction. ...
Remember that you are indebted to life until
you help some less fortunate person, just
as you were helped…..
------
12/03/24
How do we guard the sense of value?
We can do so by three things..