Abstract:
A logic circuit comprising a flip-flop chain circuit which is utilized in a scan test of a combinational circuit, the flip-flop chain circuit including a plurality of flip-flops each of which is provided with a selector.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
         [0001]    This application is based upon and claims the benefit of priority from the prior Japanese Patent Application No. 2003-072217, filed Mar. 17, 2003, the entire contents of which are incorporated herein by reference.  
         BACKGROUND OF THE INVENTION  
         [0002]    1. Field of the Invention  
           [0003]    The present invention relates to a logic circuit and methods for designing and testing the same. More particularly, the present invention relates to a SCAN test flip-flop (hereinafter referred to as F/F) chain circuit which is used when conducting an operating frequency measurement test and a stress test on a logic circuit.  
           [0004]    2. Description of the Related Art  
           [0005]    Generally, a logic circuit under development is subject to an operating frequency measurement test and a stress test such as a burn-in test. An operating frequency measurement test is conducted to activate a path, that is, a maximum delay path (hereinafter called a critical path) having a maximum signal propagation time of a combinational circuit which constitutes a logic circuit, thereby measuring a maximum operating frequency (f-max) at which this path can propagate the signal. That is, this f-max measurement for measuring a maximum value of the operable frequency of a certain logic circuit is important in order to know characteristics of the logic circuit, so that an operating frequency measurement test for measuring an f-max is an indispensable test item in the development of the logic circuits.  
           [0006]    [0006]FIG. 6 shows one example of a conventional operating frequency measurement test (f-max measurement). It is to be noted that the following will describe a case of performing the f-max measurement by the use of a SCAN test F/F chain circuit which is obtained by connecting a plurality of clock synchronization type F/Fs in the form of a SCAN chain.  
           [0007]    To enable the f-max measurement, first, a process searches for a critical path  102  of a combinational circuit  101  based on a result of a timing analysis etc. Subsequently, the process identifies a first test vector (F/F set value for the critical path) which is to be set to, for example, each of a SCAN F/F( 1 )  103   a  to a SCAN F/F( 5 )  103   e  of a SCAN test F/F chain circuit  103 . This first test vector is data for causing the critical path  102  to perform a desired function operation. Subsequently, the process identifies a second test vector (f-max measurement test vector) for use in a preliminary function operation in order to cause the critical path  102  to perform a desired function operation. That is, the process identifies a set value for each of a SCAN F/F( 1 )  103   a −1 to a SCAN F/F(S)  103   e −1 which are one cycle before the desired function operation so that the first test vector may be identified. Such a procedure has been followed conventionally in order to create a test vector that enables the f-max measurement.  
           [0008]    The second test vector thus identified is applied from the outside of the circuit and sequentially set to each of the SCAN F/F( 1 )  103   a −1 to the SCAN F/F( 5 )  103   e −1 of the F/F chain circuit  103 . More specifically, for example, as shown in FIG. 7, in actual f-max measurement, in order to activate the critical path  102 , data which serves to identify a set value for each of the SCAN F/F(l)  103   a  to the SCAN F/F( 5 )  103   e  of the F/F chain circuit  103 , that is, a second test vector DO[n] ([n]=[F/F( 1 )] to [F/F( 5 )] in this case) is set to each of the SCAN F/F( 1 )  103   a −1 to the SCAN F/F(S)  103   e− 1 of the F/F chain circuit  103 . Upon completion of setting of the second test vector D 0 [n], three cycles of a SCAN F/F clock signal clk are applied to the F/F chain circuit  103 .  
           [0009]    The first cycle of the clock signal clk permits an F/F set value for the critical path identified on the basis of the second test vector D 0 [n], that is, the first test vector D 1 [n] which is used to cause the critical path  102  to perform a desired function operation, to be set to each of the SCAN F/F( 1 )  103   a  to the SCAN F/F( 5 )  103   e  of the F/F chain circuit  103  at a time. This brings about the activation of the critical path  102  to perform a desired function operation based on the first test vector D 1 [n].  
           [0010]    The second cycle of the clock signal clk causes a result D 2 [n] of its performing to be set to each of a SCAN F/F( 1 )  103   a +1 to a SCAN F/F( 5 )  103   e+ 1 of the F/F chain circuit  103 . The set value D 2 [n] for each of these SCAN F/F( 1 )  103   a +1 to SCAN F/F( 5 )  103   e+ 1 after passed through the critical path  102  is compared to an expected value which is predicted on the basis of a design value of the combinational circuit  101 . In such a manner, there is obtained an operating frequency that marginally agrees with the expected value, that is, a maximum operable frequency value (maximum operating frequency).  
           [0011]    This operation frequency measurement test has a problem that it takes much time to identify the second test vector D 0 [n]. That is, it is very difficult to identify a test vector (f-max measurement test vector) which causes the critical path  102  to perform a desired function operation and which is obtained one cycle before the operation, and only for this identification, much time is required.  
           [0012]    As far as the above-mentioned conventional method is used, from the viewpoint of characteristics of the f-max measurement, it is impossible to set the second test vector D 0 [n] directly to each of the SCAN F/F( 1 )  103   a  to the SCAN F/F( 5 )  103   e  for the critical path. This is because the f-max measurement requires that data be set to all of the SCAN F/F( 1 )  103   a  to the SCAN F/F( 5 )  103   e  for the critical path at a time. When the F/F chain circuit  103  is used, however, a difference in time inevitably occurs in setting of the data to the SCAN F/F( 1 )  103   a  to the SCAN F/F( 5 )  103   e.  For such a reason, the operating frequency measurement test conventionally has a problem that much time is taken to identify the test vector that enables the f-max measurement, which is one of factors that obstruct the development of a logic circuit.  
           [0013]    On the other hand, the stress test is a test for inspecting the tolerance of a logic circuit by applying a load on the logic circuit. One of such stress tests is a burn-in test. In the burn-in test, an output of a first stage gate constituting a net is continuously repeatedly toggled, that is, a signal “0” and a signal “1” are alternately repeatedly output to the first stage gate, thereby inspecting the tolerance of the logic circuit.  
           [0014]    [0014]FIG. 8 shows one example of the conventional stress test (burn-in test). It is to be noted that the following will describe a case of performing the burn-in test by the use of a SCAN test F/F chain circuit which is obtained by connecting a plurality of clock synchronization type F/Fs in the form of a SCAN chain.  
           [0015]    In the burn-in test, a test vector  202  for the burn-in test given from the outside of a logic circuit  201 , or a test vector for the burn-in test generated from a vector generation circuit  203  provided in the logic circuit  201  is sequentially set to, for example, each of a SCAN F/F( 1 )  204   a  to a SCAN F/F( 4 )  204   d  of a SCAN test F/F chain circuit  204 . Then, the SCAN F/F clock signal clk is applied to each of the SCAN F/F(l)  204   a  to SCAN F/F( 4 )  204   d,  whereby each net is activated. In the case of this example, the burn-in test is realized by repeatedly reversing (inverting) the test vector which is set to each of these SCAN F/F( 1 )  204   a  to SCAN F/F( 4 )  204   d  to continue toggling the respective nodes.  
           [0016]    In a stress test including this burn-in test, however, to continue toggling the respective nodes, it is necessary to repeatedly apply a reversed test vector (for example, signal “0” or signal “1”) to each of the SCAN F/F(l)  204   a  to the SCAN F/F( 4 )  204   d  from either the outside or inside of the logic circuit  201 . Therefore, the stress test is very troublesome to conduct and takes much of time, disadvantageously.  
           [0017]    Thus, conventionally, there has been a problem that much time is required to identify a test vector that enables the f-max measurement in an operating frequency measurement test.  
           [0018]    There has been another conventional disadvantage of very troublesome and time consuming application of a test vector for the purpose of continuing to toggle the respective nodes in a stress test.  
         BRIEF SUMMARY OF THE INVENTION  
         [0019]    According to a first aspect of the present invention, there is provided a logic circuit comprising a flip-flop chain circuit which is utilized in a scan test of a combinational circuit, the flip-flop chain circuit including a plurality of flip-flops each of which is provided with a selector.  
           [0020]    According to a second aspect of the present invention, there is provided a logic circuit designing method comprising: designing a combinational circuit which realizes a desired function operation; logically synthesizing the thus designed combinational circuit by the use of a variety of gates; and designing a flip-flop chain circuit, which is utilized in a scan test of the thus logically synthesized combinational circuit, by the use of a plurality of flip-flops each of which is provided with a selector.  
           [0021]    According to a third aspect of the present invention, there is provided a method of testing a logic circuit including a flip-flop chain circuit, which is utilized in a scan test of a combinational circuit, by the use of a plurality of flip-flops each of which is provided with a selector, the method comprising applying inversion values of set values to a maximum delay path of the combinational circuit, as operating frequency measurement test vectors, using the flip-flop chain circuit in an operating frequency measurement test, the inversion values being obtained by inverting the set values at a time by the selectors and set to the plurality of flip-flops, respectively.  
           [0022]    According to a fourth aspect of the present invention, there is provided a method of testing a logic circuit including a flip-flop chain circuit, which is utilized in a scan test of a combinational circuit, by the use of a plurality of flip-flops each of which is provided with a selector, the method comprising applying inversion values of set values to a node of the combinational circuit, as stress test vectors, using the flip-flop chain circuit in a stress test, the inversion values being obtained by repeatedly inverting the set values by the selectors and set to the plurality of flip-flops, respectively. 
       
    
    
     BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING  
       [0023]    [0023]FIG. 1 is a block diagram for showing one example of operating frequency measurement test (f-max measurement) for a logic circuit according to a first embodiment of the present invention;  
         [0024]    [0024]FIG. 2 is a flow chart for showing one example of a program which automatically designing the logic circuit of FIG. 1;  
         [0025]    [0025]FIGS. 3A and 3B are configuration diagrams of a combinational circuit (critical path) for showing by comparison a case where f-max measurement can be valid and a case where it cannot be valid in the logic circuit of FIG. 1;  
         [0026]    [0026]FIG. 4 is a timing chart for explaining an f-max measurement method in the logic circuit of FIG. 1;  
         [0027]    [0027]FIG. 5 is a block diagram for showing one example of a logic circuit stress test (burn-in test) according to a second embodiment of the present invention;  
         [0028]    [0028]FIG. 6 is a block diagram for showing one example of the f-max measurement in a conventional logic circuit;  
         [0029]    [0029]FIG. 7 is a timing chart for explaining a f-max measurement method in the conventional logic circuit; and  
         [0030]    [0030]FIG. 8 is a block diagram for showing one example of a burn-in test in the conventional logic circuit. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0031]    Embodiments of the present invention will be described in further detail with reference to the accompanying drawings.  
       FIRST EMBODIMENT  
       [0032]    [0032]FIG. 1 shows a method for testing a logic circuit according to a first embodiment of the present invention. As one example thereof, an operating frequency measurement test (f-max measurement) is described as follows.  
         [0033]    In the present embodiment, this f-max measurement is performed by the use of a flip-flop (F/F) chain circuit  21  which is utilized in a SCAN test to be conducted on a combinational circuit  11 . The F/F chain circuit  21  comprises, for example, a SCAN F/F(l)  21   a  to a SCAN F/F( 5 )  21   e  which are connected in the form of a SCAN chain. Each of these SCAN F/F( 1 )  21   a  to SCAN F/F( 5 )  21   e  is constituted of a clock synchronization type flip-flop which is provided with a selector.  
         [0034]    That is, to data input terminals (input stages) D of these SCAN F/F( 1 )  21   a  to SCAN F/F( 5 )  21   e  are there respectively connected a MUX (Multiplexer)  22   a  to a MUX 22   e,  each of which serves as a selector. These MUX 22   a  to MUX 22   e  are automatically inserted when, for example, a program (tool which generates a SCAN test F/F chain circuit) shown in FIG. 2 is. executed which designs a logic circuit automatically. The MUX 22   a  to the MUX 22   e  each serve to invert each set value of the SCAN F/F( 1 )  21   a  to SCAN F/F(S)  21   e  respectively, in such a manner that when, for example, a MUX inversion value select signal IS, which is a control signal, is high (in the case of the f-max measurement), a signal (inversion value of each set value) which appears at each inversion output terminal (Q˜) of the SCAN F/F( 1 )  21   a  to SCAN F/F(S)  21   e  may be supplied to each data input terminal D of these SCAN F/F( 1 )  21   a  to SCAN F/F( 5 )  21   e.  Therefore, by beforehand setting an inversion value (second test vector) of operating frequency measurement test vectors to each of the SCAN F/F( 1 )  21   a  to SCAN F/F( 5 )  21   e,  it is possible to easily obtain an operating frequency measurement test vector (first test vector).  
         [0035]    That is, a second test vector which is supplied from the outside of the circuit beforehand is set to each of the SCAN F/F( 1 )  21   a  to SCAN F/F(S)  21   e.  Then, each set value (second test vector) for these SCAN F/F( 1 )  21   a  to SCAN F/F( 5 )  21   e  is inverted at a time. Thus, the first test vector (operating frequency measurement test vector) is created as an f-max measurement test vector.  
         [0036]    [0036]FIG. 3A shows a configuration example of a critical path (path that encounters a maximum signal propagation time in the combinational circuit  11 )  12  in a case where the f-max measurement can be valid in realization of the f-max measurement, while FIG. 3B shows a configuration example in a case where this f-max measurement cannot be valid.  
         [0037]    In the present embodiment, if, as shown in FIG. 3B for example, the output of a first stage gate (EXOR)  12   b  of the critical path  12  does not change from 1 to 0 in logic level (that is, remains at 1 in logic level) despite that set values for the SCAN F/F( 1 )  21   a  and the SCAN F/F( 2 )  21   b  have been inverted from 1 to 0 and from 0 to 1 in logic level respectively, precise f-max measurement cannot be performed. Therefore, the critical path  12  according to the present embodiment has such a path configuration that, as shown in FIG. 3A for example, the output of a first stage gate (AND)  12   a  may be sure to change (be inverted) from 1 to 0 in logic level when set values for the SCAN F/F( 1 )  21   a  and the SCAN F/F( 2 )  21   b  are both inverted from 1 to 0.  
         [0038]    To realize the f-max measurement, first the critical path  12  of the combinational circuit  11  is searched for based on a result of a timing analysis etc. Subsequently, to cause this critical path  12  to perform a desired function operation, a second test vector obtained by inverting a first test vector is supplied from the outside of the circuit. This second test vector is sequentially set to the SCAN F/F( 1 )  21   a  to the SCAN F/F(S)  21   e  of the F/F chain circuit  21 . That is, in actual f-max measurement, as shown in FIG. 4 for example, data to identify the first test vector which activates the critical path  12 , that is, the second test vector D 1 _inv[n] (in this example, [n]=[F/F( 1 )]−[F/F( 5 )]) is set to each of the SCAN F/F( 1 )  21   a  to the SCAN F/F( 5 )  21   e  of the F/F chain circuit  21 . Furthermore, the second test vector D 1 _inv[n] is inverted at a time when the MUX inversion value select signal (high) IS is supplied to each of the MUX 22   a  to MUX 22   e,  thus providing the first test vectors D 1 [n]. This first test vector D 1 [n] is set at a time to each of the SCAN F/F( 1 )  21   a  to the SCAN F/F( 5 )  21   e  as an inversion value for the critical path F/Fs, in response to the application of a SCAN F/F clock signal clk. This activates the critical path  12  so that it may perform a desired function operation based on the first test vectors D 1 [n].  
         [0039]    Then, when one cycle of the clock signal clk is applied, as a result of the performing of the function operation, a value of the D 2 [n] is set to each of SCAN F/F(l)  21   a ′ to SCAN F/F( 5 )  21   e ′ of the F/F chain circuit  21  (in this case, these SCAN F/F( 1 )  21   a ′ to SCAN F/F( 5 )  21   e ′ are the same F/Fs as the SCAN F/F( 1 )  21   a  to SCAN F/F(S)  21   e  and have a time difference corresponding to a time lapse given to the performing by the critical path  12 ). After passing through the critical path  12 , the set values (D 2 [n]) for these SCAN F/F(l)  21   a ′ to SCAN F/F( 5 )  21   e ′ are compared to an expected value which is anticipated on the basis of a design value of the combinational circuit  11 . By thus reducing the time lapse (period of the clock signal clk) given to the performing by the critical path  12  gradually, an operating frequency that marginally agrees with the expected value is obtained. That is, by obtaining a time lapse given to the performing by the critical path  12  immediately before the expected value and the performing result D 2 [n] begin to disagree with each other, a maximum operable frequency (maximum operating frequency) is measured.  
         [0040]    As described above, the present embodiment enables easy creation of the first test vector D 1 [n] which serves to activate the critical path  12 . That is, the first test vector D 1 [n] which causes the critical path  12  to perform a desired function operation can be created by inverting the second test vector D 1  inv[n]. It is thus made easily possible to identify the first test vector D 1 [n] without any necessity of a complicated and troublesome job of identifying a set value (D 0 [n]) for a SCAN F/F, of the desired function operation, which is obtained one cycle before the operation. It is, therefore, possible to simplify the operating frequency measurement test and greatly mitigate the burdens on testing.  
         [0041]    In particular, obtaining the second test vector D 1 _inv[n] is much simpler than conventional identification of the second test vector D 0 [n], with fewer mistakes involved.  
         [0042]    Furthermore, in the case of the present embodiment, it is easily possible to automatically design an F/F chain circuit incorporating MUXes, by executing a generation tool. That is, an F/F chain circuit according to the present embodiment can be easily constituted by, for example, inserting a MUX at the input stage of each F/Fs which are connected in the form of a SCAN chain of a logically synthesized circuit or replacing each of the F/Fs connected in the form of the SCAN chain in the logically synthesized circuit with an F/F which is provided with a MUX. It is thus possible to cut or reduce the design resource time in developments of a logic circuit.  
       SECOND EMBODIMENT  
       [0043]    [0043]FIG. 5 shows a method for testing a logic circuit according to a second embodiment of the present invention. As one example thereof, a stress test (burn-in test) is described as follows.  
         [0044]    A burn-in test is conducted by the use of the F/F chain circuit  21  which is utilized in a SCAN test of a combinational circuit  11 . In the case of the present embodiment, this F/F chain circuit  21  comprises a SCAN F/F( 1 )  21   a  to a SCAN F/F( 4 )  21   d  which are constituted of clock synchronization type F/Fs provided with selectors (a MUX 22   a  to a MUX 22   d ) and also which are connected in the form of a SCAN chain. That is, in an actual burn-in test, either a test vector (second test vector) which is generated by a vector generation circuit  31  provided inside a logic circuit  1  or a test vector (second test vector)  32  provided from the outside of the logic circuit  1  is supplied to each of the SCAN F/F( 1 )  21   a  to the SCAN F/F( 4 )  21   d  of the F/F chain circuit  21 .  
         [0045]    It is to be noted that this second test vector given as a set value refers to data which is used to create the later-described first test vector (vector used in a stress test) for the purpose of continuing to activate each net (node). That is, this first test vector is adapted to be created by repeatedly inverting this second test vector.  
         [0046]    To realize a burn-in test, the first test vector generated by the vector generation circuit  31  or the second test vector  32  provided from the outside of the circuit  1  is set sequentially to the SCAN F/F( 1 )  21   a  to the SCAN F/F( 4 )  21   d  of the F/F chain circuit  21 . That is, in an actual burn-in test, the second test vector to create the first vector which continues to activate each node is set to each of the SCAN F/F( 1 )  21   a  to the SCAN F/F( 4 )  21   d  of the F/F chain circuit  21 . This second test vector is repeatedly inverted in response to the supply of the MUX inversion value select signal (high) IS to the MUX 22   a  to MUX 22   d,  thus providing the first test vector (inversion value). In this case, when this MUX inversion value select signal IS becomes high in level, the MUX 22   a  to the MUX 22   d  consecutively supply signals which appear at the inversion output terminals (Q˜) of the SCAN F/F( 1 )  21   a  to SCAN F/F( 4 )  21   d  to the data input terminals D of these SCAN F/F( 1 )  21   a  to SCAN F/F( 4 )  21   d.  That is, the MUX 22   a  to the MUX 22   d  permanently toggle the second test vector which is set to the SCAN F/F( 1 )  21   a  to SCAN F/F( 4 )  21   d.  This causes the first test vector (stress test vector) to be created as a test vector which is used in a burn-in test.  
         [0047]    The first test vector continues to activate each net (node) in response to the application of a SCAN F/F clock signal clk. By thus continuing to apply a load on each node, a burn-in test is realized.  
         [0048]    In accordance with this second embodiment, it is possible to easily create the first test vector which serves to continue activating each node. That is, only by continuing to apply the clock signal clk, it is made possible to toggle a stress test vector permanently.  
         [0049]    It is thus made possible easily to continue activating each node without a necessity of a very troublesome job of alternately applying inverted test vectors. It is, therefore, possible to realize simplification of a stress test such as a burn-in test, thus greatly mitigating a burden on the test.  
         [0050]    In addition, it is possible not only to reduce the test time by such simplification but also to simply increase or decrease the number of times of toggling only by controlling the clock signal, thus segmenting the test.  
         [0051]    Furthermore, as in the case of the first embodiment, an F/F chain circuit incorporating MUXes can be designed automatically by executing a generation tool, thus cutting or reducing the design resource time.  
         [0052]    Additional advantages and modifications will readily occur to those skilled in the art. Therefore, the invention in its broader aspects is not limited to the specific details and representative embodiments shown and described herein. Accordingly, various modifications may be made without departing from the spirit or scope of the general inventive concept as defined by the appended claims and their equivalents.