march new sumit tt

Upload: ashvinikumar-dongre

Post on 05-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/2/2019 March New Sumit Tt

    1/31

    March Test

    Under Guidance of . . .

    Presented B -Sumit Patel2011VLSI-14

    31-March-2012

  • 8/2/2019 March New Sumit Tt

    2/31

    1.Introduction 2. Formal Models

    Memory Model Fault Model

    3. Automatic Test Generation Methodology. Fault List Representation Test Pattern Generation

  • 8/2/2019 March New Sumit Tt

    3/31

    1.Introduction

    March Test : A march test consists of a finite sequence of march elements.

    A march

    element

    is

    a

    finite

    sequence

    of

    operations

    applied

    to

    every

    memory cell before proceeding to the next cell. It can be done in one of two address orders: an increasing address

    order (e.g. from address 0 to address n l), or a decreasing address order ( ). When the address order is irrelevant the symbol m will be used.

    An operation can consist of writing a 0 into a cell ( w ) , writing a 1 into

    a cell (w1), reading a cell with expected value 0 (r0), and reading a cell with expected value 1 (r1).

    For example march test, written as {m (w0); (r0,w1); (r1,w0)} It has the three march elements M0: m (w0), M1: (r0,w1) and M2: (r1,w0).

    All operations of a march element are done before proceeding to the next address.

  • 8/2/2019 March New Sumit Tt

    4/31

    March Test

    Notation

    Some basic march notations are r Memory action: A read operation w Memory action: A write operation r0 Memory action: Read a 0 from the memory location r1 Memory action: Read a 1 from the memory location w0 Memory action: Write a 0 to the memory location w1 Memory action: Write a 1 to the memory location Write a 1 to a cell containing 0 or the cell has a rising transition Write a 0 to a cell containing 1 or the cell has a falling transition Complement the cell contents Increasing memory addressing order

    Decreasing memory addressing order mAddressing order can be either increasing or decreasing

  • 8/2/2019 March New Sumit Tt

    5/31

    2 Formal Models 2.1 Memory Model

    oriented memories only. Definition . An Ncell 1bit memory can be formally defined as

    4upla:h A, N, M, X0 i

    Where A={0, 1} is the set of possible states of a memory cell, N is the number of cells, = = , , , . . . ,

    n , ,

    X0 = { ri , wid | 0 i N1,d = A} is the set of possible memory operations. where ri means a read operation on the cell i, whereas wid

    = th , .

  • 8/2/2019 March New Sumit Tt

    6/31

    Memor model contd. The behavior of an Ncell 1bit memory can be formally represented by an Edge

    Labeled Directed Graph (ELDG) G defined as

    , , e ,

    Where V is the set of 2N vertices representing the possible states of the memory, , , ,

    possible memory operations that cause the transition from a vertex u to a vertex v, and

    Le : E {labels} is is a label function that maps edges to labels, where given the edge (u,v), the corresponding label is defined as follows:Label = x/k,Where

    x = X0 is memory operation able to fire the transition from u to v, and k={0,1, U} is the corresponding memory output, where the symbol U

    denotes the unknown value at the memory data output signals when a write operation is per orme .

  • 8/2/2019 March New Sumit Tt

    7/31

    Memor model contd.

  • 8/2/2019 March New Sumit Tt

    8/31

    2.2 Fault Model

    This model is used to represent the target memory functional faults. Faults are modeled starting from Faulty Behaviors (FBs), i.e., deviations of the memory behavior from the expected one. An FB is expressed using the following notation:

    Di represents a faulty value D = {0,1} stored in the cell i. Rid represents an erroneous output D = {0,1} obtained while

    reading the content of the cell i. This formalism is needed to represent classes of faults where a read operation returns an erroneous value, while the content of the memory cell is correct.

    For example, 0 means that the it cell assumes an erroneous value 0, while Ri1 means that a read operation on cell i returns the value 1 even if the content of the cell is 0.

  • 8/2/2019 March New Sumit Tt

    9/31

    Fault Model contd. Definition : A Functional Fault Primitive (FFP) represents the difference

    between an expected (fault free) and the observed (faulty) memory behavior under a set of performed operations, denoted by

    = ,

    Where S

    and

    FB

    represent

    a

    stimulus

    and

    a

    faulty

    behavior,

    respectively.

    . , the Inversion Coupling Fault (a transition performed on an aggressor cell a causes the inversion of the logic value stored in a victim cell v ) can be described b the followin two FFPs:

  • 8/2/2019 March New Sumit Tt

    10/31

    Fault Model contd. Where a stimulus S is composed of an initial condition C of the f cells

    (faulty cells), followed by an optional sequence of memory operations {op 1 , op 2 , . . . , op m}

  • 8/2/2019 March New Sumit Tt

    11/31

    The march test generation methodology is based on the functional memory model and on the definition of functional faults in terms of FFPs. The main steps of the generation process are summarized as follows:

    1. Fault list representation. Translate each FFP in the fault list into an operational representation of the faulty behavior, referred to as Addressed FFP, or AFFP .

    2. Test pattern (TP) generation. Generate the set of TPs able to cover each AFFP. Each TP is represented by an additional edge on the ELDG modeling of the memory.

    3. March test generation. Traverse the ELDG to generate the march test.

  • 8/2/2019 March New Sumit Tt

    12/31

    3.1 Fault List Re resentation

    The FFP formalism describes the conditions to sensitize and detect FBs by considering the f cells only. It does not consider the actual position of these cells in a generic Ncell memory.

    To map an FFP into a generic Ncell memory model, we therefore introduce the concept of AFFP. formalized as

    AFFP=h I, Es, Fv, Gv i , Where

    I=(i0,i1,i2,.iN1)|i k= {0,1,}, 0 k N1 is the initial state of the memory. = = s m

    sequence of m operations, performed on the aggressor cell, needed to sensitize the fault.

  • 8/2/2019 March New Sumit Tt

    13/31

    3.1 Fault List Re resentation contd. Fv=(f 0,f 1,f 2,.f N1)|f k={0,1,}, 0 k N1 are the logical values (faulty

    Gv=(g0,g1,g2,.gN1)|g k={0,1,}, 0 k N1 are the logical values (expected state) A sin le FFP ma enerate several AFFPs. For example, considering the Inversion Coupling fault FFPs defined

    earlier applied to the two cell memory represented in Fig. 1 (N = 2, i=

    address of the first cell, j = address of the second cell ), we obtain the

  • 8/2/2019 March New Sumit Tt

    14/31

    3.2 Test Pattern Generation

    From an AFFP, it is easy to define the sequence of memory operations, TP, used to detect the corresponding faulty behavior as

    TP= h AFFP, O s i , where AFFP is the target AFFP, and Os ={rid} is the read and verify

    operation performed on the victim cell, needed to observe the fault effect.

  • 8/2/2019 March New Sumit Tt

    15/31

    3.2 Test Pattern Generation contd.

    For example, the four AFFPs are covered by the following TPs in a two cell memory:

  • 8/2/2019 March New Sumit Tt

    16/31

    Pattern Gra h Each TP can be represented by an additional directed edge (faulty edge)

    from the state I to the state Gv on the memory model introduced. The faulty edge label is defined as Es , Os , where Es is the sequence of

    sensitizing operations, and Os is the read and verify operation required to detect the fault.

    The ELDG including the faulty edges is named Pattern Graph (PG) and is defined as

    PG=hV,E F, Le Lf i ,

  • 8/2/2019 March New Sumit Tt

    17/31

    Pattern Graph(contd.)

  • 8/2/2019 March New Sumit Tt

    18/31

    3.3 March Test Generation Al orithm The PG(Pattern Graph) is used to generate a march test detecting the set

    of faults described in the graph. Some additional definitions are required to understand test generation.

    Definition : FEv is the set of faulty edges incident from the state v. FEv = .

    to the state v.

    Referring to the example in fig.3, we have four sets of faulty edges:FE00 = {w j1 r j, ri0 , ri, r j0 , w i1 , r j0 },FE01={},FE10={w j1 , ri1},

    an

    11= .

  • 8/2/2019 March New Sumit Tt

    19/31

    March Test Generation Al orithm Contd.

    Definition : FEiv is the set of faulty edges incident from state v, with an aggressor cell equal to i, 0 i N1 , FEiv = {TP|I=v, acell=i}. It represents the subset of TPs having the initialization state equal to state v and the aggressor cell address equal to i.FEi00 = { ri, r j0 , w i1 , r j0 },FE j00 = {w j1 r j, ri0 },FEi01={},FE j10={w j1 , ri1}, FE11={}.

    Transition TP(test pattern): FEiv1 v2 is the set of faulty edges incident from the state v 1 and incident to the state v 2 , with an aggressor cell

    , .

  • 8/2/2019 March New Sumit Tt

    20/31

    March Test Generation Al orithm Contd.

    Loop: if v1=v2 then FEiv1

    v2

    is called a loop TP(test pattern)

    v . v i.e. for FE00 = {w j1 r j, ri0 , ri, r j0 , wi1 , r j0 },

    $ FE00 = 3,an or FE00 = r , r 0 , w 1 , r 0 ,$ FEi00 =2 .

  • 8/2/2019 March New Sumit Tt

    21/31

    March Test Generation Al orithm Contd.

    FE i00 = { r i, r j0 , w i1 , r j 0 },

    j = j j i

    FE i10={},

    10= w 1 , r 1 ,

    FE i01=FE i01={},

    FE 11={}.

  • 8/2/2019 March New Sumit Tt

    22/31

    March Test Generation Al orithm Ste s Select initial state to start.

    , .

    In our example state 00 having high cost(3) than state 11 (1) choose a faulty edge with max cost.

    for FEi00 = { ri, r j0 , w i1 , r j0 }, FEi00 =2 for FE j00 = {w j1 r j, ri0 }, $ FE j00 =1

    Every time a faulty edge is traversed, the operations in its label are added to the ME.

    also the read and verify operation needed to observe the fault is added if it is not already present .

    Three rules can be derived for generating read operations:Rule 1. If read cell=sensitize cell: place read immediately after the write

    o eration or when o eration is the last o eration of ME lace the read operation at the beginning of next ME.

  • 8/2/2019 March New Sumit Tt

    23/31

    March Test Generation Algorithm Steps(Contd.)

    Rule 2. if read cell < sensitize cell and AO is down( or read cell >

    ME.Rule 3. in any other condition read is added as first operation of next ME.

    e genera on en s no au y e ges can e se ec e rom e current state V, and ME closed.

    Then each operation of ME is applied on the each cell of the memory s ar ng rom e n a s a e . If during this operation additional faulty edges are traversed, they are

    marked as detected and removed from the graph.

    At this point, we have reached the final state of the ME. The ME is completely defined, and if there are still faulty edges to traverse

    the next ME is initialized, and the process is repeated .

  • 8/2/2019 March New Sumit Tt

    24/31

    Exam le To better understand the generation algorithm, we will show its

    application on the PG in Fig. 3. The initial selected state is V = 00, since #(FE 00)= 3 (00 is the state with

    the highest number of faulty edges incident from it). We have to choose one faulty edge, so we calculate the cost of the different sets of faulty e ges:

    FEi00 = { ri, r j0 , w i1 , r j0 }, $ FEi00 =2

    for FE j00 = {w j1 r j, ri0 }, $ FE j00 =1. The algorithm chooses FEi00 and ri, r j0 is selected and added to the ME,

    which becomes (ri0) with the current memory state still equal to 00. At this point, the algorithm chooses the only remaining choice in FEi

    represented by w i1 , r j0 . wi1 (sensitizing sequence) is added to the ME, which becomes (ri0 wi1 ), while the observation is not required since it is already present.

  • 8/2/2019 March New Sumit Tt

    25/31

    Exam le contd.

    FE i00 = { r i, r j0 , w i1 , r j 0 },

    j = j j i

    FE i10={},

    10= w 1 , r 1 ,

    FE i01=FE i01={},

    FE 11={}.

  • 8/2/2019 March New Sumit Tt

    26/31

    Exam le contd. The new state is now v = 10. FE i10={ }, so the algorithm closes the ME

    and generates the corresponding ME : (r0 w 1 ). It then simulates the operations of the ME on cell j. The simulation shows

    that also w j 1 , r i1 (from state 10) is traversed. The read and verify operation performed on cell i is added to the next ME,

    which becomes (r i1 ) again with up AO . The current state is now v =11. Since FE is em t the ME is closed and

    the corresponding ME is generated: (r1 ). We now must change state to 00, which is the only state still having

    fault ed es. The operation to move to 00 is w j 0 , it is added to the new ME, which

    becomes (w j 0 ) with up AO. The ME is closed and the corres ondin enerated ME is w .

  • 8/2/2019 March New Sumit Tt

    27/31

    Exam le contd. Now, the algorithm traverses the last faulty edge, and it adds the

    operations on its label into a new ME, obtaining an ME equal to (w j1 r j1 ), with down AO.

    It also inserts the read and verify operation, obtaining an ME equal to(r j0 w j1 r j1 ) .

    , , , generated ME is (r j0 w j1 r j1 ) .

    The algorithm ends, and the final generated march test is j j j 0 0 1 1 0 .

  • 8/2/2019 March New Sumit Tt

    28/31

    O timizations March tests are critical components in any ATEbased or BIST Memory test

    architecture. It has been shown that the BIST hardware overhead can be reduced if the

    march test shows some particular characteristics such as uniformity (a constant number of operations in each ME), symmetry (particularly important on transparent march tests), or single AO.

    Additional constraints can be very easily added in the generation phase performed by traversing the ELDG.

    The only drawback is that adding too many constraints may lead to situations where no solutions can be generated.

  • 8/2/2019 March New Sumit Tt

    29/31

    We have seen all the basics of March Test. Models used for March Test Generation.

    The flexibility of the fault model formalism allows describing not only traditional static and dynamic faults but also linked and user defined faults.

    Working of March Test generation algorithm. With respect to previously presented approaches, proposed

    computation time, without exhaustive searches.

  • 8/2/2019 March New Sumit Tt

    30/31

    Reference A. Benso A. Bosio S. Di Carlo G. Di Natale and P. Prinetto

    March Test Generation Revealed , IEEE Transactions On Computers, VOL. 57, NO. 12,pp. 1704 1713 Dec2008.

  • 8/2/2019 March New Sumit Tt

    31/31

    Thank you