1.1 Testability and Design For Test (DFT)
1.1 Testability and Design For Test (DFT)
DFT
Test Coverage =
The question is how to evaluate the Test Coverage as it is still based on Customer Return? We
Confidential
DFT
need to evaluate an image of the Test Coverage before shipping the pieces to the customer.
DL
120000
(1-TC)
DL=1-Y
100000
TC=95%
Y=Process Yield
80000
TC=Test Coverage
TC=97%
60000
TC=99%
40000
20000
10.0
20.0
30.0
40.0
50.0
60.0
70.0
80.0
90.0
Yield %
The formula shows well that if you have a poor process yield (new technology), you should
have an excellent Test Coverage in order to trust the "good" parts (the parts tested as good).
DFT
possible defects and the Test Coverage includes the contribution of many factors: the
functionality coverage, the Single Stuck at fault coverage (provided by scan ATPG), the Iddq
fault coverage (based on pseudo stuck-at fault model or bridging fault model), the at-speed test
coverage (based on the transition Fault or the Path Delay fault models), etc.
# Faults
100 %
Burn-In / Life tests
At-speed test
Iddq test
# Vectors
In order to reach a good test coverage, different test techniques need to be used. Each technique
covers a specific aspect, linked to some specific "defects". See the figure below that highlights
how the faulty devices are classified depending on the test involved.
Confidential
1.5.1
DFT
Probe Test
Probe test is used to screen out the good and bad die. It can be an expensive mistake to package
devices which might fail at final test, due to the cost of packaging. As the electrical environment
is a little less controlled, the program is usually run with relaxed voltage levels and timings. The
test patterns would be the same as those used in the final test program.
1.5.2
Final Test
Final test is used to screen out parts damaged by the packaging process and parts which do not
meet the full specifications of the datasheet. This is where a combination of structural and
functional tests ensure the integrity of the device. DC specifications such as power supply
current consumption, leakage, and output drive capability are tested. AC specifications such as
speed grading and datasheet parameters are verified. The functional test patterns would
effectively run real code in real time on the device, while at the same time verifying that the
response of the device does not deviate from the expected (stored) response. The test patterns
used for AC verification are usually more complex in the way that the timings are defined, and
a number of "edge sets" may need to be employed.
1.5.3
Characterisation
Required to establish how well the device works in relation to the preliminary datasheet. Both
the DC and AC parameters are measured. Compare this to final test where the same (or a subset)
of these parameters are tested go/nogo. Characterisation is required to generate reports which
allow the device to reach ML20 and ML30. A set of functional patterns are run in order to
determine the FMAX (maximum operating frequency) of specific parts of the device to ensure
that the device can operate at the specified frequency.
1.5.4
Device Debug
Once a specific device problem or bug has been identified, the tester can be a very flexible way
of controlling the device in order to determine the cause of the problem.
1.5.5
Test vector memory is very precious. Normally one clock cycle in the simulation will translate
to one test vectors worth of data, however the J971 (in common with many other testers) allows
the data from one test vector to be repeated for a specified number of cycles. If for example in
a simulation there was no activity on the device pins for say ten cycles before the next read or
write, this could be compressed in to a single line of test vector data with a "rep 9" opcode.
Confidential
DFT
In fact it is quite common for the data in one cycle to be the same as the next, and this results
in a significant saving of test vector memory. It can be seen that for a given number of clock
cycles in the pattern as a whole, then the less activity on the device pins the more the vectors
can be reduced by means of using repeat opcodes. However should there be a signal which
changes every few cycles, then the actual number of test vectors used will not be too different
from the total number of cycles.
Note that a clock (generated by using RTZ format) actually has vector data which determines
whether it is on or off, and it is the formatting which determines the shape of the signal. If the
clock is on in every cycle in the pattern, then the vector data for this pin will always be ', and
therefore is compressible using repeat opcodes. The goal is to have only one Edgeset used for
the whole pattern.
1.7
At speed test
A functional test cannot always be ran at system speed on the tester because most of the times
the tester is slower than the system. This is why a set of patterns need to be given in order to
check that the device will still be functional when used "at-speed".
1.8
Manufacturing test
The functional tests verify that the design matches his specifications. The Structural tests verify
that the design is well manufactured. For example, a design can be functional and contain
manufacturing defects: it will be rejected because of quality standards. A device that contains
manufacturing defects has great chances to have a breakdown during his life (this means: it will
be no more functional).
Manufacturing defects might remain undetected by functional testing yet cause undesirable
behaviour during circuit operation. To provide the highest-quality products, development
teams must prevent devices with manufacturing defects from reaching the customers.
The structural testing can be split into two parts: the test of the random logic (full custom,
synthesized logic) and the test of regular structures (RAMs, ROMS, FIFOs, PLAs... requiring
specific test algorithms).
Confidential
Scan
DFT
Bist
Logic
Logic
Logic
Memory Arrays
Random Logic
Logic BIST
JTAG
1.9.1
The Single Stuck-At fault model is the most common used fault model in the industry. It models
that a node is permanently put to the level 0 (stuck-at zero) or to the level 1 (stuck-at one).
In order to detect stuck-at zero on a node of a circuit, we need to control the state 1 on this node,
and then observe that we have "zero instead of one" on this node. This task can be automatized
in order to generate automatically Test Patterns using an Automatic Test Pattern Generator
(ATPG).
1.9.2
The Full scan methodology creates a partition in the design by chaining all the Flip Flops into
a big shift register. This method adds control ability and observability of all internal states of
Confidential
DFT
the design.
The goal of scan design is to make a difficult-to-test sequential circuit behave (during the
testing process) like an easier-to-test combinational circuit. Achieving this goal involves
replacing sequential elements with scannable sequential elements (scan cells) and then
stitching the scan cells together into scan registers, or scan chains.
Among all the test techniques, Full Scan methodology is highly recommended (Partial scan
techniques are more difficult to use and to validate, and they require the designer experience).
Full scan is the easiest, the fastest and the most robust way to generate automatically Test
Patterns that cover the stuck-at faults, because a combinational ATPG can be used.
Full scan has many benefits: highly automated, predictable, easy to use... It is the best way to
achieve the test coverage target (100% for stuck-at faults). See the scan representation below:
SCAN CHAIN
P
r
i
m
a
r
y
combinational
block
combinational
block
P
r
i
m
a
r
y
O
u
t
p
u
t
s
I
n
p
u
t
s
Dedicated scan_out Scan Flip Flops must be used in the design netlist for ALL Flip Flops.
This will ease the Front End to Back End flow and allow easy scan-reordering. Those Flip
Flops are available in the libraries with the "T" suffix.
The number of scan chains should be maximised accordingly with the number of inputs
and outputs available in the circuit. This is to reduce the test time.
Confidential
DFT
Cell Coupling - writing to one location writes the same or inverse value to
one or more other locations.
Address decoder malfunction. Decoder does not address the correct cell but
possibly some other cells, or the Decoder addresses several cells including
the correct one.
Confidential
DFT
The test algorithm can be applied from an external tester (Direct Memory Test - or DMT) or
from an embedded design block (Built In Self Test - or BIST).
Confidential
DFT
34
from design
MUX
4Kx16
16
MUX
16
from design
4Kx16
16
to primary outputs
MUX
MUX
16
MUX
from design
16
4Kx8
4Kx8
DMT2
MUX
DMT
from design
DMT1
Confidential
10
DFT
Confidential
11
JTAG INSTRUCTION
DFT
BINARY
CODE
BYPASS
11111 m a n d a t o r y i n s t r u c t i o n
EXTEST
00000 m a n d a t o r y i n s t r u c t i o n
SAMPLE/PRELOAD
00001 m a n d a t o r y i n s t r u c t i o n
IDCODE
00010 r e t u r n s t h e c h i p ID
01000 * c o n f i g u r e s m u x e d I O s f o r
scan path
* Bypasses b l a c k b o x e s ,
PLLs...
01011 * D i s a b l e s DC- P a t h s , Pu l l
Ups..
BIST MODE
01001 l a u n c h e s a l l B I S T s
*outputs a global status
*outputs all the Bfail signal
f o r debug
01010 * l a u n c h e s B I S T s i n l o o p
through the BurnIn controller
*outputs a global status
DMT MODE
11010 * E n a b l e s t o a c c e s s d i r e c t
Memory Test (DMT) f r o m
p r i m a r y IOs
11011 * E n a b l e s t o i s o l a t e t h e c o r e s
for block-by-block functional
t e s t i ng
Confidential
12
DFT
2- DFTKIT OVERVIEW
2.1
Many tasks are needed to be run in order to obtain good Test Coverage, and most of them can
be automated in a Design Flow. The goals of DftKit are various:
2.2
The DFT methodology defined with the DftKit is as much as possible independent from the
tools that will be run (internal or external tools).
Many tasks are needed to be run in order to obtain good Test Coverage, and most of them can
be automated in a Design Flow. DftKit can be used to:
The figure below shows the tasks that are integrated in DftKit.
Confidential
13
DFT
Design
SYNTHESIS
ATPG
Fault
Simulation
Gate level
Vectors
Memory BIST
Insertion
TAP controller
insertion
FC Target
Netlist
Netlist
Preparation
Gate
Burnin
BIST Controller
DFT rules
checking
Patterns
Simulation
EDIF
Utile
Test
Preparation
ATPG IDDQ
Vectors
Scan Chain
Insertion
DFT rules
checking
Confidential
FC Target
To
UTILE
System
IDDQ Patterns
Verification
14
DFT
Design
EDIF
Verilog
Memory
Memory
Memory
Design SETUP
Random
Logic
Library verification
- Verilog views
- DFT Views (e.g: Sunrise, SNPS, TetraMAX, Formality,...).
Confidential
15
DFT
Confidential
16
Methodology
Definition
DFT
Memory
Definition
Design
Memory BIST
Generation
BIST
BIST
Memory
Memory
Memory
Design SETUP
Random
Logic
BIST
BIST Ctrl
BIST Diagnostic
Confidential
17
3.3
DFT
DftKit analysis
DftKit analyses during the setup phase the design and recognize automatically all memories.
That allows to preset some parameters for the BIST generation step: number of words, of bits
for the memory, memory type, BIST name...
3.4
BIST generation
There are different ways to generate one BIST for a memory. These ways are defined by a set
of option. For example, you can generate a BIST which includes or not the bitmap capability.
The main option capabilities are:
scan collar (diagnostic capabilities)
burnin (life test capability if asked by the customer)
mask bit (in case if the memory include a mask bit)
redundancy (in case Design For Manufacturing asks for redundancy on memories)
bypass (capability to choose the bypass type)
tristate output (capability to choose the tristate management)
shared BIST (capability to share one BIST machine between many identical
memories)
reset (capability to choose the reset type)
bitmap (capability to include inside the BIST a bitmapping engine)
Confidential
18
Methodology
Definition
DFT
Memory
BIST
generation
Design
Memory BIST
BIST
Memory
Memory
Memory
Design SETUP
BIST
Memory
BIST
insertion
Random
Logic
BIST
BIST Ctrl
4.2
BIST Diagnostic
The proposed solution consists of a DftKit environment evolution allowing to support various
memory BIST architectures.
The emphasis will be on the integration and the automatic BIST generation and connection
(assumes that BIST algorithms and BIST techniques are known).
However, a common framework for the existing BIST approach(s) will be very helpful and will
provides an "approach-independent" solution.
Confidential
19
4.3
DFT
Common Framework
MEMORY
BIST
Confidential
MEMORY
MEMORY
BIST
20
DFT
In this architecture, BIST consists of generator and comparator in the same block. The BIST is
interfacing with the rest of the design. The BIST could be used one memory or shared between
many memories.
Architecture Type 2 This architecture implements collared memories and separate engine.
MEMORY
MEMORY
MEMORY
Collar
Collar
Collar
Engine 1
Engine 2
The engine consists of the pattern generation part of the BIST. It drives the memory collars and
manages the BIST responses. The engine could drive one or many memory collars.
The memory BIST components are defined as a library-based structure. BIST HW blocks are
generated during the Memory cut generation, accordingly with the desired BIST architecture.
Confidential
21
DFT
In order to perform the proper wiring-up, the BIST insertion tool requires a <.net> file.
This file mainly defines the BIST connection signals, the pins to be added for BIST operation,
the scan pins (if necessary), the way to put the BIST in functional mode.
There are two kinds of signals:
4.6.2
For all bits of type 2 (control and status signals), the user can define any connection. In order
to avoid mistakes, some error sources are tracked by DftKit:
consistency between .net file and the memory module inside the design
pin names consistency are check at all hierarchy level, with automatic
renaming if needed
5- DRC
5.1 Design Rule Checking strategy
The DRC strategy consists in verifying that you can replace a non-scanned design by a full scan
design, in a transparent way to the user, without changing the functionalities. That means
change flip flops into scan flip flops, add signals and pins for scan control...
Confidential
22
DFT
Memory
Definition
Design
Memory
BIST
BIST
BIST
Design
Rules
Check
SCAN
Insertion
Random
Logic
Memory
Memory
Memory
Design SETUP
BIST
SCAN Out
SCAN Out
SCAN Ctrl
BIST Ctrl
BIST Diagnostic
Generates.synopsys_dc.setup automatically
Runs the DRC for testability and reports the errors if any. The DRC
checked are for scanability, and testability.
Confidential
23
DFT
Inserts the scan chains and save the protocol file and netlist with scan for
later usage with various ATPGs
7 - ATPG INTEGRATION
7.1
ATPG strategy
An ATPG is a tool that automatically generates TEST PATTERNS for a design. It can be based
on different type of fault models, such as Stuck-At, transition.
The ATPG strategy consists in running the ATPG on a full-scan netlist and reporting the fault
coverage.
7.2
The ATPG task of the DftKit can be detailed in the following sub-tasks :
Select a faultlist OR create a new one (insert stuck at faults on the netlist).
Generate Test Patterns for this faultlist and the corresponding report.
Confidential
24
DFT
8- ATPG-IDDQ INTEGRATION
8.1
An ATPG is a tool that automatically generates IDDQ TEST PATTERNS for a design. It can
be based on different type of fault models, such as Pseudo Stuck-At or Toggle.
The ATPG strategy consists in running the ATPG on a full-scan netlist and reporting the fault
coverage. Specific check is done by the tool to verify the Iddq compliance.
8.2
The ATPG IDDQ task of the DftKit can be detailed in the following sub-tasks :
Generate Test Patterns for this faultlist and the corresponding report.
Confidential
25
BIST
DFT
Random
Logic
Memory
BIST
Memory
Memory
BIST
SCAN Out
SCAN Out
SCAN Ctrl
TAP
BIST Ctrl
Generates the JTAG TAP controller and inserts it into the netlist.
Automatically connect the TAP controller test modes pins to the control
signals of the design test modes (scan, BIST, BurnIn, etc.).
Confidential
26
DFT
27
DFT
patterns... Optionally, you can write the resulting fault list in order to go in an incremental mode
(run an ATPG or a new fault simulation after).
Select the patterns which will be fault simulated (from a previous task of
DftKit (ATPG for example) or functional ones in WGL or VCD format).
Select the fault list OR create a new one (with the stuck at faults model).
Simulate the pattern to verify that the expected values are the obtained
ones.
User can load in the same task many different patterns files (in the same format). This is called
the multi pattern mode. In this case, only the simulation and fault simulation is repeated for each
file. The libraries and netlist(s) reading and compiling step is done only once.
12 - SIMULATION INTEGRATION
12.1 Simulation strategy
The target of this task is to verify the patterns generated by a DftKit ATPG previous task. It can
also be used for the simulation of any external stimuli.
The simulation strategy consists in running a verilog simulator with the patterns chosen by the
user.
Confidential
28
DFT
Confidential
29