Introduction To Cmos Vlsi Design
Introduction To Cmos Vlsi Design
CMOS VLSI
Design
Lecture 17:
Design for Testability
David Harris
Outline
q Testing
Logic Verification
Silicon Debug
Manufacturing Test
q Fault Models
q Observability and Controllability
q Design for Test
Scan
BIST
q Boundary Scan
17: Design for Testability
Slide 2
Testing
q 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
q Example: Intel FDIV bug
Logic error not caught until > 1M units shipped
Recall cost $450M (!!!)
17: Design for Testability
Slide 3
Logic Verification
q Does the chip simulate correctly?
Usually done at HDL level
Verification engineers write test bench for HDL
Cant test all cases
Look for corner cases
Try to break logic design
q Ex: 32-bit adder
Test all combinations of corner cases as inputs:
0, 1, 2, 231-1, -1, -231, a few random numbers
q Good tests require ingenuity
17: Design for Testability
Slide 4
Silicon Debug
q Test the first chips back from fabrication
If you are lucky, they work the first time
If not
q 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)
q Fix the bugs and fabricate a corrected chip
17: Design for Testability
Slide 5
Shmoo Plots
q How to diagnose failures?
Hard to access chips
Picoprobes
Electron beam
Laser voltage probing
Built-in self-test
q Shmoo plots
Vary voltage, frequency
Look for cause of
electrical failures
17: Design for Testability
Slide 6
Shmoo Plots
q How to diagnose failures?
Hard to access chips
Picoprobes
Electron beam
Laser voltage probing
Built-in self-test
q Shmoo plots
Vary voltage, frequency
Look for cause of
electrical failures
17: Design for Testability
Slide 7
Manufacturing Test
q A speck of dust on a wafer is sufficient to kill chip
q Yield of any chip is < 100%
Must test chips after manufacturing before
delivery to customers to only ship good parts
q Manufacturing testers are
very expensive
Minimize time on tester
Careful selection of
test vectors
Slide 8
Slide 9
TestosterICs
q Ex: TestosterICs functional chip tester
Designed by clinic teams and David Diaz at HMC
Reads your IRSIM test vectors, applies them to
your chip, and reports assertion failures
Slide 10
Stuck-At Faults
q How does a chip fail?
Usually failures are shorts between two
conductors or opens in a conductor
This can cause very complicated behavior
q A simpler model: Stuck-At
Assume all failures cause nodes to be stuck-at
0 or 1, i.e. shorted to GND or VDD
Not quite true, but works well in practice
Slide 11
Examples
Slide 12
Slide 13
Slide 14
Test Example
SA1
q
q
q
q
q
q
q
q
SA0
A3
A2
A1
A0
n1
n2
n3
Y
n1
A3
A2
A1
Y
n2
n3
A0
q Minimum set:
17: Design for Testability
Slide 15
Test Example
q
q
q
q
q
q
q
q
A3
A2
A1
A0
n1
n2
n3
Y
SA1
{0110}
SA0
{1110}
n1
A3
A2
A1
Y
n2
n3
A0
q Minimum set:
17: Design for Testability
Slide 16
Test Example
q
q
q
q
q
q
q
q
A3
A2
A1
A0
n1
n2
n3
Y
SA1
{0110}
{1010}
SA0
{1110}
{1110}
n1
A3
A2
A1
Y
n2
n3
A0
q Minimum set:
17: Design for Testability
Slide 17
Test Example
q
q
q
q
q
q
q
q
A3
A2
A1
A0
n1
n2
n3
Y
SA1
{0110}
{1010}
{0100}
SA0
{1110}
{1110}
{0110}
n1
A3
A2
A1
Y
n2
n3
A0
q Minimum set:
17: Design for Testability
Slide 18
Test Example
q
q
q
q
q
q
q
q
A3
A2
A1
A0
n1
n2
n3
Y
SA1
{0110}
{1010}
{0100}
{0110}
SA0
{1110}
{1110}
{0110}
{0111}
n1
A3
A2
A1
Y
n2
n3
A0
q Minimum set:
17: Design for Testability
Slide 19
Test Example
q
q
q
q
q
q
q
q
A3
A2
A1
A0
n1
n2
n3
Y
SA1
{0110}
{1010}
{0100}
{0110}
{1110}
SA0
{1110}
{1110}
{0110}
{0111}
{0110}
n1
A3
A2
A1
Y
n2
n3
A0
q Minimum set:
17: Design for Testability
Slide 20
Test Example
q
q
q
q
q
q
q
q
A3
A2
A1
A0
n1
n2
n3
Y
SA1
{0110}
{1010}
{0100}
{0110}
{1110}
{0110}
SA0
{1110}
{1110}
{0110}
{0111}
{0110}
{0100}
n1
A3
A2
A1
Y
n2
n3
A0
q Minimum set:
17: Design for Testability
Slide 21
Test Example
q
q
q
q
q
q
q
q
A3
A2
A1
A0
n1
n2
n3
Y
SA1
{0110}
{1010}
{0100}
{0110}
{1110}
{0110}
{0101}
SA0
{1110}
{1110}
{0110}
{0111}
{0110}
{0100}
{0110}
n1
A3
A2
A1
Y
n2
n3
A0
q Minimum set:
17: Design for Testability
Slide 22
Test Example
q
q
q
q
q
q
q
q
A3
A2
A1
A0
n1
n2
n3
Y
SA1
{0110}
{1010}
{0100}
{0110}
{1110}
{0110}
{0101}
{0110}
SA0
{1110}
{1110}
{0110}
{0111}
{0110}
{0100}
{0110}
{1110}
n1
A3
A2
A1
Y
n2
n3
A0
Slide 23
Slide 24
Scan
CLK
Flop
Logic
Cloud
Flop
Logic
Cloud
Flop
Flop
Flop
Flop
Flop
outputs
Flop
inputs
Flop
Flop
Flop
Flop
q Contents of flops
can be scanned
out and new
values scanned
in
Flop
scan-in
scanout
Slide 25
Scannable Flip-flops
SCAN
SCAN CLK
(a)
SI
D
0
Flop
Q
SI
(b)
SCAN
SI
(c)
s
Slide 26
Built-in Self-test
q Built-in self-test lets blocks test themselves
Generate pseudo-random inputs to comb. logic
Combine outputs into a syndrome
With high probability, block is fault-free if it
produces the expected syndrome
Slide 27
PRSG
q Linear Feedback Shift Register
Shift register with input taken from XOR of state
Pseudo-Random Sequence Generator
Q[1]
Flop
Q[0]
Flop
Flop
CLK
Q[2]
Step
111
1
2
3
4
5
6
7
Slide 28
PRSG
q Linear Feedback Shift Register
Shift register with input taken from XOR of state
Pseudo-Random Sequence Generator
Q[1]
Flop
Q[0]
Flop
Flop
CLK
Q[2]
Step
111
110
2
3
4
5
6
7
17: Design for Testability
Slide 29
PRSG
q Linear Feedback Shift Register
Shift register with input taken from XOR of state
Pseudo-Random Sequence Generator
Q[1]
Flop
Q[0]
Flop
Flop
CLK
Q[2]
Step
111
110
101
3
4
5
6
7
17: Design for Testability
Slide 30
PRSG
q Linear Feedback Shift Register
Shift register with input taken from XOR of state
Pseudo-Random Sequence Generator
Q[1]
Flop
Q[0]
Flop
Flop
CLK
Q[2]
Step
111
110
101
010
4
5
6
7
17: Design for Testability
Slide 31
PRSG
q Linear Feedback Shift Register
Shift register with input taken from XOR of state
Pseudo-Random Sequence Generator
Q[1]
Flop
Q[0]
Flop
Flop
CLK
Q[2]
Step
111
110
101
010
100
5
6
7
17: Design for Testability
Slide 32
PRSG
q Linear Feedback Shift Register
Shift register with input taken from XOR of state
Pseudo-Random Sequence Generator
Q[1]
Flop
Q[0]
Flop
Flop
CLK
Q[2]
Step
111
110
101
010
100
001
6
7
17: Design for Testability
Slide 33
PRSG
q Linear Feedback Shift Register
Shift register with input taken from XOR of state
Pseudo-Random Sequence Generator
Q[1]
Flop
Q[0]
Flop
Flop
CLK
Q[2]
Step
111
110
101
010
100
001
011
7
17: Design for Testability
Slide 34
PRSG
q Linear Feedback Shift Register
Shift register with input taken from XOR of state
Pseudo-Random Sequence Generator
Q[1]
Flop
Q[0]
Flop
Flop
CLK
Q[2]
Step
111
110
101
010
100
001
011
111 (repeats)
Slide 35
BILBO
q Built-in Logic Block Observer
Combine scan with PRSG & signature analysis
D[0]
D[1]
D[2]
Q[0]
PRSG
Logic
Cloud
Flop
Flop
SI
Flop
C[0]
C[1]
Q[2] / SO
Q[1]
Signature
Analyzer
MODE
Scan
Test
Reset
Normal
C[1]
0
0
1
1
C[0]
0
1
0
1
Slide 36
Boundary Scan
q Testing boards is also difficult
Need to verify solder joints are good
Drive a pin to 0, then to 1
Check that all connected pins get the values
q Through-hold boards used bed of nails
q SMT and BGA boards cannot easily contact pins
q Build capability of observing and controlling pins into
each chip to make board test easier
Slide 37
CHIP B
CHIP C
CHIP A
CHIP D
Slide 38
Slide 39
Summary
q Think about testing from the beginning
Simulate as you go
Plan for test after fabrication
q If you dont test it, it wont work! (Guaranteed)
Slide 40