design for test

Upload: spauls

Post on 01-Mar-2016

19 views

Category:

Documents


0 download

DESCRIPTION

DFT for ASIC

TRANSCRIPT

  • RuChip design flow, Dec 2012 DFT

    DESIGN FOR TEST

    1.1 Testability and Design For Test (DFT)

    The testability is a design parameter that deals with the creation of an "easily testable" design: a design for which test patterns can be generated with a reduced cost, by making the internal nodes controllable and observable. Before we ship a design to customers, it has to be tested using several techniques. The better is the coverage of the pattern we apply, the better is the level of quality that we ship to customers. Applying test vectors and achieving high coverage levels is more and more complicated as along as the complexity of the devices is increasing, and require well defined Design For Testability (DFT) methodologies to be though of from the very beginning of the device.

    Design For Testability techniques can be classified into two categories:

    structured techniques: based on a set of design rules that must be used at the design level and on design automation. This includes Scan techniques, Built-In Self Test (BIST), JTAG Boundary Scan, Automatic Test Pattern Generation (ATPG), etc.

    ad-hoc techniques: specific design changes in order to ensure better controllability and observability of internal nodes by implementing a set of specific techniques like: adding extra control pins, breaking feedback loops, adding specific test mode, observing through XOR clouds, testing design parts with embedded software...

    Because Time to Market becomes a key issue in the industry, we cannot afford to rely on ad-hoc techniques because they are not automated, are more design-dependent and therefore require the designer's expertise. So, we highly recommend the use of automated DFT insertion tools: the consequence is a specific set of design rules for this methodology that are to be obeyed.

    1.2 Test Coverage

    The Test Coverage is a figure that measures the test quality. It measures the percentage of tested faults among all the possible faults, it is given by the figure:

    Test Coverage = customer toshipped parts #

    parts defectivenon #

    The question is how to evaluate the Test Coverage as it is still based on Customer Return? We

    Confidential 1

  • RuChip design flow, Dec 2012 DFT

    need to evaluate an image of the Test Coverage before shipping the pieces to the customer.

    1.3 Minimising Customer returns

    The Browne-Williams formula give a relation between Process Yield, Defect Level (in PPM -Part Per Million) and Test Coverage (as defined above).

    DL

    Yield %

    20000

    40000

    60000

    100000

    80000

    120000

    10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0

    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).

    1.4 How to reach a good Test Coverage

    We can reach a good Test Coverage by attempting to test all possible "defects", these defects being modelled using "fault models". Therefore, the complete fault list is related to many

    TC=95%

    TC=97%

    TC=99%

    DL=1-Y DL=Defect Level (PPM)Y=Process Yield TC=Test Coverage

    (1-TC)

    Confidential 2

  • RuChip design flow, Dec 2012 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.

    Voltage test (functional + Scan ATPG)

    Iddq test

    At-speed test

    Burn-In / Life tests

    100 %

    # Vectors

    # Faults

    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.

    1.5 Understanding Tester constraints

    The designer needs to be aware of the way in which the tester works, and the things that have to be taken into consideration to ensure that vectors can be ported easily, to ensure that the vectors actually produce a meaningful test on the tester.

    Confidential 3

  • RuChip design flow, Dec 2012 DFT

    1.5.1 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 Issues

    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 4

  • RuChip design flow, Dec 2012 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.6 Functional test

    The design functionality needs to be exhaustively verified. A block-by-block approach can help to validate the different design functionalities: it relies on the design partitioning in order to isolate design blocks and fully control and observe their Inputs and Outputs. Specific test modes need to be defined in order to access the design blocks, and simulations should be run to verify these modes.

    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 5

  • RuChip design flow, Dec 2012 DFT

    Cores & Blocks

    Mem

    ory

    Arr

    ays

    Ran

    dom

    Log

    ic

    Logi

    c

    1.9 Structural tests of random logic

    The random logic (mostly synthesized logic in semi-custom devices) needs to be tested for manufacturing defects: it implies many fault models that are complementary approaches.

    1.9.1 The Single Stuck At fault model

    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 Full Scan and ATPG

    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

    Scan Bist

    JTAG

    Logi

    c

    Logi

    c

    Logic BIST

    Confidential 6

  • RuChip design flow, Dec 2012 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

    combinational block

    combinational block

    P r i m a r y I n p u t s

    P r i m a r y O u t p u t s

    For full scan, please follow these basic recommendations:

    The scan style should be Multiplexed Flip Flop.

    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 7

  • RuChip design flow, Dec 2012 DFT

    1.9.3 IDDQ coverage

    The IDDQ test consists in measuring Quiescent current when the circuit is in a Stand-by mode. If the current is above a certain limit, then the circuit FAILS the IDDQ test and is rejected. This enables to detect some defects that are not covered by other forms of test (such as bridging faults, leakages...)

    The IDDQ vectors can be automatically generated using an ATPG which will control the circuit state by controlling the state of all the sequential elements (through scan) and the observation is done through a current measure. This technique is also called Scan-Iddq and is highly automated when full-scan is used. The figures given by the ATPG deal with the coverage of these IDDQ test patterns: the computation is often based on the PSEUDO STUCK-AT fault model.

    The second step is then to simulate the vectors generated by the ATPG using a tool that can help to select the best candidates for IDDQ coverage (e.g: PowerFault)

    1.10 Structural tests of regular structures

    The regular structures (like RAMs, ROMs, PLAs...) require a more exhaustive test than only Stuck-at fault testing. Other kinds of faults (such as coupling faults) may occur and require specific test patterns

    1.10.1 Single Stuck At fault coverage, coupling faults.

    If we take the example of a RAM, many faults must be tested. The most widely used test algorithms are "March" algorithms. For instance, the March algorithm called "Marinescu 17N" will detect the following faults in the RAM structure:

    Stuck at of Cells - a particular location is fixed at logic one or logic zero. Stuck open - a cell is disconnected to the data line. 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.

    Read/Write Amplifier malfunctions. Stuck-at of Read/Write command. Stuck-at, open, shorts of Data bus.

    Confidential 8

  • RuChip design flow, Dec 2012 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).

    1.10.2 Built In Self Test (BIST)

    The BIST is a design block that implements a test algorithm in order to test the embedded memories. A single BIST can be used for each RAM (or the same BIST can be shared to test several RAMs). The BISTs can be launched from the standard JTAG TAP controller instruction called RUNBIST.

    The BIST generates a status to tell if the test was successful or not, which can be brought out of the circuit using the JTAG interface.

    The BIST can be tested using scan techniques (as it becomes part of the Random logic). A specific input from the BIST is used in scan test mode in order to Bypass the memories to avoid the propagation of unknown states in the circuit during scan operations.

    The advantages of BIST are to run at-speed testing of the memory, to protect intellectual property, to enable Test re-use, to help gain test time on the tester. The drawbacks are some delays introduced on the functional paths and some silicon area.

    1.10.3 Direct Memory Test (DMT)

    If a Bitmap analysis is requested or if the test algorithm is not mature enough to be implemented in a BIST, the DMT (Direct Memory Test) is an efficient solution. It is often used at an early technology phase.

    The DMT consists in isolating the Memory in order to be able to apply any test pattern. The most classical approach is the MUX isolation as shown below:

    Confidential 9

  • RuChip design flow, Dec 2012 DFT

    MUX

    MUX

    MUX

    MUX

    4Kx16

    4Kx16

    4Kx8

    4Kx8

    MUX

    MUX

    from design

    from design

    from design

    from design

    from primary inputs

    16

    16

    16

    to p

    rimar

    y ou

    tput

    s

    34

    16

    16

    8

    8

    DM

    T

    DM

    T1

    DM

    T2

    Confidential 10

  • RuChip design flow, Dec 2012 DFT

    1.10.4 BURN IN testing

    Life Test consists in tracking defects that appear after some time of usage of the circuit. It consists mainly in using the BurnIn technique: the circuit is put in an oven and tested after some time. Two techniques are used for Burn In:

    Static Life Test: the chip is only powered but not running

    Dynamic Life Test: the chip is running and has activity in most of its internal nodes.

    For the purpose of Dynamic Life Test, a BurnIn controller can be used in order to launch BIST test cycles in loop, and therefore activate the memories of the complete design (creating internal nodes activity).

    1.11 Test Modes definition and management

    A top level test-controller is often needed in order to drive the different Test Modes (scan, BIST, Iddq, Core Isolation, etc.). This test controller could be obtained using a TAP controller, as well as a user defined test controller.

    1.11.1 JTAG TAP controller

    Once the scan-netlist is certified to have a good Single-Stuck-At fault coverage, a good Iddq fault coverage, BIST and BurnIn controller inserted, the JTAG TAP controller can be inserted in the design in order to drive the different test modes.

    JTAG can be used for TEST controller management, but also for Boundary Scan insertion (useful for core isolation, board level testing, etc.).

    1.11.2 Defining the different test modes

    See an example of different test modes that can be defined for a given circuit below. Of course, there can be many other instructions defined depending on the tested design.

    Confidential 11

  • RuChip design flow, Dec 2012 DFT

    JTAG INSTRUCTION BINARYCODE

    EFFECT ON THE DESIGN

    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

    SCAN TEST MODE 01000 * c o n f i g u r e s m u x e d I O s f o r s c a n p a t h * B y p a s s e s b l a c k b o x e s , P L L s . . .

    SCAN-IDDQ TEST MODE 01011 * D i s a b l e s DC- P a t h s , Pu l l U p s . .

    BIST MODE 01001 l a u n c h e s a l l B I S T s * o u t p u t s a g l o b a l s t a t u s * o u t p u t s a l l t h e B f a i l s i g n a l f o r d e b u g

    BURNIN TEST MODE 01010 * l a u n c h e s B I S T s i n l o o p t h r o u g h t h e B u r n I n c o n t r o l l e r * o u t p u t s a g l o b a l s t a t u s

    DMT MODE 11010 * E n a b l e s t o a c c e s s d i r e c t M e m o r y T e s t ( D M T ) f r o m p r i m a r y I O s

    CORE ISOLATION MODE 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 f o r b l o c k - b y - b l o c k f u n c t i o n a l t e s t i ng

    Confidential 12

  • RuChip design flow, Dec 2012 DFT

    2- DFTKIT OVERVIEW

    2.1 Purpose of the DftKit

    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:

    to create a Frame Work for DFT insertion in a design to automate repetitive design phases in order to let the designer focus

    on real design for test issues. Defining a common Design For Test methodology that can be re-used by other design teams

    to recommend standard DFT flows for Test Coverage improvement.

    2.2 DftKit flow overview

    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:

    define a DFT flow composed of different tasks change or delete the flow tasks save the flow sequence in a dofile execute the flow

    The figure below shows the tasks that are integrated in DftKit.

    Confidential 13

  • RuChip design flow, Dec 2012 DFT

    Design SYNTHESIS

    ATPG Fault Simulation

    Memory BIST Insertion

    Burnin BIST Controller

    DFT rules checking

    Scan Chain Insertion

    DFT rules checking

    FC Target

    Patterns Simulation

    ATPG IDDQ

    FC Target

    IDDQ PatternsVerification

    TAP controllerinsertion

    Netlist Preparation

    Test Preparation

    To

    UTILE System

    Netlist

    Vectors

    Vectors

    EDIF Utile

    Gate

    Gate level

    Confidential 14

  • RuChip design flow, Dec 2012 DFT

    2.3 Design Setup Phase

    The DftKit flow will ran on a complete design database that is verified in the first phase. This database is created after the Design_Setup phase.

    Methodology Definition Design

    2.4 Design Setup Phase Overview

    The Design Setup phase of the DftKit can be detailed in the following sub-tasks

    Check Netlist: The netlist is verified against the Library Library verification

    - Verilog views - DFT Views (e.g: Sunrise, SNPS, TetraMAX, Formality,...).

    Automatic memory identification: the memories are automatically identified and traced into a file for later automatic BIST and BurnIn insertion

    Automatic translation of the netlist into VERILOG in case of a different input netlist format (in this case, SNPS views are needed).

    Design SETUP

    EDIF Verilog

    RandomLogic M

    emor

    y M

    emor

    y

    Mem

    ory

    Confidential 15

  • RuChip design flow, Dec 2012 DFT

    3 - MEMORY BIST GENERATION

    3.1 Built In Self Test generation strategy

    There is one corresponding BIST for each memory. If several different memories exist in the design, several different BISTs should be generated.

    The memory BIST generation task is optional. It allows to generate automatically each memory BIST and run its synthesis.

    In case the BISTs are already generated and synthesised, you can skip this task. But please verify that the database generated is compliant with DftKit (consistent ".net" files should exist).

    See the design below:

    Confidential 16

  • RuChip design flow, Dec 2012 DFT

    3.2 BIST generation task overview

    The BIST generation task of DftKit can be detailed in the following sub-tasks

    Generate the BIST for one memory Generates .synopsys_dc.setup file automatically Run the BIST synthesis including the scan insertion

    BIST

    Methodology Definition Design

    Design SETUP

    Random Logic

    Mem

    ory

    Memory BIST Generation

    Memory Definition

    BIST

    Mem

    ory

    BIST

    Mem

    ory

    BIST Ctrl BIST Diagnostic

    Confidential 17

  • RuChip design flow, Dec 2012 DFT

    3.3 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)

    4- MEMORY BIST INSERTION

    4.1 Built In Self Test insertion strategy

    The memory BIST insertion strategy consists in replacing a non-BISTed memory by a BISTed memory, in a transparent way to the user.

    See the design below:

    Confidential 18

  • RuChip design flow, Dec 2012 DFT

    4.2 BIST insertion task overview

    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.

    BIST

    Methodology Definition Design

    Design SETUP

    Random Logic

    Mem

    ory

    Memory BIST

    Memory BIST

    insertion

    Memory BIST

    generation

    BIST

    Mem

    ory

    BIST

    Mem

    ory

    BIST Ctrl BIST Diagnostic

    Confidential 19

  • RuChip design flow, Dec 2012 DFT

    4.3 Common Framework

    By common BIST insertion framework, we mean the following:

    Common DFT environment for memory BIST insertion and connection

    Support various BIST architectures in a transparent way. The framework should be open to support additional and new BIST solutions.

    Support coherent BIST generation structure. Library approach is supported, however, the system will allow "on-the-fly" BIST generation (previous DftKit task)

    4.4 BIST architectures

    In order to achieve a common BIST framework, the DFT environment will be based on BIST architectures rather than BIST generators.

    In the first step, 2 architectures are identified:

    Architecture Type 1

    We define the architecture of type 1 as follows:

    MEMORY

    MEMORY

    MEMORY

    BIST BIST

    Confidential 20

  • RuChip design flow, Dec 2012 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

    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.

    4.5 BIST components generation

    BIST components can be pre-generated at memory generation level using a "library data structure" approach.

    "On-the-fly" BIST generation will be possible as describe in the previous task (BIST generation).

    Engine 1

    Engine 2

    Confidential 21

  • RuChip design flow, Dec 2012 DFT

    4.6 BIST connection (Wire-up step)

    4.6.1 BIST connection overview

    In order to perform the proper wiring-up, the BIST insertion tool requires a 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:

    signals that will be connected automatically (address bus, in and out data bus, wen ,csn, clock(s)...)

    BIST control and status signals (RBACT, TM, BEND...). There are many ways to manage these signals: from design top level, from a TAP controller, from a specific test controller. The user can defined that. The default is to connect these signals to design top level. But the user can give any point defined by its hierarchy and pin name.

    The file is created during the BIST generation step.

    The BIST signal wiring-up can be performed at different levels.

    4.6.2 Wire up error detection

    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 by default, outputs can not be connected to more than one net 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

  • RuChip design flow, Dec 2012 DFT

    See the design below:

    5.2 DRC task overview

    The DRC task of the DftKit can be detailed in the following sub-tasks:

    Generates.synopsys_dc.setup automatically Runs the DRC for testability and reports the errors if any. The DRC

    checked are for scanability, and testability.

    Methodology Definition

    BIST

    Design

    Design SETUP

    RandomLogic

    Mem

    ory

    Memory BIST

    BIST

    Mem

    ory

    BIST

    Mem

    ory

    Memory Definition

    BIST Ctrl BIST Diagnostic

    Design Rules Check

    SCAN Insertion

    SCAN Ctrl

    SCAN Out

    SCAN Out

    Confidential 23

  • RuChip design flow, Dec 2012 DFT

    6 - SCAN INSERTION & DRC

    6.1 Scan Insertion strategy

    The memory SCAN insertion strategy consists in replacing a non-scanned design by a full scan design, in a transparent way to the user. The signals added by the SCAN insertion tool are wired up to the primary inputs and outputs of the design.

    6.2 SCAN insertion task overview

    The scan insertion task of the DftKit can be detailed in the following sub-tasks :

    Generates .synopsys_dc.setup automatically 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 ATPG task overview

    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. Save the testbench in Verilog format or / and the patterns in WGL or

    STIL format (optional).

    Save the faultlist (optional). report the Untested faults.

    Confidential 24

  • RuChip design flow, Dec 2012 DFT

    8- ATPG-IDDQ INTEGRATION

    8.1 ATPG IDDQ strategy

    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 ATPG IDDQ task overview

    The ATPG IDDQ task of the DftKit can be detailed in the following sub-tasks :

    Insert Pseudo Stuck at faults on the netlist. Generate Test Patterns for this faultlist and the corresponding report. Save the testbench in Verilog format or / and the patterns in WGL or

    STIL format (optional).

    Save the faultlist (optional). report the Untested faults.

    9 - TAP CONTROLLER INSERTION

    9.1 TAP controller insertion strategy

    The TAP controller can be used to drive the different Test Modes of the design, and test the interconnection with the pads. It can be automatically generated by commercial tools. The TAP insertion strategy consists in inserting the TAP controller on top of the netlist with DFT inserted and connect the TAP modes to the mode control signals.

    See the design below:

    Confidential 25

  • RuChip design flow, Dec 2012 DFT

    9.2 TAP controller task overview

    The TAP controller task of the DftKit can be detailed in the following sub-tasks : Define the Test Modes as instructions for the TAP controller. 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.).

    report the values to program in order to switch to the test modes.

    BIST

    RandomLogic

    Mem

    ory

    BIST

    Mem

    ory

    BIST

    Mem

    ory

    BIST Ctrl

    SCAN Out

    SCAN Out

    TAP

    SCAN Ctrl

    Confidential 26

  • RuChip design flow, Dec 2012 DFT

    10 - IDDQ VALIDATION INTEGRATION

    10.1 IDDQ Validation strategy

    The target of this task is to achieve two main parts. The first one is a verification of Iddq patterns: Iddq rules checking and classical simulation verification due to a simulator linked with an Iddq tool (compiled PLI). The second one is a selection of the best candidates for the best Iddq coverage. Please, note that at this moment the second part is not yet implemented, even if the complete database is generated.

    The Iddq Validation strategy consists in running a verilog simulator on a full-scan netlist with the patterns coming from the ATPG IDDQ task.

    10.2 IDDQ Validation task overview

    The IDDQ Validation task of the DftKit can be detailed in the following sub-tasks :

    Purpose a time scale. Read and compile the libraries and netlist(s). Initialize the Iddq header file. Managed the SDF (back end annotation file) automatically (optional). Load the simulation testbench (stimuli). Run the simulation. Create a VCD file (optional).

    11 - FAULT SIMULATION INTEGRATION

    11.1 Fault simulation strategy

    A Fault Simulator is a tool that calculates the test coverage and fault coverage of a design for a set of patterns.

    The fault simulation strategy consists in running the fault simulator on a netlist and reporting the fault coverage of the corresponding patterns.

    The inputs are the netlist, the corresponding libraries, the set of patterns to fault simulate. Optionally, you can give the fault list (list of fault which are injected in the design). If you do not put any fault list, the tool will create a new one by injecting faults on all the inputs / outputs of all the gates for the netlist.

    The output is a report which gives the fault and test coverage, the class of faults, the number of

    Confidential 27

  • RuChip design flow, Dec 2012 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).

    11.2 Fault simulation overview

    The fault simulation task of the DftKit can be detailed in the following sub-tasks :

    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.

    Fault simulate the patterns to obtain the report. write the report and optionally the resulting fault list.

    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.

    12.2 Simulation task overview

    The simulation task of the DftKit can be detailed in the following sub-tasks :

    Purpose a time scale. Read and compile the libraries and netlist(s). Managed the SDF (back end annotation file) automatically (optional). Load the simulation testbench (stimuli). Run the simulation. Create a VCD file (optional).

    Confidential 28

  • RuChip design flow, Dec 2012 DFT

    13 - EDIF OUT INTEGRATION

    13.1 Edif out strategy

    The target of this task is to generate an Edif netlist ready for the back end. It also get the scan chain file.

    The edif out strategy consists in running a a tool which can translate the verilog netlist into an Edif one.

    13.2 EDIF out task overview

    The Edif out task of the DftKit can be detailed in the following sub-tasks :

    Read the verilog netlist. Create the links between the different blocks. Write the netlist in Edif format. Create a link to get the scan chain file.

    Confidential 29