Professional Documents
Culture Documents
l15 Testing
l15 Testing
Krste, 3/16/05
L15 Testing
Krste, 3/16/05
L15 Testing
Krste, 3/16/05
L15 Testing
Verification Approaches
Impractical for large digital designs ($1M and several weeks per bug)
Required for some analog/mixed-signal chips as simulation models or
scale prototypes are not accurate enough (5-10 design spins common)
Simulation
Krste, 3/16/05
L15 Testing
Verification Mechanics
Test
Inputs
DUT
DUT
Outputs
Reference
Outputs
=?
Test
Pass/Fail
Testbench
Recommend that you do minimal possible in the Verilog/BSV
testbench (these are not powerful programming languages)
Use separate programs written in general purpose languages
(e.g., C++) to generate and check inputs and outputs.
6.884 Spring 2005
Krste, 3/16/05
L15 Testing
Test Input
Arch.
State
Test Output
Arch.
State
Krste, 3/16/05
L15 Testing
Checking Outputs
DUT
DUT
Outputs
Test
Inputs
Test
Pass/Fail
Checker
DUT
Test
Inputs
Optional
UTL
Golden
Model
DUT
Outputs
Test
Pass/Fail
Checker
Golden
Output
Krste, 3/16/05
L15 Testing
Types of Test
Krste, 3/16/05
L15 Testing
Recommended Approach
Krste, 3/16/05
L15 Testing
Cache
State
DRAM
Krste, 3/16/05
L15 Testing
10
Final sequence:
Load 0x2c; Store 0x10; Load 0x28; Load 0x10; Store 0x28
Krste, 3/16/05
L15 Testing
11
Cache
DUT
Outputs
DRAM
Test
Inputs
Checker
Golden
Output
Memory
Krste, 3/16/05
Test Pass/Fail
L15 Testing
12
Test Coverage
Krste, 3/16/05
L15 Testing
13
Manufacturing Defects
Wafers
MD2.002
PC
L15 Testing
14
TestIers
The device under test
(DUT) can be a site on
a wafer or a packaged
part.
data
return-to-one (RTO)
data
surround-by-complement (SBC)
6.884 Spring 2005
data
Krste, 3/16/05
~data
data
~data
L15 Testing
15
Testing Approaches
Plan: supply a set of test vectors that specify an input or output value
for every pin on every cycle. Tester will load the program into the pin
cards, run it and report any miscompares between an observed output
value and the expected value.
0000
0001
0002
0003
cycle #
1
1
1
1
10
10
01
00
0000
0000
1111
1011
XXXX
LLLL
LLLL
HLHL
n
combinational
logic
combinational
logic
2n inputs required to
exhaustively test circuit
If n=25, m=50, 1us/test
then test time > 109 years
Exhaustive testing
is not only
impractical, its
unnecessary!
Instead we only
need to verify that
no faults are
present which may
take many fewer
vectors.
Krste, 3/16/05
L15 Testing
16
Toggle Testing
CLK
43-bit counter
OKAY
=0
ALERT
PRESET
How long will it take to test whether ALERT has a stuck-at-0 fault?
6.884 Spring 2005
Krste, 3/16/05
L15 Testing
17
Fault Models
Z = ABCD
ZB@1 = ACD
ZB@0 = 0 = Z@0
have interesting
consequences...
Krste, 3/16/05
F = AB
FX=OPEN=_______
L15 Testing
18
A
B
C
X
D
FX=OPEN = __________
Krste, 3/16/05
L15 Testing
19
Path Sensitization
A
B
S-A-1
Krste, 3/16/05
L15 Testing
20
Error Propagation
A = 0
B = 0
S-A-1
Krste, 3/16/05
L15 Testing
21
Krste, 3/16/05
L15 Testing
22
want 0 here
Krste, 3/16/05
L15 Testing
23
There
There are
are systematic
systematic
techniques:
techniques:
scan-based
scan-based approaches
approaches
built-in
self-test
built-in self-test (BIST)
(BIST)
signature
signature analysis
analysis
6.884 Spring 2005
Krste, 3/16/05
L15 Testing
24
Scan
...
1
0
normal/test
shift out
1
0
CLK
normal/test
shift in
normal/test
shift in
Idea: have a mode in which all registers are chained into one giant shift
register which can be loaded/ read-out bit serially. Test remaining
(combinational) logic by
(1) in test mode, shift in new values for all register bits thus setting
up the inputs to the combinational logic
(2) clock the circuit once in normal mode, latching the outputs of the
combinational logic back into the registers
(3) in test mode, shift out the values of all register bits and compare
against expected results. One can shift in new test values at the
same time (i.e., combine steps 1 and 3).
Krste, 3/16/05
L15 Testing
25
Krste, 3/16/05
L15 Testing
26
Built-In Self-Test
circuit
under
test
normal/test
FSM
A
FSM
B
okay
Krste, 3/16/05
L15 Testing
27
LFSRs
...
C0
C1
CN-2
CN-1
...
With a small number of XOR gates the cycle time is very fast
Krste, 3/16/05
L15 Testing
28
IDDQ Testing
GND
Idea: CMOS logic should draw no current when its not switching. So
after initializing circuit to eliminate tristate fights, etc., the powersupply current should be zero after all signals have settled.
Good for detecting bridging faults (shorts). May try several different
circuit states to ensure all parts of the chip have been observed.
Increasing leakage currents and variability making this much harder to
use.
6.884 Spring 2005
Krste, 3/16/05
L15 Testing
29