Mbist
Mbist
Where We are?
What is BIST?
• BIST stands for Built In self test, which enables the testing personal
to test a design without using an external automated test equipment
(ATE), which is usually used in post-production testing
• BIST are a couple of techniques which includes additional hardware
and software features into integrated circuits to allow them to perform
testing of their own operation (functionally, parametrically, or both)
using their own circuits
• With the increasing complexity & clock speed the use of a general automated
test equipment (ATE) doesn’t suffice the testability of an IC
• Modern SoC usually includes multiple high-speed clocks and testing those
circuitry at their operational frequencies becomes a challenge for ATE
• BIST is also the solution to the testing of critical circuits that have no direct
connections to external pins, such as embedded memories, sometimes analog
blocks used internally by the devices
• BIST enables us to use simple interface which can be used to create software-
based testing mechanism reducing the cost of post-production testing of IC
3. A test controller
Courtesy: course on BIST/DFT, IIT Kharagpur
Copyright @ Tanmoy Das, 2021
7
• In normal operation, the CUT receives its inputs from other modules
and performs the function for which it was designed
• A mode selector, at the MUX select input signal is used to switch
from functional mode to test mode
• During test mode, a test pattern generator circuit applies a sequence
of test patterns to the CUT, and the test responses are evaluated by
an output response compactor
• If obtained patterns are matching with the expected previously stored
patterns, then we can tell if the CUT is good / faulty
Copyright @ Tanmoy Das, 2021
8
-
Stored patterns
-
Exhaustive patterns
-
Pseudo-exhaustive patterns
-
Pseudo-Random Pattern Generation
-
Pattern Generation by Counter
Weighted Pseudo-random Pattern Generation
Note: Some important categories of pattern generation will be considered
Copyright @ Tanmoy Das, 2021
11
• Exhaustive testing is something which applies each and every possible combination
(2n) for an n input pins
• Although it has very high fault coverage it has very high time overhead, and if
required in any BIST mechanism can be generated with the simple circuit below:
H/W PG | Pseudo-Random
• Random patterns are one of the parts of the PG processes where we can quickly try
to identify some faults and based on the identification we discard some faults from
the fault list speeding up the PG process
• One of the processes of random pattern generation is to use Linear Feedback Shift
Register (LSFR), though is not purely random in nature but the random outputs are
repeated after a very long time if we carefully design a LSFR, the scheme is
popularly known as a pseudo-random pattern generation
• A linear feedback shift register is a shift register with feedback paths which consist
only of unit delays and XOR operators (Linear operator), a general diagram has
been shown as below:
• There are n flip-flops
(Xn-1,……X0), (hn-1,
hn-2, ..., h1) are some
weights which are
multiplecative
• From the figure it is clear
that the present state of a
output is module sum of
other flops
Copyright @ Tanmoy Das, 2021
15
+
+
1 0 0 0
= , now using 1 1 0 0
1 1 1 0
asynchronous inputs of the flops if 1 1 1 1
we initialize the value 1000, the 0 1 1 1
If we change the initial value 1000 to a different one, the circuit will go 0 1 0 1
1 0 1 0
through different states, thus by changing the inital (sometime called 1 1 0 1
seed) we are able to generate some random value, more precisely 0 1 1 0
H/W PG
• While Implementing a BIST strategy, the main issues are fault coverage,
hardware overhead, test time overhead, and design efforts
• To find a pattern generation method which is a complete in terms of all the
above mentioned points, optimization for each can be considered, here is a
table which might help identifying the PG methods for practical applications:
Output
Pattern Response ? Faulty /
CUT =
Generator Analyzer Good
(ORA)
signature
Copyright @ Tanmoy Das, 2021
19
• So, aliasing is never desirable, as there are chances where a faulty output
can pass a test
• Also, a good response analyzer should produce alias free responses
• Aliasing give rise to reduce the coverage, which is a metrics of how much
faults are detectable out of a given set of faults
As, both {01} (faulty
{00} response) & {10}
1
(good response)
CUT S, signature {10} {1} produces golden
response {0}, XOR
0 ORA = XOR Gate {01} {0} gate is not good as
Good output is {10} & Golden signature = 1 {11} an ORA
ORA Types
• LFSR can be used both for PG and ORA just by incorporating some input to the
LFSR structure
• But Method is slow, as shifiing operation is associated, for N flop LSFR after N
clock pulses the signature is generated
Used for TPG (Without any Input) Used for ORA (With an Input)
BIST Types
BIST Types
• Based on CUT:
1. LBIST: Logic BIST is used to test the circuits where logical circuitry is
involved and no embedded memories are used, as for example,
dedicated modules like CPU, GPU or DSP cores can be tested using
LBIST techniques
2. MBIST: Memory BIST is ued to test embedded memory elemets of a
circuits, for example an embedded RAM or a general RAM can be tested
with MBIST techniqes, MBIST are little bit complex as compared to
LBIST & requires special attention
BIST Types
• The general testing structure (consists of TPG & ORA) which has been
shown in previous slides are generally used for LBIST operations, all the
basic Digital circuitry (or even some analog & ADC-DAC circuits are
tested using) are tested by using Logic BIST techniques
• However, embedded memories are one of the most complex and densed
structures (which requires their own fault models appart from previously
stated ones) are tested by using Memory BIST techniques, as they seek
special attention than LBIST
Other faults :
Sense amplifier recovery fault
Sense amp. saturated after reading/writing a long string of 0 or 1
Write recovery fault
A write followed by a read/write at a different location results in reading or writing at the
same location due to slow address decoder
A Test algorithm is a finite sequence of test elements, which contains a number of:
1. Memory operations
Read or Write
2. Data pattern (aka. data background)
Zero or One (in single cell or in blocks)
3. Address sequence
Ascending or Descending
Test (time) Complexity of test algorithm is expressed in terms of number of memory cells
(N) under consideration, higher the memory higher is the complexity
Typical examples: MSCAN, Checkerboard, GALPAT, Butterfly, March
MSCAN Cheakerboard
Steps: Steps:
1.Write zero to every cell 1. Write chkrbd pattern to all cells
2.Read zero from every cell 2. Read chkrbd pattern from all cells
3.Write one to every cell 3. Write chkrbd’ pattern to all cells
4.Read one from every cell 4. Read chkrbd’ pattern from all cells
Advantages: Detects all SAF Advantages: Detects all SAF, Bridging
Disadvantage: Complexity is in faults
the order 4N Disadvantage: Complexity is in the
order 4N
chkrbd means 01 alternatively, chkrbd’ is its complement,
Note: Other Algos are beyond the scope of the introductory course
Copyright @ Tanmoy Das, 2021
34
rd/wr or other
controll pin
Addr
Memory
Data
• Typically MBIST consists of a controller (manages the overall operation of the BIST circuit), a
sequencer and a TPG, we already have discussed TPG schemes used in BIST,
• The sequencer generates the address sequence and various memory access commands based
on the specifications of the memory under test. For example, the sequencer generates the read,
write, refresh, precharge, load_mode_register, active, and nop (no operation) commands for an
SDRAM, but only the read, write, and nop commands for a simple single-port SRAM
BIST summary