Documente Academic
Documente Profesional
Documente Cultură
(03)5773693#157
jbchen@cic.org.tw
Chip Implementation Center (CIC) National Applied Research Laboratories Hsinchu, Taiwan
Agenda
Logic Testing
Basic Concept Design for Testability RTL Rule Checker DFT Guidelines and Rules Synopsys DFT Design Flow
Memory Testing
Basic Concept Memory BIST SynTest SRAMBIST Flow
Chapter 1
Logic Testing
Basic Concept
What is Testing
Testing is a process of determining whether a device is good (function correctly) or not
Testing includes test pattern generation, application and output evaluation
Apply Input (Stimulus) Test Pattern Compare Output (Response)
DUT
Why Testing
In order to guarantee the product quality, reliability, performances, etc.
Cost is the most important. The rule of ten
Process
Wafer
Probe Test
Final Test
Marking
Packaging
QA Sample Test
Shipping
Verification
Verification
Test
Diagnosis
9
Number of clocks
Frequency Accuracy Precision Number of scan channels Amount of memory Vector application formats
10
Type of Testing
On Wafer Test
Characterization Test Production Test
Burn-In Test
Diagnostic Test
11
Test Items
Function Test Verify functionality
Structural Test Verify manufacturability Parametric Test Verify AC and DC parameters
Pins/Gates
1.E+08
Transistors
1.E+07
1.E+06
1.E+05 1.E+04
Pentium 486
1998
Year
1994
2002
1.E+03
13
Input Open
A U1 Y B
Stuck-At-0 (U1/Y SA0)
IN
Input Shorted to 0
OUT
GROUND
14
15
Defect level is measured in terms of DPM (detects per million), and typical requirement is less than 200 DPM i.e. 0.02 %
DL = 200 DPM
Y (%)
10
50
90 99.8
95 99.6
99 98
16
Y = 50% Y = 90%
1,000
100
10
99.99 99.9 99 90
Fault Coverage
generation) How is the test quality (fault coverage) measure ? (fault simulation) How are test patterns applied and results evaluated ? (ATE/BIST)
18
A U1 Y B
Stuck-At-0 (U1/Y SA0)
A U0 B Y
19
Bridging fault
Two or more normally distinct adjacent lines are
shorted together
fault
20
5% 95 %
Good
Fail
Fault Model
21
22
Response Comparison
Detected?
23
T= {00,01,10}
A 0 0 1 1 B 0 1 0 1 Y 0 1 1 1 Y(A/0) Y(A/1) Y(B/0) Y(B/1) Y(Y/0) Y(Y/1) 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1
24
D
SA0
C B A
26
D
SA0
1/0
C B A
1 /0
D
27
D
SA0
C B A
1 /0
D
28
primary output
D C B A
1 SA0 0 1 /0
D
1/0 D
D
0/1
29
Fault detection
If Z(T)faulty differs from Z(T)good
1 SA0 0
1/0
D D
C
B A
1 /0
D
0/1
1 X 1 Discrepancy
30
Test Pattern T
How ?
Computer-Aided-Design Tools
Fault list
Test Generation
Fault Simulation
Test Set
31
Fault Equivalence
A set of faults is equivalent if no test pattern exists to tell them apart.
The function under these faults is equivalent for any input combination A/1
Y/1 B/1
A 0 0 1 1
B 0 1 0 1
Y 0 1 1 1
Fault Collapsing
By testing for only one fault per equivalence set, we can greatly reduce (or collapse) the fault universe
Speed up fault simulation
A/0
Y/0
B/0 Y/1
33
Untestable fault
A fault cannot be excited and/or propagated
Untestable fault is caused by a redundant design of the DUT, that is the line and the associate gate can be removed without changing the logic function of the DUT Untestable fault is also called as redundant fault F=ab+ab+bc F=ab+ab
a b a c 1 b 1 c
0
f s-a-0
34
Observe/Verify output at PO
Sequence ATPG
Time-frame Expansion
Primary inputs Combinational Logic Primary inputs PseudoPIs Combinational Logic PseudoPOs
A single time-frame
Cost Issue: For large sequential logic blocks with complex circuits, sequential ATPG is just not practical.
36
37
38
39
mode Make inputs/outputs of the flip-flops in the shift register controllable and observable
Types
Internal scan Full scan Partial scan Boundary scan
40
Primary Output
Combinational Logic
FF
FF
3. 4.
FF Scan Out
41
5.
Test CLK
Scan Enable
42
43
DO
DI
CLK
44
Why DFT ?
Product quality
Reduce field returns (Defect Level) Improve yield
Test cost
Reduce the complexity of test generation Reduce the cost of testing
45
DFT Tools
Synopsys
LEDA DFT Compiler TetraMAX BSD Compiler
Mentor
DFTAdvisor FastScan
BSDArchitect
LBISTArchitect
SynTest
TurboCheck-RTL TurboCheck-Gate TurboScan TurboBSD
TurboFault
46
47
48
Synopsys LEDA
Features
Check for syntatic/semantic, coding style for
synthesis DFT rules check RMM rules check Many Synopsys tools (DC,VCS,Formality ) Report the file name and line number of problematic code Support User defined rule
49
SynTest TurboCheck-RTL
Features
Lint capability ( more than 400 rules) Check for syntatic/semantic, coding style for synthesis DFT rules check (more than 40 rules) RMM rules check Report the file name and line number of
50
51
One-shot
52
53
54
O
ENB
55
Scan register
Scan register
Logic
Logic
Logic
Memory
Memory
Un-controllable
56
Logic
Bi-direction
Tri-state Latch Cross clock domain Constant or Floating signal
57
TestMode
Set to 0
Set to 1
58
CLK
Logic gates
Primary Input
59
CLR
CLR
60
61
O
ENB
Bi-direction
Force one direction
Enable
Latch
Make latch transparent
62
Floating net
Inaccessible memory objects
A memory object is inaccessible if there is no path
existed from the memory object to any one of primary output port, and if it is not in the scan chain.
63
CLK 2
64
65
check_test
Pre-Scan DRC
insert_scan
Insert Scan
check_test
Post-Scan DRC Preview Coverage
HDL
66
Scan-Ready Synthesis
HDL Code compile -scan technology library DFTC
TI DI DFF DO DI
1 0
TO
DO
DFF
67
Pre-Scan Check
Check gate-level scan design rule before scan chain synthesis.
Looks at four categories of testability issues:
Modeling problems, such as lack of a scan equivalent.
68
69
Post-Scan Check
Why run check_test again?
Confirm there are no new DFT problems. Verify the scan chains synthesized operates
check_test
70
71
72
73
scan_out
Scan Registers
Un-controllable
Block Box
Un-observable
scan_in
Scan Registers
Black Box
74
scan_out
Scan Registers
Shadow LogicDFT
controllable
Wrapper observable
scan_in
Scan Registers
75
design_dft.v
DC
Simulation Library
design.spf
Fault Reports
76
5
BEGIN Review Result
1
Library
Design
Run ATPG
6 3 2
Run DRC Compress & Save Patterns
Build Model
DRC Procedures
DONE
77
Chapter 2
Memory Testing
78
Basic Concepts
79
Introduction
Memory is the key component in electronic system
Embedded memory is one of the most universal block in a SoC Embedded memory testing is a more and more difficult problem
I/O pins limited Speeds
80
Functional Test
Device characterization Failure analysis Fault modeling Simple but effective Test algorithm generation Small number of test patterns (data backgrounds) High fault coverage Short test
81
82
83
Other Faults
84
operations
Data patterns (backgrounds) Address (sequence)
85
86
87
SAF
MATS MATS+ MATS++ MARCH X All All All All
AF
Some All All All
TF
6N 6N
MARCH C-
All
All
All
All
All
All
10N
88
{w(0);(r0,w1);(r1,w0)}
Good Memory
1 1 1 1 1 1 1 1 1
After M1
0 0 0 0 0 0 0 0 0
After M2
0 0 0 0 0 0 0 0 0
After M0
1 1 1 0 1 1 1 1 1
After M1
0 0 0 0 0 0 0 0 0
After M2
90
Word-Oriented RAM
Background bit is replaced by background word
For example: 8bit memory
Background 0 ->
91
Memory BIST
92
SynTest
TurboBIST-Memory ROM, RAM Edit a memory spec. file RTL
93
94
Mux
BistMode
Memory
BIST Controller
mem_ctrl bist_ctrl Q
Analyzer
95
mem_ctrl BIST Controller BistMode bist_ctrl Finish BistFail ErrMap Memory wrapper Q
96
Address
Data In
From BIST
BistMode
97
BIST controller
wrapper0
wrapper1
98
BIST controller
wrapper0
wrapper1
wrapper0
wrapper1
Group1 MemGroupSel[1]
99
100
SRAMBIST Flow
Study Spec.
Yes
101
(memory_name.mdf)
MBIST Attribute
Decide BIST clock rate Decide BIST clock trigger edge Do multiple memories share one bist controller?
102
SRAM information I
SRAM information II
global information
103
GLOBAL Section
%GLOBAL { %TIMESCALE 1ns/10ps; %SYNC_RESET TRUE; //Default: TRUE %CLK_CYCLE 20; //Same as memory //%BIST_CLK_TRIGGER posedge; %ANALYZER_ON_MEM TRUE; //Default: FALSE %RESET_PIN BIST_rst;//Default:Use BistMode }
Original Memory Port Memory Wrapper
Mux
BistMode
Memory
BIST Controller
mem_ctrl bist_ctrl Q
Analyzer
104
105
Memory Section
%MEMORY c4msram32x16s { %TYPE SRAM; %DATA_BITS 16; %ADDR_BITS 5; %LOW_ADDR 5'b00000; %HIGH_ADDR 5'b11111; %LATENCY 0; %CLOCK CE; %SELECT -CSB; // %NO_MUX TRUE; %FORCE OEB = 0; %OTHER_INPUT PWN;
106
Memory Section
%MEMORY c4msrom0101 { %TYPE ROM;
%MISR_BITS 16; %MISR_POLY 15,3,1,0; %Q_CONNECT 15,13,12,11,0; %MISR_SEEDS 0000000111001010; %ROM_CONTENT_FILE rom.cod
rom.cod 110010 010110 111111 100000 .......
107
MISR
Polynomial:
cnXn+cn-1Xn-1+...+c1X+1
I0
I1
In-2
In-1
+ D1
+ D2
+ Dn-1
+ Dn
cn
cn-1
c2
c1
108
Port Section
%MEMORY c4msram32x16s { %PORT p1 { %TYPE %ADDRESS %DATA_IN %DATA_OUT %CLOCK %WRITE_EN %SELECT %OUTPUT_EN %READ_EN } %PORT p2
109
110
SRAMBIST
Command syntax:
srambist <options> <design name> srambist c4mtram72x8
Options
bcf_file <file name> algorithm <algorithm name> serial_test
111
Input/Output Files
sram.mdf
sram_sim.v
srambist
sram.bist.rpt
sram.scp sram.tcl
112
sram_sim.v
sram.v sram_top.v sram_wrapper.v sram_rb.v
113
synthesis tool
gate-netlist
114
Reference
[1] J. Knaizuk, Jr. and C.R.P. Hartmann, An Optimal Algorithm for Testing Stuck-at-Faults in Random Access Memories, IEEE Trans. On Computers, 1977
[2] M.S. Abadir and J. K. Reghbati, Functional Testing of Semiconductor Random Access Memories ACM Computing Surveys 1983 [3] A. J. van de Goor, Testing Semiconductor Memories: Theory and Practice. Chichester, UK: John Wiley & Sons, Inc., 1991 [4]M. Marinescu, Simple and Efficient Algorithms for Functional RAM Testing, in Proc, of the International Test Conf. 1998
115