Embedded Memory Testing Guide
Embedded Memory Testing Guide
40(diagram), 41(diagram), 69, 70, 71, 72, 76, 77, 78, 79, 82, 83, 84, 85.
MBIST
2
Agenda
• Embedded memories
• Check List
• Questions
3
What is Embedded
• Memory is consideredmemory?
embedded if some or all of its
terminals are not directly connected to the pins of the
chip
4
Memory testing methods
5
Direct Access Method
6
Direct Access Method(Contd..)
Entails (require) routing all of the embedded memory’s
inputs and outputs directly to the host chip’s pins
8
Scan chain / ATPG method (Contd...)
Entails placing a scan chain around the embedded
memory
required
9
MBIST Method
10
MBIST Method (Contd …)
Here we generates & apply the different/necessary
patterns and analyze the result’s of the embedded
memories
15
• Goal of memory testing is to provide high quality manufacturing tests
Introduction
for the memory by applying different patterns to determine defective
cells
• There could be different types of memory/arrays (SRAM's, CAM's,
ROM's and register files) and MBIST targets all of these array’s
• MBIST (Memory built in self test) embeds much of the tester
functionality into the device itself and it reduces the cost/time of
testing
• MBIST is integrated and automated test solution which supports
testing of memory where there is no connection to the ATE (output
pin) or outside testers location
• By default after power-on MBIST will run all patterns and give
pass/fail
• Master-slave architecture with a common master MBIST controller
• MBIST-slave controllers can test multiple arrays
• Slave controller to array communication can either be a ring or a star
topology
• JTAG (TAP) can be used to program the configuration register of the
MBIST master controller
• Each macro /array/ memory required valid cluster_id (i.e. For
identification)
• Memory can be single read/write port or Multiple ports
• MBIST provides the control interface for running Manufacturing and 16
In-System BIST
MBIST Architecture
Memory 1
Memory 2
Slave / Interface
TAP MBIST Controller ckt
/ collared
Memory n
MBIST Architecture
Sharing a BIST Controller Among Several Embedded Memories
19
BIST- Ready Memory
Optimization:
- testing time
SoC BIST -
-
memory cost
power consumption
- hardware cost
- test quality
Embedded Tester
Core 1 Core 2
Tester
Memory
BIST BIST BIST
System on Chip
Full Chip Memory BIST Architectures
SOC
TM S Block
BIST Block
TCK TAP Controller
TRST
Memory 1
rst_l
BIST
CLK Controller
BIST Block
test_done
fail_h Memory 2
test_h
MBIST Data
Register
TDO
TDI Boundary Scan Register
Sharing a BIST Controller Among Several Embedded Memories
(Contd…)
• Parallel Testing
• Serial Testing
Uses the memory itself to shift the incoming data bits across the data
width of the memory.
Configurations Overview
Sequential Testing of multiple memories Multiple RAMs in a parallel configuration
28
MBIST Operating Modes
•(Contd…)
Programmable BIST (PBIST):
29
Types of Memory
• SRAM
• TCAM
• ROM
• Multiple ports
• DRAM
• Register file
SRAM operation
Idle state : WL =0
33
14N: SMarch algorithm
• Sequence :{↓wd} {↓rd, wc} {↑rc, wd, rd, wc} {↑rc, wd}
{↑rd, wc, rc, wd} {↓rd}
• 14N algorithm used for RAM testing
• Takes 14 instructions
• SMarch algorithm is the default test algorithm that the memory BIST
controller uses to test RAMs
• This is the shortest comprehensive test that detects all stuck-at,
transition
and coupling faults etc. for standard RAM's
//Part 0
//{↓ wd} : write data from max address to min address
for (MainAddr=MaxAddrStop; MainAddr>=0; MainAddr--)
wr data @ MainAddr
end
//Part 1
//{↓ rd, wc} : read data from max address to min address, and
replace with compliment data (wc) before changing to next
address.
for (MainAddr=MaxAddrStop; MainAddr>=0; MainAddr--)
rd data @ MainAddr
wr !data @ MainAddr
34
end
14N: SMarch algorithm
(Contd…)
//Part 2
for (MainAddr=0; MainAddr<=MainAddr; MainAddr++)
rd !data @ MainAddr
wr data @ MainAddr
rd data @ MainAddr
wr !data @ MainAddr
end
//Part 3
for (MainAddr=0; MainAddr<=MainAddr; MainAddr++)
rd !data @ MainAddr
wr data @ MainAddr
end
//Part 4
for (MainAddr=0; MainAddr<=MainAddr; MainAddr++)
rd data @ MainAddr
wr !data @ MainAddr
rd !data @ MainAddr
wr data @ MainAddr
end
//Part 5
for (MainAddr=MaxAddrStop; MainAddr>=0; MainAddr--)
rd data @ MainAddr
end 35
Types of Addressing Mode
• Linear
• Fast Column
• Fast Row
• Ping-Pong
36
Fast Column / Fast Row
addressing
37
Memory Fault Types
38
Stuck at 0/1 faults
• Memory cell is permanently forced to a logic 0 (stuck-at-0
fault) or logic 1 (stuck-at-1 fault) value ,irrespective of
any value
written to the cell
39
Transition faults
40
Inversion Coupling Faults
Fault model, a logic 0 to logic 1 or logic 1 to logic 0
transition in one memory cell (the coupling cell) inverts
the value in another cell (the base cell)
41
Dynamic Coupling Faults
• Fault model, reading or writing a logic 0 or logic 1 to one
memory cell (the coupling cell) forces the value in another
cell (the base cell) to either a logic 0 or logic 1
42
Address Decoder Faults
• This model encompasses faults in the address decoder logic
44
Write Recovery Faults
When a value is read from a cell just after the opposite
value has been written to a cell along the same column
and the bit line pre charge has not been performed
correctly
45
Retention Faults
Retention fault is one where a cell loses its contents over
time
without being accessed
• Primarily a DRAM cell fault mechanism, resulting from an
abnormally large leakage current
46
Parametric Faults
• Parametric faults can be classified into DC and AC parametric
faults
48
MBIST w.r.t.
MentorGraphics
49
• Tool Support :
MBIST Tool to insert MBIST controller ,BIRA, BISR
• Solution
to the design
• Verification of the inserted design using
generated test patterns
50
• Non-Programmable MBIST:
MBIST controllers types
• Provides pre-defined algorithms created for optimized
memory
controller, interfaces size and performance
• Support Hard-coded algorithm (mentor lib algo)
• Programmable MBIST:
• Hard programmable
• Define your own algorithm and design the controller
• Support Hard-coded algorithm
53
• BIST_SETUP:i/p:Specifies the run and setup modes for the controller
Signal Port Lists
• MBIST_GO:o/p: Its global pass/fail result from all comparators .During memory failure
occurs, MBIST_GO is driven low and remains low for the duration of memory BIST
• MBIST_CMP_STAT:o/p: Comparator signal ,if any memory fails, it falls for one cycle and
then rises again
• BIST_SHIFT :i/p: Places the controller in serial shifting (scan) mode, connected to the TAP
• BIST_SI : i/p: Scan input for accessing the controller’s internal registers
• BIST_SO: o/p: Scan output during retrieval of test result and diagnostic data
54
MBIST operating protocol
55
Memory interface for SRAM
56
Memory interface for ROM
57
Memory collar for SRAM
58
Memory collar for ROM
59
• Comparators can be shared among the sequentially
Types of comparators
tested
memories
• Hence a common CMP_STAT_ID signal can be routed to
chip pins
• Disadvantage is the routing required between
controller and the collar with wide memories
60
Comparators within collar and within controller
61
Diagnostic:
• Bitmapping :
• Bitmapping is used during manufacturing test to assist
process improvement
• Bitmap data is used to guide failure analysis equipment
to the
site of a defect
• On every clock data is shifted out from memory to do
failure
analysis
• This is purely diagnostic or debugging features
• In bitmapping master pauses after every read operation
and transfers the bitmap out of block or design
62
• Tester monitors CMP_STAT_ID from the controller
Compare status output approach
• Capture the Compare Status data at the same rate as the
memory
BIST, controller run and send to chip level pin
63
• Scan based diagnostic approach
Stop-On-Nth-Error
•
approach
Stop the controller when a specified amount errors are
encountered &
Scan out the relevant data for fault diagnosis
64
Tessent MemoryBIST Tasks within the LV Flow
65
LV Flow: ETChecker
• Step1 steps
• Step2 : ETPlanner
• Step3 : ETAssemble
66
LV Flow on RTL level
67
LV Flow on Gate level
Netlist
68
ETChecker
• .etCheckerInfo File
• .etpPhysicalInfo File
• .etchecker.rpt_ruleCheck File
template
• Multiple instances of the same memory should use the same memory template
Memory Lib File
•Memory lib file syntax
MemoryTemplate (<memoryTemplateName>) {
// Begin Memory Template Section
Algorithm: ReadOnly | SMarch |SMarchCHKB | (SMarchCHKBci) |
SMarchCHKBcil | SMarchCHKBvcd | LVMarchX | LVMarchY |
LVAddressInterconnect | LVDataInterconnect |
<algorithmName>;
MemoryType: ROM | (SRAM) | DRAM;
AddressCounter {
Function (Address) {
LogicalAddressMap {
ColumnAddress[x:y] : Address[a:b];
RowAddress[x:y] : Address[a:b];
BankAddress[x:y] : Address[a:b]; } } }
} //End of Memory Template
73
• Extract all design information
ETChecker
• Input files to ETChecker
e.g: *.memlib , other lib file, *.v ,netlist
and .etcScanData
(pre-existing third-party scan chains)
lv.MemoryInstance -name
<MemoryInstanceName>
-controllerType (NonProgrammable) |
HardProgrammable | SoftProgrammable
• .etplan File
• .etplan.README File
• Makefile
• .ETSummary File
affects its embedded test requirements
•ETPlanner
“etpPhysicalInfo” that will list all your memory
instances and assign each of them a clusterID
80
ETPlanner (Contd…)
• You can modify .etplan w.r.t. clock domain, controller,
embedded test configuration , memory cluster/group
(instance), algorithm ,BIRA properties (i.e. plan &
specify as per your need)
• Grouping process:
• BIRA Check
• Algorithm Check
• Programmable and Non-Programmable check
81
ETAssembler
• Output Netlist
• Log File
• Pin Order List File
• Design Summary File
ETAssemble
• Provide these i/p files to ETAssemble
e.g: *.memlib , *.etassemble, .lvbscan, netlist
86
ETScan/Pre-Layout ETSignOff
•Pre-Layout ETSignOff:
• Perform pre-layout sign-off using rule checkers, Static
timing analysis, and simulations
• Make Targets for Pre-Layout ETSignOff:
• Run the make targets generated by ETPlanner for
Step 4: Pre-Layout to perform pre-layout
embedded test
sign-off using rule checkers, Static timing
analysis, and
simulations
87
Make Targets for Pre-Layout ETSignOff
• The following make targets are found in the ETScan Directory:
• make testbench:
• Generates all testbenches necessary to fully verify each
type and instance of embedded test controllers merged
into your design
• make display_sim_results:
• Shows the summary results of all simulated testbenches
8
8
•Final
SameETSignOff
make targets are used for both Pre-layout ETSignOff
and
Final ETSignOff
89
ETVerify
• Use the “MembistPVerify” option to verify your Programmable
controllers
90
Check List
91
Thank You
92
Questions
1. What is number of words ,number of bits in word ,number
of rows ,number of column ,number of words per row in
given figure?
2. Why we require Comparator and how patterns catch
failure on memory?
3. How we do ROM testing ?
4. How many instructions SMarch algorithm takes?
5. What is difference between Fast row and Fast column
addressing modes and who generates this? Mux 0 Mux 1
6. What is transition & Retention faults and how we test it?
7. What are the difference between Programmable and
Soft-Programmable MBIST controller ?
8. Explain MBIST_DONE, MBIST_GO, BIST_BIRA_EN,
MBIST_CMP_STAT signals ?
9. Why we required Diagnostic method ?
10. Define each steps use in LV flow ?
11. In which step of LV flow we do design rule checks ?
12. What are the input files of ETPlanner?
13. In which step of LV flow we do Grouping process?
14. Name the property to configure NonProgrammable,
Programmable, SoftProgrammable bist controller ?
15. In which step of LV flow we use ETVerify and why?
16. Name ETVerify wrapper which we use to verify MBIST ?
93
Answers
1) Number of words = 8 , Number of bits in word = 4,
Number of rows = 4 , Number of column = 8,
ncolmux = Number of words per row = 2
94