Abstract:
Hardware or software to test a circuit with a set of functional vectors. The invention compares expected results of functional vectors with the actual results of the test circuit. If there is a miscompare, a recursive comparison is done prior to the first clock cycle of the miscompare.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    1. Field of the Invention  
           [0002]    The present invention relates to failure detection, and specifically to a method and apparatus for failure detection of logic nodes within an integrated device utilizing functional test vectors and scan mode.  
           [0003]    2. Description of the Related Art  
           [0004]    As the technology for manufacturing integrated circuits advances, more logic functions are included in a single integrated circuit device. Modem integrated circuit (IC) devices include large numbers of gates on a single semiconductor chip, with these gates interconnected so as to perform multiple and complex functions. The manufacture of such circuits incorporating such Very Large Scale Integration (VLSI) requires that the fabrication of the circuit be error free, as some manufacturing defects may prevent it from performing all of the functions that it is designed to perform. This requires verification of the design of the circuit and also various types of electrical testing after the IC is manufactured.  
           [0005]    However, as the complexity of the circuit increases, so does the cost and difficulty of verifying and electrically testing each of the devices in the circuit. Electrical testing requires that each gate in a VLSI circuit functions properly. Therefore, each gate needs to individually and in conjunction with the other gates in the circuit function properly in all possible combinations of operations. Typically, electrical testing is performed by automated testing equipment (ATE) that employs test vectors to perform the desired tests. A test vector describes the desired test input (or signals), associated clock pulse (or pulses), and expected test output (or signals) for every package pin during a period of time, often in an attempt to “test” every node of each gate. For complex circuitry, this may involve a large number of test vectors and accordingly a long test time.  
           [0006]    One way to address this problem is through design for test (DFT). The key concepts in DFT are controllability and observability. Controllability is the ability to set and reset the state of every node in the circuit. Observability is the ability to observe either directly or indirectly the state of any node in the circuit. The purpose of DFT is to increase the ability to control and observe internal and external nodes from external inputs/outputs.  
           [0007]    DFT methods utilize various test circuits. One type of test circuit is a scan path or a scan loop in the logic circuit. A scan path or scan loop consists of a chain of synchronously clocked master/slave latches (or registers), each of which is connected to a particular node in the logic circuit. The scan latches can be loaded with a serial data stream, scan vectors, presetting the logic circuit nodes to a predetermined state. The logic circuit then can be exercised in normal fashion, with the result of the operation stored in its respective latch. A scan out operation serially unloads the contents of the latches and the result of the test operation at the associated nodes is analyzed for improper node operation.  
           [0008]    Various automatic test pattern generation (ATPG) software allows for the creation of scan vectors. Scan vectors are efficient in detecting stuck at faults. A stuck at fault is if a particular node is “stuck” at a logic 0 or a logic 1 due to a manufacturing defect. For example, a node could be a stuck at one because the manufacturing defect caused the node to be shorted to a Vcc line.  
           [0009]    However, scan vectors are not efficient in detecting speed-related defects because of the difficulty of observing every possible node in the IC design. Observability of every node in the IC design requires an unrealistic amount of silicon area, increased power consumption, and increased manufacturing costs.  
           [0010]    Functional test vectors allow for increased coverage because of the ability to detect speed related defects because the IC is tested at functional speed. The difficulty in manually probing and detecting the failures for speed related defect increases as the IC industry continues to reduce the size of integrated chips and utilizes flip chip package technology. Flip chip package technology prevents access to the IC from the topside of the package. The only access to the IC in a flip chip package is from the backside (or underneath) the package. Thus, manual probing of the IC is difficult and time consuming.  
       
    
    
     BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS  
       [0011]    The present invention is illustrated by way of example and not limitation in the following figures. Like references indicate similar elements, in which:  
         [0012]    [0012]FIG. 1 illustrates a diagram of a logic block utilized by an embodiment of the present invention.  
         [0013]    [0013]FIG. 2 illustrates a diagram for generating functional vectors utilized by an embodiment of the present invention.  
         [0014]    [0014]FIG. 3 illustrates a diagram of output values utilized by an embodiment of the present invention.  
         [0015]    [0015]FIG. 4 illustrates a diagram of scan dumps utilized by an embodiment of the present invention.  
         [0016]    [0016]FIG. 5 illustrates a diagram of expected output values utilized by an embodiment of the present invention.  
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0017]    A method and software for failure detection of logic nodes within an integrated device utilizing functional test vectors and scan mode are described. In the following description, for purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that these specific details are not required in order to practice the present invention.  
         [0018]    [0018]FIG. 1 illustrates a diagram of a logic block  100  utilized by an embodiment of the present invention. The logic block  100  represents internal logic and a scan path within an integrated device. Also, the logic block  100  supports two modes of operation, a functional operation mode to perform various commands and requests, and a scan test mode for debug analysis. The logic block receives inputs, I 1  and I 2 , labeled as  114  and  116 , and logic clouds  102 ,  104 ,  106 ,  108  and  110  generate an output, O 1 . A plurality of flip-flops  126 ,  128 ,  130 , and  132  store the logic values in response to a clock signal  134 . A plurality of multiplexers  118 ,  120 ,  121 ,  122  and  124  select an input to forward to the plurality of flip-flops. A scan enable signal  112  is the control signal for the multiplexers.  
         [0019]    The logic cloud  102  receives the inputs, I 1  and I 2 , and comprises a plurality of logic gates including AND, OR, NOR, etc. An output node, N 1 , from the logic cloud  102  and the input I 1  are the two inputs to the multiplexer  118 . In one embodiment, the I 1  input is the scan input for receiving an external scan vector. For the scan test mode, the multiplexer  118  selects the I 1  input if the scan enable signal is a logic high. Otherwise, the multiplexer selects the output node N 1  during the functional operation mode. The flip-flop  126  receives an input at the data port, D, from the multiplexer  118  on the rising edge of the clock signal  134 . An output, Q, of the flip-flop  126  is coupled to the logic cloud  104  and multiplexer  120 . The remaining logic clouds  104 - 110 , output nodes N 2 -N 4 , and flip-flops  128 - 132  operation in a similar manner as previously described for the multiplexer  118 , flip-flop  126 , and logic cloud  102 .  
         [0020]    During the functional operation of the integrated device in response to functional test vectors, the output nodes, N 1 -N 4 , are constantly changing in response to the inputs I 1  and I 2  and the logic gates within the logic clouds. To verify the correct operation of the integrated device, the contents of the flip-flops are unloaded in a serial flow by setting the scan enable signal  112  to a logic high and observing the contents on an external pin via output O 1 . The functional test vectors are applied to the integrated device via automatic test equipment (ATE). In one embodiment, the ATE is manufactured by Schlumberger Technology. In another embodiment, the ATE is manufactured by Agilent Technology.  
         [0021]    [0021]FIG. 2 illustrates a diagram for generating functional vectors utilized by an embodiment of the present invention. The block diagram  200  is a high level description of the procedure for generating functional test vectors for an integrated device and comprises a target device model  206 , signal generation block  204 , and peripheral models  202 . Functional test vectors stimulate the various nodes within an integrated device and insure design integrity and detect manufacturing defects. The design of an integrated device consists of various connections between transistors. A netlist and a cell library represent the connections between the transistors, the size of the transistors, and the types of transistors. A model of the integrated device represents the logic at a gate level (logic block) rather than a transistor level. In one embodiment, the models are register transfer language (RTL) and very-high level design language (VHDL). In another embodiment, the models are behavioral.  
         [0022]    The functional vectors are applied to an integrated device via the ATE to test the integrated device. In one embodiment, the integrated device is a chipset. The target device model  206  represents the model for the integrated device and receives various control and clock signals from the signal generation block  204  such as clock, interrupt, reset, and start execution signals. Also, the signal generation block receives the operating status of the target device model in order to synchronize the control and clock signals. The peripheral models  202  are created for various devices such as input and output (I/O) devices, accelerated graphics port (AGP), front side bus, central processing unit, and input/output controller hub (ICH). The peripheral models  202  receive and transmit various control, address and data signals to and from the target device model  202 . Thus, the target device model generates functional vectors based on the clock and control signals from the signal generation  204  and peripheral models  202 .  
         [0023]    FIGS.  3 - 5  are diagrams for illustrating one failure detection example. FIG. 3 illustrates the first output diagram indicating the first fail vector. Next, FIG. 4 illustrates the procedure for recursive debug techniques of identifying the possible defective logic nodes in response to the first fail vector. Also, FIG. 5 illustrates the expected output results from logic simulation or a error-free integrated device. Finally, the values of the output nodes, N 1 -N 4 , in FIG. 4 are compared to the corresponding values of N 1 -N 4  in FIG. 5 to indicate the defective node.  
         [0024]    [0024]FIG. 3 illustrates a first test output diagram utilized by an embodiment of the present invention. The test output diagram  300  represents the data values observed on external pin  01 , column  308 , in response to inputs, I 1  and I 2 , in column  304  and column  306 . The inputs, I 1  and I 2 , and output O 1  were described with reference to FIG. 1. The scan clock cycle is depicted in column  302 . Also, column  310  represents the expected value for the output pin O 1  based on the logic simulation or the functional test vectors discussed with reference to FIG. 2. FIG. 3 illustrates an example of observing the actual and expected output values for an integrated device in response to a set of functional vectors.  
         [0025]    The actual output results observed on external pin O 1  for the specific integrated device under test are compared to expected output results. For example in row  312 , for scan clock cycle  8  and input values of ‘11’ (b) for I 1  and I 2 , the output O 1  is a value of logic 0. However, the expected output in column  310  for this set of input conditions is a logic 1. Therefore, input values and scan clock cycle  8  in row  312  represent a test vector that results in a “failure condition” for the integrated device because the actual and expected output results for O 1  are different. Furthermore, the input values I 1  and I 2  and the scan clock cycle of  8  in row  312  represent a “first fail vector” because the input conditions and clock cycle define the test vector for a first failure of the integrated device. Alternative embodiments of detecting the actual defective node within the integrated device are further discussed with reference to FIGS.  4 - 5 .  
         [0026]    Continuing on with the discussion with reference to FIG. 3, there was the first fail vector for the output O 1  in scan clock cycle  8  for row  312 . FIG. 4 illustrates the output results of a plurality of recursive scan dump vectors preceding to and including the first fail vector. For example, the first fail vector is for scan clock cycle  8 . The entire scan path is unloaded, a scan dump, to illustrate the data values stored in the scan blocks  106 - 112  in FIG. 1. As discussed earlier, during normal functional operation of the integrated device and if the scan clock is not active, the scan blocks store the values of the output nodes N 1 -N 4  from the various logic clouds. Therefore, the first scan dump for scan clock cycle  8  is illustrated in row  418  and the values of the output nodes N 1 -N 4  are depicted in columns  410 - 416 .  
         [0027]    The recursive operation of scan dumps is repeated for several scan clock cycles. In one embodiment, the scan dumps are performed for each scan clock cycle until the four output node values for N 1 -N 4  in FIG. 4, columns  410 - 416 , are equivalent to the corresponding output node values for N 1 -N 4 , columns  510 - 516 , in FIG. 5. In another embodiment, the scan dump vectors are performed for a subset of scan clock cycles.  
         [0028]    [0028]FIG. 5 illustrates a third test output diagram. FIG. 5 illustrates the output results from logic simulation or a error-free integrated device. Several scan dumps are performed on an error-free integrated device or in logic simulation. In this example, five scan dumps are performed to match the number of scan dumps in FIG. 4. Each value for nodes N 1 -N 4  is compared between FIG. 4 and FIG. 5 for each scan clock cycle and analyzed for any difference between values for similar nodes. For example, for row  424  for scan clock cycle  5  in FIG. 4 and for row  524  for scan clock cycle  5  in FIG. 5, there is a difference in values for node N 2 . Also, subsequent scan clock cycles  6  and  7  indicate miscompares in scan dump vectors because the incorrect value of node N 2  propagates and affects subsequent output nodes. The analysis of scan dump vector miscompare between FIG. 4 and FIG. 5 concentrates on the “earliest” scan dump vector miscompare. In this example, scan clock cycle  5  is the earliest scan dump vector miscompare and scan clock cycle  4  is the first scan clock cycle preceding scan clock cycle  5 , with equivalent values for nodes N 1 -N 4  for FIGS.  4 - 5 . Thus, the fifth scan dump for scan clock cycle  4  in FIGS.  4 - 5  results in equivalent values for nodes N 1 -N 4  and terminates the recursive scan dump operation. In one embodiment, the recursive scan dump vector procedure is automated and is incorporated in test software. In another embodiment, the scan dump vector is performed on a subset of the output nodes, N 1 -N 4 , rather than all the output nodes, N 1 -N 4 .  
         [0029]    While the invention has been described with reference to specific modes and embodiments, for ease of explanation and understanding, those skilled in the art will appreciate that the invention is not necessarily limited to the particular features shown herein, and that the invention may be practiced in a variety of ways that fall under the scope and spirit of this disclosure. The invention is, therefore, to be afforded the fullest allowable scope of the claims that follow.  
       APPENDIX A  
       [0030]    William E. Alford, Reg. No. 37,764; Farzad E. Amini, Reg. No. 42,261; William Thomas Babbitt, Reg. No. 39,591; Carol F. Barry, Reg. No. 41,600; Jordan Michael Becker, Reg. No. 39,602; Lisa N. Benado, Reg. No. 39,995; Bradley J. Bereznak, Reg. No. 33,474; Michael A. Bemadicou, Reg. No. 35,934; Roger W. Blakely, Jr., Reg. No. 25,831; R. Alan Burnett, Reg. No. 46,149; Gregory D. Caldwell, Reg. No.39,926; Andrew C. Chen, Reg. No. 43,544; Thomas M Coester, Reg. No. 39,637; Donna Jo Coningsby, Reg. No. 41,684; Florin Corie, Reg. No. 46,244; Dennis M. deGuzman, Reg. No. 41,702; Stephen M. De Klerk, Reg. No. P46,503; Michael Anthony DeSanctis, Reg. No. 39,957; Daniel M. De Vos, Reg. No. 37,813; Justin M. Dillon, Reg. No. 42,486 ; Sanjeet Dutta, Reg. No. P46,145; Matthew C. Fagan, Reg. No. 37,542; Tarek N. Fahmi, Reg. No. 41,402; George Fountain, Reg. No. 37,374; James Y. Go, Reg. No. 40,621; James A. Henry, Reg. No. 41,064; Willmore F. Holbrow III, Reg. No. P41,845; Sheryl Sue Holloway, Reg. No.37,850; George W Hoover II, Reg. No. 32,992; Eric S. Hyman, Reg. No. 30,139; William W. Kidd, Reg. No.31,772; Sang Hui Kim, Reg. No. 40,450; Walter T. Kim, Reg. No. 42,731; Eric T. King, Reg. No. 44,188; Erica W. Kuo, Reg. No. 42,775; George B. Leavell, Reg. No. 45,436; Kurt P. Leyendecker, Reg. No. 42,799; GordonR. Lindeen III, Reg. No. 33,192; Jan Carol Little, Reg. No. 41,181; R Litts, Reg. No. 46,876; Joseph Lutz, Reg. No. 43,765; Michael J. Mallie, Reg. No. 36,591; Andre L. Marais, under § 10.9(b); Paul A. Mendonsa, Reg. No. 42,879; Clive D. Menezes, Reg. No. 45,493; Chun M. Ng, Reg. Thien T. Nguyen, Reg. No. 43,835; Thinh V. Nguyen, Reg. No. 42,034; Dennis A. Nicholls, Reg. No. 42,036; Dan Reg. No. 41,236; Kenneth B. Paley, Reg. No. 38,989; Gregg A. Peacock, Reg. No. 45,001; Marina Portnova, Reg. No. P45,750; Michael A. Proksch, Reg. No. 43,021; William F. Ryann, Reg. 44,313; James H. Salter, Reg. No. 35,668; William W. Schaal, Reg. No. 39,018; James C. Scheller, Reg. No.31,195; Jeffrey S. Schubert, Reg. No. 43,098; George Simion, Reg. No. P47,089; Jeffrey Sam Smith, Reg. No. 39,377; Maria McCormack Sobrino, Reg. No. 31,639; Stanley W. Sokoloff, Reg. No. 25,128; Judith A. Szepesi, Reg. No. 39,393; Vincent P. Tassinari, Reg. No. 42,179; Edwin H. Taylor, Reg. No. 25,129; John F. Travis, Reg. No. 43,203; Joseph A. Twarowski, Reg. No. 42,191; Kerry D. Tweet, Reg. No. 45,959; Mark C. Ness, Reg. No. 39,865; Thomas A. Van Zandt, Reg. No. 43,219; Lester J. Vincent, Reg. No. 31,460; Glenn E. Von Tersch, Reg. No. 41,364; John Patrick Ward, Reg. No. 40,216; Mark L. Watson, Reg. No. P46,322; Thomas C. Webster, Reg. No. P46,154; and Norman Zafmnan, Reg. No. 26,250; my patent attorneys, and Raul Martinez, Reg. No. 46,904, my patent agents; of BLAKELY, SOKOLOFF, TAYLOR &amp; ZAFMAN LLP, with offices located at 12400 Wilshire Boulevard, 7th Floor, Los Angeles, Calif. 90025, telephone (310) 207-3800, and Alan K. Aldous, Reg. No. 31,905; Robert D. Anderson, Reg. No. 33,826; Joseph R. Bond, Reg. No. 36,458; Richard C. Calderwood, Reg. No.  35 , 468 ; Paul W. Churilla, Reg. No. P47,495; Jeffrey S. Draeger, Reg. No. 41,000; Cynthia Thomas Faatz, Reg No. 39,973; Sean Fitzgerald, Reg. No. 32,027; John N. Greaves, Reg. No. 40,362; John F. Kacvinsky, Reg No. 40,040; Seth Z. Kalson, Reg. No. 40,670; David J. Kaplan, Reg. No. 41,105; Charles A. Mirho, Reg. No. 41,199; Leo V. Novakoski, Reg. No. 37,198, Naomi Obinata, Reg. No. 39,320; Thomas C. Reynolds, Reg. No. 32,488; Kenneth M. Seddon, Reg. No. 43,105; Mark Seeley, Reg. No. 32,299; Steven P. Skabrat, Reg. No. 36,279; Howard A. Skaist, Reg. No. 36,008; Steven C. Stewart, Reg. No. 33 , 555 ; Raymond J. Wemer, Reg. No. 34,752; Robert G. Winkle, Reg. No. 37,474; Steven D. Yates, Reg. No. 42,242, and Charles K. Young, Reg. No. 39,435; my patent attorneys, Thomas Raleigh Lane, Reg. No. 42,781; Calvin E. Wells; Reg. No. P43,256, Peter Lam, Reg. No. 44,855; Michael J. Nesheiwat, Reg. No. P47,819; and Gene I. Su, Reg. No. 45,140; my patent agents, of INTEL CORPORATION; and James R. Thein, Reg. No. 31,710, my patent attorney; with full power of substitution and revocation, to prosecute this application and to transact all business in the Patent and Trademark Office connected herewith.