Académique Documents
Professionnel Documents
Culture Documents
Chip-Level
Embedded
Memory
Logic
Memory Access
PLL
TAP
JTAG Boundary Scan
Alfred L. Crouch
Row/Word-Address
Select
Select
Column/Bit-Data
Column/Bit-Data
Storage
Storage
Select
Column/Bit-Data
Storage
Select
Column/Bit-Data
2 Transistor EEPROM Cell
Figure 4-2 Memory Types
Alfred L. Crouch
Bus
Enable
Data In
Data Out
Memory: Data Width by Address Depth
32 x 512
Address In
Read/WriteBar
Memory Array
Address Decode to Row Drivers
Data Decode to Column Drivers
Output Enable
Alfred L. Crouch
Chip FloorPlan
Memory 1
M
e
m
o
r
y
3
Memory
2
- Aspect Ratio
- Access Time
- Power Dissipation
Memory 4
Alfred L. Crouch
Chip FloorPlan
Memory 1
M
e
m
o
r
y
Memory
2
- Routing
Processor
Local
Logic
Memory 4
Alfred L. Crouch
32
Embedded
Microprocessor
Core
Data
24
Embedded
Memory
Array
Address
3
Control
Functional Memory Test
Data
Address
Control
32
Embedded
Memory
Array
24
3
Invoke
BIST Controller
Done
Reset
Embedded
Memory
Array
Hold
Fail
Alfred L. Crouch
column # >
row # > 0
row # > 1
row # > 2
Alfred L. Crouch
address A031>
address A032>
address A033>
Alfred L. Crouch
horizontal (row)
bit bridging
vertical (column)
bit bridging
word bridging
unidirectional
one-way short
random
bit bridging
word bridging
bidirectional
two-way short
Alfred L. Crouch
10
Column Decode
X
C
O
Select Lines
R
O
0
Row Decode
stuck-at faults result
in always choosing
wrong address
Row Decode
in always selecting
multiple addresses
o
d
e
Column Decode
bridging faults result
in always selecting
multiple data bits
Column Decode
Select Line
faults result in
in always choosing
similar array
fault effects
Figure 4-10 Decode Faults
Alfred L. Crouch
11
Complementary
Data around
Target Cell
Address 21 = A
Address 22 = 5
Address 23 = A
Address 24 = 5
Alfred L. Crouch
Blue: Pass
Red: Fail
12
Column
Data Fault
Alfred L. Crouch
13
Address 00 >
Address 01 >
Address 02 >
Address 03 >
Addr(00) to Addr(Max)
Read(5)-Write(A)-Read(A) Address 04 >
Increment Address
Address 05 >
Address 06 >
Addr(00) to Addr(Max)
Read(A)-Write(5)-Read(5) Address 07 >
Increment Address
Address 08 >
Address 09 >
Addr(Max) to Addr(00)
Read(5)-Write(A)-Read(A) Address 10 >
Decrement Address
Address 11 >
Address 12 >
Addr(Max) to Addr(00)
Read(A)-Write(5)-Read(5) Address 13 >
Decrement Address
Address 14 >
Address 15 >
Address 16 >
Address 17 >
Address 18 >
Address 19 >
Address 20 >
Address 21 >
Address 22 >
Address 23 >
Addr(00) to Addr(Max)
Write(5)-Initialize
Increment Address
Addr(Max) to Addr(00)
Read(5)
Decrement Address
Read (A)------->
Write (5)
Read (5)
Increment Address
March C+ Algorithm
Alfred L. Crouch
14
Data
Data
Memory
Detection of
incoming
signals
Control of
outgoing
signals
Array
Address
Control
scan-memory
boundary
Minimum Requirement
Detection up to Memory Input
and Control of Memory Output
Alfred L. Crouch
15
Data In
Din
Dout
Data Out
Memory
Array
Address
Ain
ATPG
Model
Control
Read/Write
Scan
Architecture
Alfred L. Crouch
16
Control of
outgoing
signals
Data In
Detection of
incoming
signals
Memory
Array
can be
Address
removed
from
All Registers
are in the
scan chain
architecture
netlist for
ATPG purposes
Control
scan black-box
boundary
Observe-only registers
used for detection of memory
input signals
Alfred L. Crouch
17
Input is passed
to output as the
form of output
control
Data In
Detection of
incoming
signals
Memory
array
can be
Address
removed
from
netlist for
ATPG purposes
Control
scan black-box
boundary
Observe-only registers
used for detection of memory
input signals
Multiplexor is used to
pass the input directly
to the output
Alfred L. Crouch
18
Detection of incoming
data signals done here
Boundary at some level
is blocked off
as if the memory was
cut out of the circuit
Input is passed
to output with
registration
Data In
In ideal sense,
timing should
also be matched
array
can be
Address
removed
from
netlist for
ATPG purposes
Control
scan black-box
boundary
Observe-only registers
not needed on data since
register emulates memory
Alfred L. Crouch
19
Data In
Data Out
Memory: data width by address depth
32 x 512
Address
Read/WriteB
Memory Array
Address Decode to Row Drivers
Data Decode to Column Drivers
Output Enable
Alfred L. Crouch
20
Chip Level
Invoke
Retention
Debug
Algorithm Controller
Address Generator
Data Generator
Done
Fail
Debug_data
Memory Array(s)
Comparator
INPUTS
Invoke: Start BIST
Retention: Pause BIST and Memory Clocking
Debug: Enable BIST Bitmap Output
OUTPUTS
Fail: A Memory Has Failed a BIST Test
Done: Operation of BIST Is Complete
Debug_data: Debug Data Output
OPERATIONS
Address: Ability to Apply Address Sequences
Data: Ability to Apply Different Data Sequences
Algorithm: Ability to Apply Algorithmic Control Sequences
Comparator: Ability to Verify Memory Data
Figure 4-20 Memory BIST Requirements
Alfred L. Crouch
Retention
Release
Bitmap
Algorithm Controller
Address Generator
Data Generator
Comparator
Invoke
21
Din
Memory
DI Array Do
Ain
Write_en
WRB
Read_en
CEB
done
Fail
Hold_out
Bitmap_out
Dout
Clk
INPUTS
Invoke: invoke the BIST (apply muxes and release reset)
Retention: enable retention algorithm and pause
Release: discontinue and release pause
Bitmap: enable bitmap output on fail occurrence
OUTPUTS
Fail: sticky fail flagdynamic under bitmap
Done: operation of BIST is complete
Bitmap_out: fail data under bitmap
Hold_out: indication of pause
Figure 4-21 An Example Memory BIST
Alfred L. Crouch
22
Chip Level
bitmap_out1
Memory Array
with BIST
Invoke
done1 fail1
bitmap_out2
Memory Array
with BIST
Reset
Bitmap
done2 fail2
bitmap_out3
Memory Array
with BIST
Hold_1
Hold_2
Hold_3
Hold_4
done3 fail3
bitmap_out4
Memory Array
with BIST
so
s1
done4 fail4
fail 1-4
done 1-4
Invoke: a global signal to invoke all BIST units
Reset: a global signal to hold all BIST units in reset done fail diag_out
Bitmap: a global signal to put all BIST units in debug mode
Hold_#: individual hold signals to place memories in retention
or to select which memory is displayed during debug
done: all memory BISTs have completed
fail: any memory BIST has detected a fault or a failure
diag_out: the memory BIST not in hold mode will present debug data
Figure 4-22 MBIST Integration Issues
Alfred L. Crouch
23
bitmap_out1
Memory Array
with BIST
Invoke
done1
Reset
fail1
bitmap_out2
Memory Array
with BIST
Bitmap
done2
fail2
Hold_1
Memory Array
with BIST
bitmap_out3
Hold_2
done3
fail3
Hold_3
Hold_4
Memory Array
with BIST
done4
bitmap_out4
so
s1
fail4
fail 1-4
done 1-4
done
fail diag_out
Alfred L. Crouch
n
Invoke
n
Reset
n
Bitmap
Hold_1
Hold_2
Hold_n
M
e
m
o
r
y
invoke
1-m
done
A 1-n
r
r
a
y
s
M
e
m m
o
r
y
with fail
1-n
I M
n B debug
d I
e S hold_l1
p T
e s hold_l2
n
d
hold_1m
e
n
t
Bank 1
scan_out
1-n
24
done
A 1-m
r
r
a
y
s
with
fail
1-m
m I M
n B
d I
e S
p T
e s
n
d
e
n
t
Bank 2
m
diag_out
1-m
so
s1
Invoke: global signal invokes bank 1 BIST
Reset: global signal holds bank 1 BIST in reset
diag_out
Bitmap: global signal that enables BIST debug
fail
done
Alfred L. Crouch
25
LFSR - PRPG
DQ
DQ
DQ
CLK
MBIST
Address
Functional
5
A
0
F
Memory Array
MBIST Data In
Data
Functional Data In
Algorithm
Sequencer
MBIST
Control
Functional
Functional & MBIST Data Out
DQ
DQ
Data Out
DQ
CLK
LFSR - MISR
Figure 4-25 LFSR-Based Memory BIST
Alfred L. Crouch
26
Address
Memory Array
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
Data
0
1
0
0
1
0
Read/Write
Alfred L. Crouch
27
MBIST
Address
Functional
Read Control
Data Out
MBIST
DQ
DQ
DQ
CLK
LFSR - MISR
Figure 4-27 ROM BIST
Alfred L. Crouch
28
Alfred L. Crouch